brunch

You can make anything
by writing

C.S.Lewis

by 송범근 Jan 10. 2018

외계어 없이 이더리움(Ethereum) 이해하기

쉽게 설명한 스마트 컨트랙트, 탈중앙화 앱(Dapp), ICO, 이더

블록체인 위에 다른 것도 올릴 수 없을까?

비트코인의 성공을 본 사람들은 이런 생각을 하기 시작했다. 블록체인이 데이터의 신뢰를 보증하는 기술이라면, 블록체인 위에 다른 종류의 데이터를 올릴 수는 없을까? 


그래서 초기에는 많은 프로젝트들이 비트코인 블록체인을 활용해 화폐 이상의 것을 만들어내려는 시도를 했다.(네임코인, 컬러드 코인, 마스터 코인 등등)


하지만 이 시도들은 대부분 성공하지 못했다. 그 이유는 비트코인 블록체인 자체의 디자인 때문이었다. 

비트코인은 시작부터 돈거래를 기록하기 위해 설계된 블록체인이다. 그렇다 보니 거래에 필요한 정보 이외에 다른 정보를 기록하는 것이 어렵고, 거래 안에 담을 수 있는 코드도 매우 한정적이다. 


자유도와 안정성의 문제는 우열의 문제라기보다는 선택의 문제다. 더 많은 정보와 기능이 가능할수록, 안정성은 떨어질 수밖에 없다. 사토시 나카모토는 안전성을 위해 단순함을 선택했다. 



무지 노트를 만들고 싶었던 비탈릭

비트코인 커뮤니티에서 활발하게 활동하던 젊은 개발자 비탈릭 부테린(Vitalik Vuterin)은 비트코인 블록체인이 가진 한계를 깨달았다. 그는 비트코인과 달리, 어떤 목적으로도 자유롭게 사용 가능한 완전히 새로운 블록체인을 만들고자 했다. 


블록체인이 노트라고 생각해보자. 비트코인 블록체인은 오직 돈거래만 기록할 수 있도록 내지가 이미 디자인되어있는 회계 장부다. (돈을 기록하는 노트이니까) 


그런데 비탈릭은 이미 정해진 양식이 있는 회계 장부가 아니라 아무런 제약이 없는 무지 노트를 원했다. 이 무지 노트는 사용하는 사람이 어떻게 쓰느냐에 따라서 용도가 바뀐다. 일기장도 될 수 있고, 그림책도 될 수 있고, 시나리오를 쓰는 노트가 될 수도 있다. 


'블록체인이 ‘화폐’를 넘어서 무한한 가능성을 가지게 하자!' 

이것이 바로 이더리움의 시작이었다. 


[참고] 비탈릭 부테린
암호화폐의 세상에서 가장 유명한 사람을 딱 2명만 뽑자면, 비트코인을 만든 사토시 나카모토와 이더리움의 창립자 비탈릭 부테린일 것이다. 사토시 나카모토는 누구인지 밝혀지지 않았지만, 비탈릭은 이더리움 재단의 수장으로서 굉장히 활발히 활동하고 있다. 비탈릭과 그가 생각하는 이더리움에 대해 자세히 알고 싶다면 이 영상을 보자. https://www.youtube.com/watch?v=WSN5BaCzsbo



이더리움의 특징

이더리움은 기존까지 우리가 논의해왔던 암호화폐들과는 완전히 다른 특징을 지닌다. 그중에서도 이더리움의 가장 중요한 특징인 스마트 컨트랙트, 탈중앙화 애플리케이션(DApp), ICO(initial coin offering), 그리고 이더(ether)에 대해 알아보자.


1. 스마트 컨트랙트


블록체인에 걸고 약속합시다

스마트 컨트랙트란 블록체인 위에 ‘약속’을 올려놓는 것이다. 어떤 조건을 만족하면 어떤 행동을 하라는 코드를 거래에 추가한다. 예를 들면, ’ 내일 기온이 20도 이상이면 에어컨을 틀어라’ ‘내가 좋아요를 누른 글은 복사해서 메일로 보내라’ 같은 명령이다.


블록체인 위에 ‘약속’을 올리면 무엇이 다를까?


첫 번째, 블록체인이 이 계약의 진위성과 실행을 보장한다. 단순한 약속이 아니라 ‘계약’이 된다. 블록체인에 기록되면 그 내용을 누구도 부정하거나, 위조할 수 없기 때문이다. 법이 아니라, 블록체인이 보증하는 계약이다.


두 번째, 블록체인 내부에 기록된 코드에 의해서 특정 조건을 만족할 경우, 정해진 행동이 자동으로 실행된다.


실제 문서 상으로 이루어지는 계약은 사람이 직접 실행하고, 법에 의해서 강제되지만 스마트 컨트랙트는 블록체인이 유효성을 보증하고 컴퓨터가 자동으로 실행한다.


이더리움은 스마트 컨트랙트를 만들고 실행할 수 있는 블록체인이다.

비트코인 블록체인에는 거래 안에 코드를 담는 것이 매우 제한적이었다. 하지만 이더리움은 기능에 제한이 없는 자체 프로그래밍 언어를 개발했다. 이 프로그래밍 언어로 스마트 컨트랙트를 써서 거래에 포함시키면, 블록체인 내부에 영구히 저장된다. 


[참고] 이더리움 내에서 가장 많이 사용되는 자체 언어는 'Solidity'다. 그리고 스마트 컨트랙트를 실행하는 장치를 이더리움 가상 머신(Ethereum virtual machine, EVM)이라고 한다.



