스마트 컨트랙트의 네트워크 효과에 대한 진실

작성자 Kyle Samani

August 28, 2017 | 7 Minute Read

이더리움은 스마트 컨트랙트 플랫폼 시장의 명실상부한 선두주자입니다. 가장 오래되고 가장 성숙한 플랫폼이죠. 아마 이더리움의 프로토콜 개발자들과 커뮤니티는 업계 최고일 것입니다. 이더리움에 대해 많은 개발자들이 관심을 가지기 시작했고 대기업들도 투자를 시작습니다. 이더리움은 명확한 로드맵을 보유하고 있으며 이 시대 최고의 지성인 중 한 명을 수장으로 두고 있습니다.

이더리움의 현재 네트워크 가치는 약 300억달러입니다. 그리고 이더리움의 경쟁자들은 다음과 같습니다.

현재 가격으로 따졌을 때 이더리움의 모든 경쟁자 네트워크 가치를 합산하면 그것이 이더리움 네트워크 가치의 약 10~15%정도 됩니다.

이러한 시장 가격을 미루어보았을 때 이더리움의 네트워크 효과가 강하다는 것을 알 수 있습니다. 이더리움은 스스로를 ‘세계의 컴퓨터’라고 부릅니다. 그렇기 때문에 자연스럽게 OS와 같은 비유를 받기를 원합니다. ‘더 많은 개발자가 이더리움을 사용할수록 더 많은 사용자가 이더를 원하게 될 것이고 이는 다시 더 많은 개발자를 자극할 것이다’처럼요.

그러나 이러한 비유는 스마트 컨트랙트 플랫폼이 가진 역학관계의 미묘한 뉘앙스를 제대로 전달하지 못합니다. 이더리움과 같은 스마트 컨트랙트 플랫폼은 운영체제와 비교할 것이 아니라 프로그래밍 언어와 비교해야 합니다.

구체적으로 말하자면 이러한 OS와의 비유는 공급자 측면(개발자가 왜 이더리움을 선택해야 하는지)과 수요 측면(사용자들이 왜 이더를 구매해야 하는지)에 대한 네트워크 효과를 올바르게 전달하지 못합니다. 그리고 네트워크 보안에 관해 우려가 생기는 점은 이해할 만 하지만 이러한 우려는 체인간 상호 고정을 통해 완화될 수 있습니다.

이러한 오류를 하나 하나 설명해 드리겠습니다.

수요 측면 - 사용자들은 신경쓰지 않는다

운영체제가 네트워크 효과를 낼 수 있는 것은 사용자들이 한 OS를 씀으로써 다른 OS는 안 쓰는, 즉 상호 배타적인 결정을 내리기 때문입니다. 한 컴퓨터에 윈도우와 리눅스를 둘 다 깔 순 없잖아요. (가상 기계는 논외로 하겠습니다. 가상 기계를 효과적으로 사용할 수 있거나 사용할 필요가 있는 사람들은 정말 소수니까요.)

사용자들이 본인들이 사용하는 OS에 한정될 수밖에 없기 때문에 개발자들은 자연스럽게 OS위에 서비스를 구축합니다. 이는 해당 OS에 더 좋은 앱들을 생긴다는 것을 의미하며 더 많은 사용자를 끌어모을 수 있습니다. 선순환의 구조이지요.

사용자들은 자신이 어떤 블록체인을 사용하고 있는지 알 필요도, 신경쓸 필요도 없을 것입니다. 대부분의 사용자에게 블록체인은 ‘거래를 확인하기 위해 비밀번호를 입력해 주세요’정도의 개념으로 추상화될 것입니다.

분산화 애플리케이션(Dapps) 사용자의 경우 블록체인을 실제로 ‘볼’수는 없습니다. 패리티나 메타마스크와 같은 도구를 사용해 체인상에서 거래를 유도하는 웹3 프론트 엔드만 보일 것입니다(웹3은 이더리움 전용이지만, 앞으로 본 포스팅에서는 이러한 도구를 전부 웹3클라이언트라고 칭하겠습니다.) 비(非)이더리움 체인을 위한 웹3 클라이언트는 아직 없지만 현재 개발중이며 곧 출시될 것입니다. 그리고 출시되면 다수의 체인을 지원할 것입니다. 그리고 결국에는 브라우저들 또한 다체인 지원 웹3 클라이언트를 내제적으로 적용할 것입니다.

웹3 클라이언트들이 자체적으로 이 문제를 더 추상화할 수 있습니다. 웹3 클라이언트가 다양한 체인을 지원함에 따라 셰이프쉬프트나 0x같은 탈중앙화 거래소 또한 통합하게 될 것입니다. 만약 사용자가 스트레이트 토큰을 필요로 하는 댑을 쓰는데 가진 것이 이더밖에 없다면 해당 웹3 클라이언트는 실시간으로 간단하게 사용자의 이더를 스트레이트로 교환해 줄 것입니다. 그러고 나면 웹3 클라이언트는 그렇게 얻은 스트레이트 토큰을 댑으로 보냅니다. 사용자는 이 모든 시스템 하에서 어떠한 토큰이 교환되고 있는지 전혀 알지 못하고 신경도 안 쓸 것입니다.