스마트 컨트랙트로 중고 거래를 해보자

가장 단순한 형태의 스마트 컨트랙트인 ‘에스크로 계좌’를 예로 들어서 실제로 어떻게 스마트 컨트랙트가 구현되는지를 알아보자. 에스크로 계좌란 서로 간의 신뢰가 없는 두 사람이 거래를 할 때, 제3의 계좌에 돈을 넣어 놓고 특정 조건이 만족되면 돈을 지급해주는 것을 의미한다. 아마 중고 거래를 해본 사람이라면 한 번쯤은 사기를 방지하기 위해서 에스크로 서비스를 써봤을 것이다.


A가 B와 중고거래를 한다고 하자. 스마트 컨트랙트가 구현되는 방식은 다음과 같다. 


1) A가 ‘받는 주소 없이’ 1이더를 전송한다. 받는 주소가 없는 대신 거래 안에 ‘스마트 컨트랙트를 만들어라’, ‘스마트 컨트랙트가 발동되는 조건(If)은 A가 약속한 물건을 받았다고 인증했을 때’ ‘조건이 만족되면(then) B에게 1이더를 보낸다.’라는 코드를 작성해서 전송한다. (이를 컨트랙트 생성(contract creation)이라고 한다.)


2) 블록체인에 거래가 기록되면, 모든 참여자들이 안에 담긴 코드를 실행한다. 이더리움 블록체인 상에서 코드에 의해 운영되는 컨트랙트 계정(contract account)이 생긴다. 1이더가 컨트랙트 계정에 보관된다.

[참고] 이더리움 내의 계정은 사용자가 통제하는 외부 소유 계정(Externally owned account)과 내부 코드에 의해서 통제되는 컨트랙트 계정(contract account)이 있다.


3) B는 1이더가 담긴 컨트랙트 계정과 담겨있는 코드의 내용(‘조건이 만족되면 B에게 돈을 준다’)을 보고 물건을 택배로 보내준다.


4) 물건을 택배로 받은 A는 컨트랙트 계정을 받는 사람으로 해서 소량의 이더를 보낸다. 그 거래 안에는 ‘X조건이 만족되었음’이라는 코드를 써서 보낸다.


5) 이 거래가 블록체인에 기록되고 실행되면, 컨트랙트는 주어진 조건에 반응하게 되고, 정해진 대로 B에게 돈을 전송한다.


이 과정을 통해 어떤 제 3자의 개입도 없이 두 사람은 안전한 거래를 할 수 있게 되며, 이 과정은 모두 투명하게 블록체인에 기록된다.



스마트 컨트랙트의 의미

스마트 컨트랙트는 돈에 ‘조건’을 걸 수 있게 해준다. 에스크로는 단순한 예 중 한가지일뿐이다. 


스마트 컨트랙트를 활용하면, 블록체인 위에서 단순히 돈을 주고받는 것 이상의 수많은 응용이 가능해진다. 다양한 금융 상품을 구현할 수 있으며, 수많은 서비스를 스마트 컨트랙트 기반으로 자동화시킬 수 있다. 스마트 컨트랙트는 제 3자의 개입이 필요 없는 서비스, 블록체인 위에서 돌아가는 애플리케이션을 만드는 기초가 된다. 



2. 탈중앙화 애플리케이션(Decentralized Application)


이더리움은 스마트 컨트랙트를 기반으로 개발자들이 자신이 원하는 애플리케이션을 만들 수 있도록 지원한다. 즉, 이더리움이 스마트폰의 안드로이드 OS와 같은 운영체제 역할을 한다. 안드로이드 OS가 스마트폰 내에서 유저들이 쓰는 모바일 애플리케이션의 기반이 되듯이, 이더리움 또한 블록체인 위에서 돌아가는 다양한 애플리케이션의 기반 기술이 된다.


블록체인은 상당히 복잡하고 구현하기 어려운 소프트웨어이다. 개발자들이 블록체인 애플리케이션을 만들기 위해서 매번 자체적인 블록체인을 만들기는 힘들다. 그 대신 이더리움 블록체인의 규칙과, 다양한 개발 도구들을 사용하여 자신들의 필요에 맞춤화된 애플리케이션을 만들 수 있다. 블록체인 위에서 구현되는 이런 애플리케이션을 통틀어서 탈중앙화 된 애플리케이션(Decentralized application), 줄여서 Dapp이라고 한다.


쉽게 이해하기 위해 블록체인이 하나의 오프라인 매장이라고 해보자.

비트코인은 처음으로 블록체인을 사용해서 누구도 통제하거나 소유하지 않는 무인 은행을 열었다. 그 후로 같은 기술을 사용해서 무인 은행들이 생겨나기 시작했다. 라이트코인은 보안 절차를 줄여서 좀 더 빠른 기계를 갖춘 무인 은행을 열었다. 모네로는 고객의 프라이버시를 최우선으로 하는 무인 은행을 열었다. 리플은 외환 송금 전문 은행을 열었다.

비트코인, 라이트코인, 모네로, 리플


'나는 은행이 아니라 쇼핑몰이야!'라고 말하면서 나타난 것이 이더리움이다. 이더리움은 ‘무인 은행’ 개념을 넘어서 세상의 모든 것들이 거래되는 하나의 거대한 쇼핑몰을 목표로 한다. 그리고 이 쇼핑몰 안에는 다양한 상품/서비스를 파는 무인 매장, Dapp들이 입점하게 된다. 

이더리움은 쇼핑몰처럼, 매장들이 들어올 수 있는 건물 공간과 기반 시설을 제공한다. Dapp들은 건물 전체를 지을 필요 없이 이더리움 내의 공간을 빌려 매장을 오픈할 수 있다. 


이 매장들에서는 스마트 컨트랙트라는 로봇들이 매장을 운영한다. PC방, 슈퍼마켓, 카지노, 환전소 등 모든 매장이 누구도 소유하지 않고, 통제하지 않는 상태로 운영된다. 


이더리움이 제시한 ‘Dapp을 위한 플랫폼’은 암호화폐에 사용되는 기술로만 여겨졌던 블록체인을 한 단계 진화시킨 새로운 패러다임이었다. 이더리움의 등장은 수많은 Dapp들이 생겨나는 기점이자, 블록체인의 제 2 전성기를 여는 계기가 된다. Dapp에 관해서는 알아야 할 내용이 많지만 나중에 자세히 알아보기로 하고, 여기서는 이더리움이 Dapp을 세상에 최초로 구현해낸 블록체인이라는 것만 기억하자.



3. 토큰 생성과 ICO

다시 쇼핑몰의 비유로 돌아가서, 내가 이더리움 쇼핑몰 안에 '김밥 가게'를 열고 싶다고 하자. 새로 가게를 오픈하려면 비용이 들어간다. 일반적으로 매장을 열면 자신이 그 매장의 주인이 되고 거기서 발생하는 수익을 가진다. 그래서 처음에는 투자를 받거나, 은행에서 돈을 빌려서 사업 자금을 조달한다. 수익이 발생하면 투자자나 대출자에게 돌려줄 수 있다.


Dapp도 마찬가지로 개발을 하려면 돈이 들어간다. 그런데 Dapp의 경우는 출시를 해도 누구의 소유도 아니다. Dapp은 대부분 오픈 소스로 공개되고, 따라서 광고를 붙이거나 수수료를 떼는 등의 수익 모델이 불가능하다. 


그래서 Dapp을 개발하는 데 드는 자금을 구하기가 어렵다. 투자를 하거나 대출을 해주는 사람은 미래에 더 큰 수익이 발생할 거라는 기대를 가지고 돈을 준다. 미래에 수익이 발생할 가능성이 없는 프로젝트라면 누가 돈을 대주겠는가? Dapp은 근본적으로 자금 조달의 문제를 안게 된다.


이더리움은 각 Dapp들이 자체적으로 사용하는 토큰(혹은 ‘앱코인’이라고도 한다)을 만들 수 있게 해준다. 

[참고] 이더리움 내에서 만들어지는 토큰의 표준을 'ERC-20'이라고 한다. 토큰에 표준이 존재하는 이유는 플라스틱 카드들이 일정한 규격과 모양을 가지고 있는 것과 같은 이유다. 토큰도 일정한 표준을 따르면 호환성 및 관리가 쉬워지기 때문이다.


생성된 토큰은 발행자가 어떻게 설정하느냐에 따라서 굉장히 다양한 용도로 쓰일 수 있다. 하지만 일반적으로는 각 Dapp의 서비스를 사용할 때 내야 하는 내부 화폐의 역할을 한다. 즉, 매장에서 김밥을 사 먹을 때 필요한 ‘식권’ 같은 역할을 한다고 생각하면 된다.



Dapp들은 이 토큰을 팔아서 개발 자금을 조달한다. 김밥 가게로 말하자면, 가게를 오픈하기도 전에 앞으로 가게에서 쓸 식권을 미리 찍어서, 그걸 판 돈으로 사업 자금을 마련한다는 말이다. 아니, 도대체 오픈하지도 않은 가게의 식권을 어떻게 팔 수 있는 걸까?

식권을 팔아 자금을 조달한다고?


 물론 김밥 매장이 꼭 생겼으면 하는 이타적인 마음에서 기부를 했을 수도 있지만, 그런 사람이 대다수 일리는 없다. 대부분의 사람들은 돈을 벌기 위해서 이 식권을 산다. 여기서 중요한 점은 식권의 개수가 제한되어있다는 것이다. 흔히 식권이란 정해진 돈을 내면 계속 뽑혀 나오는 것인데, 토큰은 다르다. 공급량이 정해져 있다. 그래서 식권이 필요한 사람이 많을 때 가격이 올라간다. 


사람들이 미리 식권을 사는 이유는 나중에 그 식권을 사용하기 위해서가 아니다. 아직 개업은 안 했지만, 이 가게 주방장을 보니 요리 솜씨도 좋을 것 같고, 길목도 좋고, 뭐 어떤 이유로든 나중에 이 식당이 잘될 거라고 예상한 것이다. 


만약 이 가게가 인기 있는 맛집이 되면, 식권을 사기 위해서 많은 사람들이 몰려들 터다. 그러면 그때 이 식권을 더 비싸게 팔아서 수익을 내겠다는 생각으로 식권을 사는 것이다. 


마치 개수가 정해져 있는 스포츠 경기 티켓을 미리 사놓고 나중에 웃돈을 얹어서 파는 것과 같은 원리이며, 개발 예정인 땅에 미리 알박기를 해두었다가 나중에 비싸게 파는 것과 같은 원리이다. 


공급은 제한되어있는데 수요가 늘어난다면, 가격은 올라간다. 물론 Dapp의 경우는 실제로 성공할지 아닐지 모르기 때문에 토큰을 사는 것은 리스크를 감수하는 일이다. 토큰을 사는 사람들은 리스크를 감수하고 ‘투자’를 하는 것이다.