여러분이 사용하는 웹3 클라이언트는 지원되는 모든 체인에 사용할 수 있는 프라이빗 키, 퍼블릭 키, 주소 등을 만드는 데 필요한 니모닉을 생성해줄 것입니다. 사용자는 ‘암호’ 한 개만 외우거나 저장하면 되고 나머지는 모두 쉬워집니다.

위의 내용을 모두 요약하자면, 사용자는 어떤 체인이나 토큰을 사용하고 있는지 전혀 신경쓰지 않아도 됩니다. 어떠한 기저의 기술 플랫폼을 사용하는지에 상관 없이 모든 댑이 사용 가능할 것입니다. 모든 체인과 토큰의 복잡성은 전부다 추상화, 단순화 될 것입니다.

공급 측면 - 상호 운용 가능한 토큰이 체인을 상용화하다

스마트 컨트랙트 플랫폼 두 개만 있으면 토큰은 체인간 자유롭게 넘어다닐 수 있습니다. ETH토큰은 이더리움 체인에만 국한되지 않을 것입니다. 스트라티스 토큰을 네오 체인에서 거래할 수도 있고 테조스 토큰을 웨이브 체인에서 거래할 수도 있습니다.

어떻게 가능하냐고요? 합성 토큰 때문입니다.

두 개의 알려진 스마트 컨트랙트가 있다고 가정해 봅시다. 하나는 ETH체인에, 하나는 ETC체인에 있습니다. 만약 X ETH 토큰을 ETC체인으로 옮기고 싶다면, ETH의 일부를 ETH 체인상에 있는 컨트랙트에 옮기고 나의 ETC 주소를 설정합니다. ETH컨트랙트가 나의 ETH을 받으면 코스모스 같은 것이 ETC로 하여금 X 토큰을 나의 ETC주소로 전달하게 합니다. 이 합성 토큰들은 ETH라고도 불립니다. 이 시스템은 양방향으로 적용 가능합니다.

smart-contract-network-effect-fallacy(ko)

(위 도표가 스마트 컨트랙트들이 어떻게 기술적으로 토큰을 발행하는지 정확히 묘사하고 있지는 않지만 자산이 체인 간 이동하는 모습을 충분히 잘 보여줍니다.)

이러한 기능이 체인간의 경쟁 구도를 좀 더 공평하게 만들 것입니다. 어떠한 코인이 어떠한 체인에서든 구동될 수 있다면, 체인이나 토큰에 신경쓸 이유가 뭐가 있을까요? 복잡성의 대부분이 추상화, 단순화되는데 말이에요.

그러나 이 메커니즘에 한가지 분명한 단점도 있습니다. 각 체인에서의 수수료(gas cost)는 해당 체인의 본래 화폐단위로만 지불할 수 있습니다. 그러나 수수료는 %로 따졌을 때 그다지 높지는 않을 것입니다. 거래량의 0.1~0.2% 이상이 수수료로 지불되고 있다면 그 체인은 아마도 실패할 것입니다. 제가 앞서 제안한 프레임워크를 고려했을 때 ‘사용자가 수수료를 어떻게 지불하나요’라는 질문은 충분히 타당한 질문이긴 하나, 토큰-체인 개념의 추상 및 단순화가 주는 장점을 생각해 봤을 때 그다지 중요한 질문은 아닙니다.

체인간 고정을 통한 네트워크 보안 위험 요소 완화

한 토큰이 네트워크 가치를 잃으면 51% 스타일 공격의 위험성이 높아집니다. 특히 지분 증명(COS) 컨센서스 시스템이 그렇습니다. 채굴자들이 채굴 비용 대비 코인의 가치를 기반으로 어떤 코인을 채굴할지를 결정하기 때문입니다.

하지만 네트워크 보안 위험성마저도 체인간 고정을 통해 완화될 수 있습니다. 이더리움은 모체인에서 자체인까지 머클루트를 연결시키는 방법으로 이 매커니즘을 플라스마에서 적용시키고 있습니다. 이는 팩텀에서도 이루어지고 있습니다. 팩텀은 자체 체인의 머클루트를 모든 비트코인 블록에 고정합니다.

결국 위험 요소를 완화하기 위해 대부분의 체인이 다른 체인에 자기 자신을 고정하게 될 것입니다. 그렇게 되면 한 네트워크를 공격하면 고정된 다른 모든 네트워크를 공격하게 되는 거죠.

스마트 컨트랙트 플랫폼은 프로그래밍 언어와 비슷하다

만약 사용자가 기저 체인을 신경쓰지 않고, 토큰이 즉각적으로 문제 없이 거래 가능하고, 토큰이 스스로 여러 체인을 넘나들고, 네트워크 보안이 유지된다면, 어떻게 체인간 차별화를 할 수 있을까요? 기본적으로 개발툴과 거버넌스 매커니즘을 통해 차별화 할 수 있습니다.