Dapp은 자금 조달의 문제를 앱 내에서 사용되는 토큰을 발행해서 판매하는 새로운 방식으로 해결한다. Dapp이 토큰을 만들어서 이를 공개적으로 판매하는 것을 ICO(Initial Coin offering)이라고 한다. 


ICO는 주식 시장에 새로운 회사들이 상장(주식이 공개적으로 유통)하는 IPO(Initial public offering)에 빗대어 만들어진 말이다. IPO나 ICO나 대중들에게 직접 주식(혹은 토큰)을 제공하여 자금을 조달하는 방법이라는 점에서 비슷하기 때문이다.


하지만 ICO와 IPO는 분명한 차이점이 있다. IPO와 달리 ICO는 실체가 없는 상태에서 계획만 가지고 시작한다. ICO는 크라우드 펀딩과 더 가깝다. 또 IPO는 금융 당국의 감독과 규제 하에서 이루어지지만, ICO는 법의 경계를 벗어나 있으며, 아무런 규제나 자격 조건이 없다.


[참고] Pre-sale(선판매)란?

ICO는 실체가 없는 상태에서 미래에 이러한 제품을 개발하겠다는 약속만으로 돈을 받는 것이긴 하지만, 그래도 ICO를 성공시키기 위해서도 상당한 자금이 필요하다. ICO를 성공적으로 끝내려면 직원 인건비, 홈페이지, 영상 제작, 백서 제작 등의 과정이 필요하기 때문이다. 그래서 초기 팀 결성과 ICO를 준비하기 위한 자금을 마련하기 위해서 프리 세일을 하게 된다. 

프리 세일이란 대중에게 공개적으로 토큰을 판매하기 위해 소수의 투자자들에게 미리 토큰을 판매하는 것을 의미한다. 프리 세일 단계에서는 이 프로젝트에 대한 리스크가 훨씬 크기 때문에 ICO 가격보다 더 낮은 가격으로 소수의 투자자들에게 판매한다. 스타트업들이 완전 초기에 받는 시드 투자와 비슷하다.


ICO의 의미

ICO는 상반된 반응을 불러일으키고 있다. 긍정적 측면에서 봤을 때 ICO는 Dapp 프로젝트들이 계속 사업을 진행할 수 있게 해주는 새로운 자금 조달 방법이다. Dapp 개발자들이 정당한 보상을 받을 수 있고, 사용자인 대중들이 자신이 유망하다고 생각하는 프로젝트에 직접 투자 가능하다.


그러나 현재 ICO 시장은 지나치게 과열되어있다는 것이 암호화폐 전문가들의 일치된 의견이다. ICO들을 살펴보면 도대체 왜 블록체인을 써야 하는 것인지 알 수 없는 프로젝트도 많다. 


블록체인과 Dapp이 너무 인기이다 보니, 그래도 엄청난 자금이 모인다. 이런 프로젝트들은 모호하고 멋있는 말로 홈페이지를 꾸민 뒤, 재단을 하나 설립하고, 기술적인 내용을 설명한 계획서를 배포한다는 토큰을 팔기 시작한다. 토큰을 생성하고 ICO를 하는 데는 아무런 자격 조건도 필요 없기 때문이다. 물론 의미 있는 프로젝트와 아닌 프로젝트를 잘 구분해서 투자한다면 상관없겠지만, 지금은 다들 ICO에 투자만 하면 대박이라는 열기로 가득해서, 모든 프로젝트가 ICO를 하자마자 엄청난 속도로 몇십억, 몇백억의 돈을 모은다.

16-17년에 ICO로 조달된 총 투자 금액


토큰은 ‘주식’이 아니라는 점에 주의해야 한다. 아까 말했듯이 토큰은 다양한 것을 나타낼 수 있으며 그건 개발자가 결정하기 나름이다. 프로토콜에 사용되는 토큰일 수도 있고, 또는 특정 애플리케이션에 대한 소유권을 의미할 수도 있으며, 회사에 대한 투표권을 의미할 수도 있다. 심지어 아무런 경제적 가치도 없는, ‘기부해주셔서 감사하니까 기념으로 드립니다’ 토큰일 수도 있다.


현재 법적으로 토큰이 주식과 같은 지위를 가지는 것이 인정되지 않기 때문에, 대부분의 ICO 프로젝트들은 모호한 용어를 써서 규제망을 피한다. 그래서 토큰에 대해서 추후에 대가를 지불하지 않아도 강제할 법적인 수단은 없다. 즉, 내가 식권을 산 매장이 정말 맛집이 될지, 아니면 식권 판돈만 생겨서 도망갈지는 아무도 모르는 일이다. 한국과 중국 정부가 ICO를 금지한 명분도 적절한 규제나 투자자에 대한 보호 장치가 없기 때문이다.



4. 이더(ether)

그렇다면 이더리움의 기초 화폐, 이 더는 무슨 역할을 할까? 일단 이더는 기본적으로 다른 암호화폐와 마찬가지로 서로 돈을 주고받을 수 있는 화폐의 기능을 한다. 


거기에 더해서, 이더는 채굴자들이 스마트 컨트랙트를 실행시키는 데 필요한 수수료의 지불 수단이 된다. 비트코인의 경우 채굴자들에게 네트워크를 유지하는 데 기여한 대가로 btc를 준다. 이더리움도 마찬가지다. 이더리움도 Pow 방식을 사용해 블록을 생성하기 때문에, 채굴자들에게 보상을 제공하는데, 이 수수료를 지불하는 수단이 이더(ether)다.


Gas system

거래를 생성하는 사람은 이더로 Gas를 사서 거래에 첨부해야 한다. 이 Gas는 말 그대로 이더리움에서 스마트 컨트랙트를 실행시키는 대가로 지불하는 연료(Gas)인 셈이다. Gas는 스마트 컨트랙트의 코드가 복잡할수록, 저장 공간을 많이 쓸수록 더 많이 지불해야 한다. 실행되는 만큼 Gas가 지불되고, Gas를 다 쓰면 실행이 취소된다. 


이더리움 블록체인 장부를 가진 모든 노드들이 스마트 컨트랙트를 각자 실행시키고 저장해야하기 때문에, 전체적으로 봤을 때 굉장히 많은 저장 공간과 컴퓨팅 파워가 들어갈 수밖에 없다. 그래서 Gas는 이런 비효율을 최소화하기 위해서 보내는 사람이 스마트 컨트랙트를 만들 데 더 간단하고, 저장 공간을 적게 쓰도록 만드는 유인을 제공한다. 또 반복 실행을 집어넣어서 네트워크에 과부하를 주는 것도 방지할 수 있다.




Decentralize Evertything on Blockchain

이더리움의 비전, 블록체인 위에서 모든 것을 ‘탈중앙화’ 한다.

말했던 것처럼 이더리움은 블록체인의 활용을 한 차원 위로 끌어올린 최초의 Dapp 플랫폼이다. 이더리움은 이를 통해서 세상의 모든 비즈니스를 블록체인 위에 올리겠다는 비전을 제시한다. 


컴퓨터와 인터넷이 만들어낸 IT 혁명은 세상의 모든 것을 점점 디지털화하는 방향으로 움직이고 있다. 점점 더 많은 것들이 디지털화되고 인터넷을 통해 유통된다. 그러나 복사나 수정이 쉽기 때문에 가치를 지닌 자산 자체를 디지털화할 수는 없었다.


블록체인은 이 문제를 해결함으로써 디지털화를 더 가속시킨다. 최초의 비트코인 블록체인은 디지털 데이터의 신뢰를 보증함으로써 ‘가치를 가진 자산들’이 디지털화될 수 있도록 만들었다. 


최초의 Dapp 플랫폼인 이더리움은 디지털 자산들을 스마트 컨트랙트라는 규칙을 통해 자동으로 사고, 팔고, 이동할 수 있도록 만든다. 블록체인을 활용해서 더 많은 분야에서 안전하고, 민주적이며, 효율적인 방식으로 화폐와 자산과 서비스를 교환할 수 있다. 


이미 수많은 Dapp들이 블록체인 위에서 파괴적 혁신을 시도하고 있다. Storj나 Filecoin 같은 회사들은 블록체인 위에 남는 저장 공간을 올려 거래할 수 있게 한다. InsureX, Etherisc는 보험회사가 없는 보험을 만든다. 아티스트들은 유통사 없이도 소비자들에게 직접 음악을 제공할 수 있게 된다. 신원 정보(Uport)나 의료 정보(Medibloc)를 블록체인에 올릴 수도 있다. 


즉, ‘신뢰’가 중요한 모든 것들이 더 쉽게 디지털화된다. 이것이 블록체인이 4차 산업혁명의 한 축이라고 불리는 이유다.



탈중앙화 된 자율 조직, DAO

심지어 이더리움은 미래에는 회사와 같은 조직(Organization)도 스마트 컨트랙트로 운영할 수 있다고 보고 있다. 우리 모두는 어떤 조직에 속해서 살아간다. 사람들이 서로 협력하기 위해 조직에는 규칙이 있고, 그것을 만들고 실행하는 관리자들이 있다. 


이것이 스마트 컨트랙트로 대체된다면 어떨까? 

어떠한 위계질서나 권한 집중도 없이, 모든 사람은 동일한 권리를 가지고, 조직의 룰은 스마트 컨트랙트로 구현되는 것이다. 이 조직에서는 사람의 개입 없이 모두가 합의하고 블록체인 위에 올라간 코드가 조직의 의사결정을 책임진다. 이를 탈중앙화 된 자율 조직 (Decnetralized Autonoumous Organization, DAO)라고 부른다.

물론 당장은 실현되기 어렵겠지만, 블록체인이 보장하는 신뢰와, 그 신뢰에 기반한 스마트 컨트랙트의 활용은 단순히 가치의 교환을 넘어 인간이 협력하는 방식에도 영향을 미칠 수 있다.



이더리움의 장점

이더리움이 Dapp 플랫폼으로써 가지는 가장 큰 장점은 이더리움 관련 커뮤니티이다. 이더리움은 Dapp 플랫폼으로써는 가장 활발한 커뮤니티를 가지고 있다. 상당한 수의 개발자, 지지자, 연구자들로 구성된 커뮤니티와 이더리움 위에 개발된 각종 Dapp들까지 합쳐져서 이더리움을 기반으로 한 하나의 생태계(ecosystem)가 생겨나고 있다.


현재 출시되는 Dapp들과 ICO의 80% 이상이 이더리움을 기반으로 한다. 이 사실은 굉장히 중요하다. 왜냐하면 플랫폼이 성공하는 데 가장 중요한 것은 ‘네트워크 효과’이기 때문이다. 암호화폐의 가치가 그것을 사용하는 사람들의 수에 의해서 결정되듯이, Dapp 플랫폼의 가치는 그 위에서 돌아가는 앱들과 사용자들에 의해서 결정된다. 이더리움 위에 구현된 Dapp이 많아지면 많아질수록 이더리움의 가치는 높아진다. 