스트레이트의 유일한 주안점은 바로 C# 개발자들이 블록체인을 이용해 스트레이트를 최대한 만들기 쉽게 하는 것입니다. C# 개발자들은 현재 몇 백만명이 있는데 대다수는 솔리디티(이더리움 원어)를 배우거나 테조를 위한 Ocaml을 배우고 싶어하지 않을 것입니다. 혹자는 C# 개발자들이 합리적이지 못하며 그들이 블록체인을 위해 개발된 언어를 배워야 한다고 주장할 수도 있겠죠.

예를 들어 C#는 형식 검증을 염두에 두고 설계된 언어가 아니기 때문에 스트라티스가 형식 검증을 도입할 가능성은 낮습니다.

반면 자바스크립트는 프론트엔드 언어로서 개발되었으나 Node.js. 덕분에 현재 가장 많이 쓰이는 백엔드 언어 중 하나가 되었습니다. 일부 개발자들은 자바스크립트처럼 느슨하게 입력된 언어를 싫어합니다. 또 C와 같이 정적으로 입력된 언어를 싫어하는 개발자도 있습니다.

오늘날 모든 주요 프로그래밍 언어가 튜링 안정성을 제공함에도 불구하고, 시장은 특별한 트레이드오프(판독성, 컴파일 언어 대 인터프리터 언어, 추상화, 메모리 관리, 네이티브 퍼포먼스, 병렬 가능성 등)를 갖춘 프로그래밍 언어를 많이 필요로 한다는 것이 경험적으로 증명되었습니다.

한 개의 블록체인이 모든 스마트 컨트랙트 개발의 규칙과 매커니즘을 결정해서는 안 됩니다. 강한 네트워크 효과가 많지 않기 때문에 다수의 스마트 컨트랙트 플랫폼이 성공할 것입니다.

이제 거버넌스에 대해 알아보겠습니다. 대쉬는 지난 몇 년간 온체인 거버넌스를 유지해 왔습니다. 들리는 이야기에 의하면 꽤 잘 운영되고 있다고 합니다. 테조는 대쉬의 온체인 거버넌스의 변형을 공개했습니다. 대쉬 커뮤니티는 성공적으로 운영되고 있으며 혁신하고 성장하고 있습니다. 온체인 거버넌스는 어쩌면 블록체인들이 항상 필요로 했으나 한 번도 가지지 못했던 존재일지도 모릅니다.

이를 증명할 만한 역사적 사후 가정은 전무합니다. 비트코인은 최근 2년 간 심각한 거버넌스적 도전과제에 직면했지만, 대신 온체인 거버넌스의 부재를 바탕으로 많은 오픈소스 프로젝트가 성공했습니다. 리눅스 커널, 다수의 리눅스 데스크탑, 파이어폭스, 위키피디아, 크롬(및 그 모든 포크), 안드로이드 오픈 소스 프로젝트(및 그 모든 포크), WebRTC, 이더리움 및 다른 많은 오픈 소스 프로젝트가 어떠한 정식 이해 관계자 참여 모델도 없이 성공했습니다.

요약

현 시장 가격들을 보면 이더리움이 스마트 컨트랙트 플랫폼 시장의 일방적 선두주자가 될 것이라고 생각하기 쉽습니다만 이는 기정 사실이 아닙니다. 많은 주체들이 수요 측면과 공급 측면, 보안 측면에서 이더리움의 인식된 장점 대부분을 상품화고 있는 추세입니다. 이더리움이 유일한 스마트 컨트랙트 플랫폼이 되지는 않을 것입니다. 이더리움이 곧 사라진다거나 성공하지 못할 것이라는 말은 아닙니다. 이더리움의 실패에 돈을 걸진 않겠습니다. 그렇지만 비(非)이더리움 스마트 컨트랙트 플랫폼들이 성공할 기회가 매우 많습니다. 이더리움이 스마트 컨트랙트 플랫폼계의 제왕이 되지는 않을 것이라는 말입니다.

2018년 5월 9일 업데이트

이 포스팅 작성 후 한 가지 깨달은 것이 있는데 이 포스팅의 전제, 즉 스마트 컨트랙트 플랫폼은 네트워크 효과가 거의 없을 것이라는 전제는 맞다는 것을 깨달았습니다. 그러나 이 포스팅의 결론, 즉 개발자 툴이 중요하다는 것과 스마트 컨트랙트 플랫폼이 프로그래밍 언어와 같다는 결론은 틀렸다는 것 또한 깨달았습니다. 개발자 툴과 기능들 또한 여러 체인을 넘나들며 모방될 것입니다.

본 포스팅의 후속편으로 작성한 ‘가치저장 수단의 네트워크 효과’라는 포스팅이 있습니다. 여기서 저는 ‘의미 있는 네트워크 효과를 달성할 수 있는 유일한 방법은 자산이 가치의 저장소인 동시에 거래의 매체가 되는 것이다’라고 주장합니다.

지원·파트너십·협력 문의는 여기를 클릭해주세요.

문의하기