현실을 명확하게 보자

물론 아직까지 이더리움의 Dapp들도 아주 초기 단계이기 때문에 앞으로도 계속 이더리움이 우위를 차지할 거라고 단언하기는 어렵다. 게다가 이더리움은 목표까지 가는 길에서 반드시 넘어야 할 굉장히 많은 장애물들을 마주하고 있다. 현재 우리가 쓰는 일반적인 IT 서비스들을 구현하려면 가야 할 길이 아직 멀었다. 이더리움의 장밋빛 미래에 감탄했다면, 동시에 냉정한 현실에 대해서도 반드시 알아야 한다. 



이더리움의 한계


1. 확장가능성 문제(Scalability)


가장 큰 문제는 이더리움의 느린 속도다. 다른 모든 (퍼블릭) 블록체인과 마찬가지로, 이더리움의 거래 처리 속도 글로벌하게 도입되고 그 위에서 애플리케이션이 돌아가기에는 너무 부족하다. Ethstats.net에 따르면 현재 이더리움의 거래 처리 속도 (초당 거래량, transaction per second)는 평균 13 tps이다. 


페이스북과 같은 글로벌 서비스는 1초에 약 17만 5천 개의 요청을 처리한다. 사용자들이 직접 보내는 요청이 아닌 연결된 소프트웨어들에서 발생하는 요청까지 하면 이것보다 3-4배는 더 많은 양을 처리할 것이다. 대충 계산해봐도 페이스북 수준의 애플리케이션이 이더리움에서 돌아가려면 수만 배는 빨라져야 한다. 


이더리움은 단순히 하나의 앱이 아니라 수많은 애플리케이션들이 실행되는 운영체제를 꿈꾸고 있는데, 현재 속도로는 정말 간단한 애플리케이션 하나도 돌아가기 어렵다. (물론 일반 앱과 Dapp은 구조가 다르기 때문에 정확한 비교는 아니다.) 현재는 파일 공유, 이메일, 머신 러닝 같은 복잡한 프로그램을 돌리는 것은 거의 불가능하며 간단한 조건문이나 인증 절차 등의 단순한 태스크에 적합한 수준이다.


확장 가능성 문제는 앞으로 이더리움이 성공하는 데 가장 시급하고 중요한 과제다. 이더리움이 꿈꾸는 것이 세계에서 가장 큰 쇼핑몰이라면, 현재는 인터넷 속도도 엄청 느린 3층짜리 작은 건물이라고 보는 게 맞다. 앞으로 더 대형 매장들이 들어오고, 더 많은 사람들을 받으려면, 건물을 증축하고 속도도 훨씬 더 빨라져야 한다.


이더리움도 오래전부터 이 문제에 대해서 인지하고 있다. 하지만 속도를 올리는 것은 기술적으로 굉장히 어려운 문제다. 퍼블릭 블록체인의 특성상 네트워크에 전파된 거래와 코드가 유효한지를 판단하는 검증 절차가 반드시 필요하기 때문이다. 현재 여러 가지 방법이 연구되고 있다.


[참고] 이더리움의 스케일링 솔루션
스케일링 솔루션은 On-chain과 off-chain으로 나눌 수 있다.
On-chain은 블록체인에 거래가 기록되는 속도를 높이는 것이다.
Off-chain은 블록체인 외부에서 특정한 처리 작업을 거친 뒤에 결과만 최종적으로 블록체인에 기록되는 방식이다. 

현재 다양한 방식이 연구되고 있지만, 확장 가능한 플랫폼을 만들려면 off-chain 방식이 반드시 필요하다. On-chain 솔루션은 어떻게 해도 10배 이상 속도를 높이기 어렵기 때문이다. 하지만 아예 외부에서 거래를 미리 처리하고 블록체인에 기록한다면, 100배, 1000배 이상의 속도 향상을 기대할 수 있다. 이더리움 커뮤니티가 Off-chain 솔루션 개발에 촉각을 곤두세우고 있는 이유이다. 현재 연구되고 있는 off-chain solution은 Payment channel networks, Truebit, Plasma, Raiden Network, Sharding 등이 있다.




2. 합의 메커니즘(Consensus mechanism)


PoW의 문제점

이더리움은 현재 비트코인과 마찬가지로 PoW(Proof-of-Work) 방식의 합의 메커니즘을 사용하고 있다. PoW는 많은 양의 에너지를 소모하고, ASIC 같은 채굴 장비의 등장으로 특정 채굴 회사에게 쏠림 현상이 일어나는 문제가 있다. 


그래서 이더리움은 다음 업데이트에서 PoW가 아닌 새로운 방식, Proof-of-stake (PoS) 방식으로 전환을 준비하고 있다. 암호화폐 커뮤니티에서는 몇 년 전부터 PoW 방식의 문제를 해결할 대안으로 PoS를 논의해왔다. 


PoS 방식이란?

PoS 방식은 PoW처럼 블록을 생성할 사람을 복잡한 해쉬 문제를 내서 정하는 것이 아니라, 참가자들이 블록에 대해서 베팅을 하는 방식으로 정한다. 


참가자들은 ‘특정 블록이 문제가 없다’는 데에 돈(이더)을 건다. 베팅을 한 금액이 높을수록, 그 블록 생성 권한을 받을 확률이 높아진다. 만약 이 블록이 체인에 잘 연결되고 아무 문제가 없는 것으로 판명이 나면, 블록을 생성한 참가자는 보상을 받는다. 하지만 만약 잘못된 거래가 포함되어 있었다면, 베팅한 돈을 잃는다. 


컴퓨팅 파워를 투입하는 것이 아니라, 자신이 보유한 돈을 베팅함으로써 내가 네트워크에 해를 끼치지 않을 것을 증명하는 셈이다. (그래서 지분 증명(Proof-of-Stake)라고 한다.) 


전체 컴퓨팅 파워의 몇 %를 소유했느냐에 따라 권력이 주어지는 PoW와 달리, PoS에서는 전체 베팅 금액의 몇 %를 소유했느냐에 따라 권력이 주어진다.


POS의 장점

블록에 베팅하는 방식을 쓰면 비싼 채굴 장비가 막대한 양의 전기가 필요 없다. PoS는 PoW의 에너지 소모 문제를 해결하고, 일반 컴퓨터들도 검증자가 될 수 있기 때문에 권력을 분산시키는 효과도 있다. PoW처럼 복잡한 문제를 풀지 않기 때문에 블록 하나를 처리하는 데 드는 시간도 빨라진다. 또한 PoW에서는 어떤 채굴자가 잘못된 거래를 블록체인에 넣으려고 시도했다 하더라도 그 참가자에게는 아무런 영향도 없는 반면. PoS는 블록을 생성하고 거부당한 사람에게 큰 페널티가 주어진다는 점에서 더 안전하다.


PoS의 단점

다만 PoS에서는 돈을 많이 가진 사람이 블록을 생성하고 보상을 받을 확률이 높기 때문에, 돈이 많은 사람은 더 많아지고, 없는 사람은 더 없어지는 빈익빈 부익부 현상이 일어난다. 한 계좌에 엄청나게 많은 돈을 가진 사람은 보상을 받을 확률이 현저히 높기 때문이다. 이 상황이 반복되면 채굴자들에게 권력이 집중되듯이 소수의 부자들에게 권력이 집중되는 것 아니냐는 비판이 있다. 


** 그래서 이더리움은 PoS 방식을 적용하기는 하지만, PoS가 가지는 문제점을 완화하는 방향으로 업데이트를 한다고 한다. PoS 방식을 약간 변형시켜 이 문제를 보완하려는 경쟁자들도 있다.



3. 프라이버시(privacy)

이더리움 역시 다른 암호화폐와 비슷하게 모든 거래 내역이 투명하게 공개된다. 그런데 이더리움에서는 단순히 돈거래뿐만 아니라 다양한 계약 내용이 오고 간다. 스마트 컨트랙트의 세부사항은 단순히 받는 사람, 보내는 사람, 보내는 금액을 떠나서, 어떤 계약 조건에 의해서, 언제 실행되었으며, 어떤 정보를 같이 보냈고, 이 스마트 컨트랙트가 어떤 스마트 컨트랙트와 연동되는지 등등을 모두 포함한다. 


이는 심각한 프라이버시 문제를 발생시킨다. 단순 돈거래 내역만 공개되어도 프라이버시 문제가 발생할 판에, 블록체인 위에 다양한 비즈니스가 일어날 때를 생각해보자. 각 참여자가 무엇을 샀고, 어떤 기능을 이용했으며, 얼마를 환전했고, 언제 회원가입을 했는지 등등이 전부 공개된다. 프라이버시 문제는 앞으로 이더리움이 반드시 해결해야 할 문제다.


** 이더리움은 프라이버시 문제에 대한 해결책으로 올해 예정된 다음 업데이트에 거래 내역을 모두 암호화할 수 있는 알고리즘(zk-SHARK)을 도입할 것으로 알려져 있다.




4. 스마트 컨트랙트의 불완전성

제 아무리 블록체인이 철저한 보안을 자랑한다 한들, 코드를 작성하는 것은 언제나 인간이고, 인간이 쓴 코드에는 항상 버그나 허점이 있을 수밖에 없다. 기능이 특정되고 예측 가능하게 설정된 비트코인과는 달리, 플랫폼을 통해 상상 가능한 모든 것을 설계할 수 있는 이더리움은 수많은 활용 가능성을 열어둔다. 높은 자유도는 이더리움의 장점임과 동시에 다양한 버그나 보안상 허점을 만들어낸다. 따라서 잦은 사고와 업데이트가 일어나게 된다.


게다가 일반적인 소프트웨어와 달리, 스마트 컨트랙트에 담긴 하나의 버그나 실수는 매우 치명적인 문제를 일으킬 수도 있다. 대표적인 것이 2016년 ’The DAO’의 해킹 사태다. ‘The DAO’는 이더리움 위에서 개발된 Dapp이었는데, 크라우드 펀딩을 통해 1천억 원에 가까운 돈을 모은 대형 프로젝트였다. 그런데 해킹을 당해 3분에 1에 해당하는 어마어마한 양의 돈을 잃어버리고 말았다. 해커는 블록체인 자체가 아니라, ‘The DAO’가 사용하는 스마트 컨트랙트 코드에서 약점을 찾아냈다고 한다. (이 사건 때문에 이더리움은 하드 포크라는 극단적 수단을 사용해 탈취된 돈을 원상 복구했다.) 


이처럼 스마트 컨트랙트는 항상 코드가 불완전할 수 있다는 위험이 존재한다. Dapp 위에서 다양한 비즈니스가 돌아가려면 이 리스크를 최소화할 방법을 찾아야 한다.



5. 지나치게 엄격한 계약


블록체인에서 일어난 거래는 어떤 일이 있어도 되돌릴 수 없다. 잘못된 거래나 실수를 되돌릴 수 없다는 것은 블록체인의 단점이기도 하다.


블록체인 위에 올라가는 스마트 컨트랙트도 마찬가지다. 

어떤 자산을 거래하는데, 내가 정해진 시간까지 돈을 지급하기로 하고 못하면 벌금을 물기로 스마트 컨트랙트를 작성했다고 하자. 그런데 막상 돈을 지급해야 할 순간에 불의의 사정(정전, 은행 서버 다운 등등) 때문에 돈을 제때 지급하지 못했다. 고의로 계약을 어기려고 한 것이 아니기 때문에, 상대방에게 사정을 설명하고 예외 인정을 해줄 수가 있다. 그런데 스마트 컨트랙트는 (그런 사정을 미리 적어두지 않았다면), 바로 계약을 어겼다고 생각하고 페널티를 부과해버린다.


스마트 컨트랙트가 대중화되면 이런 식의 고지식함은 문제를 일으킬 여지가 크다. 이런 단순한 사례 외에도 현실에서는 여러 가지 상황으로 인해서  계약 내용에 대한 분쟁이 발생한다. 그런데 스마트 컨트랙트는 코드일 뿐 변호사가 아니기 때문에 이런 부분을 해결하지 못한다. 단지 정해진 대로 코드를 실행할 뿐이다. 사용자 입장에서 스마트 컨트랙트의 또 하나의 단점이다. 


** 스마트 컨트랙트 계약과 관련하여 법적 조정을 도와주는 Dapp도 등장했다. (Mattereum, Codeligit)



6. 내부 거버넌스(On-chain Governance)의 부재


이더리움의 거버넌스 또한 비트코인과 마찬가지로, 자체적으로 프로토콜을 업데이트할 수 있는 방법이 없다는 점이 문제다. 이더리움은 누구도 소유하지 않는 오픈 소스 프로젝트다. 엄밀히 말해, 아무도 규칙(프로토콜)에 대한 결정권이나 책임이 없다. 


그래서 프로토콜에서 업그레이드하려면 거의 모든 참가자들의 동의를 받아야 하고, 동의하지 않는 그룹은 하드 포크로 떨어져 나가는 일이 반복된다. (2016년 하드 포크를 통해 떨어져 나가 생긴 것이 이더리움 클래식이다.)


현실 사회의 거버넌스인 정치를 생각해보자. 대통령 선거나 국회의원 선거에서 50%만 나와도 엄청난 숫자다. 67%의 동의를 얻으면 헌법도 고칠 수 있다. 그런데 90%의 동의를 받아야 프로토콜을 업데이트할 수 있다는 것은 상당히 큰 장애물이다. 


이더리움이 목표하는 바를 이루려면 아직도 가야 할 길이 멀고, 계속해서 업그레이드가 필요하다. 이 과정에서 합의에 많은 시간이 걸리고, 하드 포크가 계속 발생한다면 이더리움의 발전 속도는 더뎌질 수밖에 없다. 시간이 지나면서 이 문제는 더 중요해질 것이다. 사람이 많으면 많아질수록, 공통된 의견을 만들기도 어려워지기 때문이다.


현재 이더리움은 비탈릭 부테린과 이더리움 재단의 개발자들이 리더십을 가지고 이더리움이 가야 할 방향을 제시하고, 커뮤니티는 이에 동조하는 모습을 보이고 있다. (비트코인과 같이 개발자-채굴자 갈등이 없는 이유는 이더리움의 채굴자들은 대형화되어 있지 않기 때문) 

이더리움의 창립자, 비탈릭 부테린


어떤 사람들은 '이더리움 재단이 이더리움에 대해서 너무 많은 영향력을 가지고 있다.' '권력이 집중되어있다'라고 비판하기도 한다. 하지만 현재 상황에서 이더리움이 해결해야 할 수많은 난제를 생각하면 어느 정도의 리더십이 필요한 것은 사실이다.


어쨌든 이더리움 거버넌스의 이런 한계 때문에, 내부 거버넌스 시스템을 탑재한 경쟁자들도 등장했다. 내부 거버넌스 시스템이 있으면, 참여자들이 대표자 선출 등을 통해서 프로토콜을 업데이트할 수 있다. 



누가 블록체인 시대의 안드로이드와 iOS  것인가?

살펴본 것처럼, 이더리움은 혁신적인 프로젝트이면서 동시에 많은 한계점을 내포하고 있다. 어떤 것들은 스마트 컨트랙트의 특성상 발생하는 근본적인 문제이기도 하고, 어떤 것들은 앞으로 기술의 발전으로 해결될 가능성이 높은 문제이기도 하다. (언급한 것 이외에도 몇몇 문제들이 더 있다.)


당연하게도 Dapp 플랫폼을 목표로 하는 것은 이더리움 뿐만이 아니다. 이더리움의 등장 이후로 수많은 경쟁자들이 나타났다. 이 경쟁자들은 이더리움이 가지고 있는 문제를 나름의 방식으로 해결하겠다고 주장한다.  이 프로젝트들은 모두 앞으로 다가올 시대의 안드로이드와 iOS가 되기 위해서 치열한 경쟁을 펼치고 있다. 


다음 글에서는 이더리움과 차별점이 있고, 현재 대중들의 신뢰를 가장 많이 받고 있는 (시가총액이 높은) 플랫폼들을 살펴보려고 한다. 

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari