토큰 이코노미와 합의알고리즘을 비롯한 블록체인 프로젝트 설계
수 많은 블록체인 프로젝트가 하룻밤 사이 생겨나고 사라진다. 그럼에도 좋은 프로젝트는 눈에 띄기 마련이다. 이 글에서는 블록체인 프로젝트의 여러 측면에 대해 생각해보고 각각의 문제를 해결할 수 있는 최적의 방법을 고민해보았다.
합의 알고리즘은 블록체인 프로젝트의 심장과 마찬가지다. 블록생성자가 악의적으로 이중지불을 용인하거나, 가짜 transaction을 만들어내면 블록체인의 신뢰는 무너지고 프로젝트는 위험에 빠진다. 그만큼 합의알고리즘은 매우 중요하고, 많은 선택지들이 있다. 초기 블록체인 프로젝트들이 POW, POS 를 선택했다면 요즘은 PBFT 와 DPOS 가 주로 선택지로 고려된다.
POW(Proof of Work) - 다른 마이너들과 특정 Nounce 값을 찾아내는 연산을 하여 블록을 생성하는 경쟁을 함. 전력 소모가 크다.
POS(Proof of Stake) - 지분의 Staking한 검증인들이 블럭을 생성, 검증하는 방식.
DPOS(Delegated Proof of Stake) - 토큰홀더로 부터 투표를 받아 일정수의 블록생성자를 정하고 선출된 이들이 블럭 생성, 검증을 진행.
BFT(byzantine fault tolerance) - 블록생성자가 특정 기준으로 선정되고, 지정된 블록생성자가 블록을 생성.
합의 알고리즘을 선택할 때는 DCS 삼각형을 고려해봐야 한다. DCS 삼각형은 블록체인 프로젝트가 가질 수 있는 3가지 속성을 가르키는 것으로, 각각 탈중앙화(Decentralization), 데이터 정합성(Consistent), 확장성(Scalability)를 가르킨다. 탈중앙화는 얼마나 많은 노드들이 데이터를 검증할 수 있는가, 확장성은 제한된 시간내에 얼마나 많은 거래를 처리할 수 있는가, 데이터 정합성은 모든 노드가 같은 데이터를 갖고 있는가 를 나타낸다. DCS 삼각형에서 포기할 수 없는 두 가지를 선택하는 것이 보통 프로젝트의 성격을 규정할 수 있다. 예를 들면 이더리움과 비트코인은 CD(Consistent, Decentralized) 로 표현될 수 있다.
데이터 정합성과 탈중앙화를 선택하는 비트코인과 이더리움은 필연적으로 거래를 확정(finality) 하는데 오랜 시간이 걸린다. 반면 IPFS 는 속도와 탈중앙화는 이뤘지만, 각 노드간 데이터의 정합성은 일부 포기하는 구조다.
BFT 계열의 합의알고리즘은 SC 로 표현될 수 있다. 블록생성자가 지정되어, 하나의 체인만 유지될 수 있기때문에 데이터 정합성(Consistency) 을 보장할 수 있고, 생성된 블록에 대해 마이닝과정을 거치지 않고, 블록을 확인하는 절차만 갖기 때문에 다른 합의 알고리즘에 비해 높은 확장성( Scaliabilty, TPS ) 을 갖는다. 또한 블록 생성, 검증인을 몇 명으로 정하느냐에 따라 탈중앙화도 보장할 수 있다. 확장성을 더 고려한다면 DPOS와 PBFT 합의 알고리즘이 합쳐진 Tendermint 또한 좋은 선택지가 될 수 있다.
**탈중앙화는 비싸고 어렵다. 궁극적으론 이더리움과 같이 완전히 탈중앙화를 이룬 프로젝트가 가장 이상적이지만, 아직 비즈니스에 사용되기에는 적합하지 않다. 하지만 이더리움이 확장성을 개선할 수 있는 Plasma 혹은 샤딩을 구현한다면 이런 논의가 무의미해질지도 모른다.
대부분의 프로젝트는 회사보유분/ Private Sale - Early investor / Advisor / public Sale 정도로 풀을 나누어 ICO 를 진행한다. 너무 많은 물량을 회사보유분 혹은 Private Sale에 배정하면 개인 투자자들은 프로젝트에 신뢰를 갖지 못한다. Private Sale 투자자들은 할인된 가격으로 엄청난 규모의 토큰을 소유하고 있고, 개인들은 그저 '설거지' 용으로 쓰일 거라는 걱정을 품게 된다. 이 과정은 블록체인 프로젝트의 첫 인상을 결정할 수 있는 중요한 부분이다. 잘못된 분배로 Public Sale이 실패할 수도 있다. 이미 Private Sale 등 에서 충분한 자금을 조달했더라도, Public Sale은 그 자체로 효용이 있다. 많은 사람들이 프로젝트를 알게되고, 입방아에 오르내릴 수록 프로젝트의 가치는 더 높아진다. Public Sale 에 얼마를 조달했는가도 계속 이슈가 될 수 있는 요소다. 사람들의 입에 오르내리면서 특정 분야의 대표적인 블록체인 프로젝트가 되면 사람들의 관심을 받으면서 프로젝트를 성장시켜나갈 수 있다. 따라서 Public Sale은 그 자체로 홍보이고 마케팅이다.
시중에 등장한 많은 프로젝트들은 사실 ICO만을 위해서 만들어졌을 것이다. 작년과 같은 붐에는 ICO 프로젝트에 엄청난 관심이 쏟아지면서 백서만으로 큰 자금을 조달하는 프로젝트들이 등장했고, 수 많은 투자자가 Scam프로젝트의 피해자가 되었다. 붐은 사그라들었지만 아직도 좋은 프로젝트에는 개인들과 블록체인 펀드들의 자금이 몰려든다. 스캠 프로젝트를 만들게 아니라면 가장 좋은 자금조달 방식은 DAICO 모델이다.
DAICO 는 2018년 이더리움 재단의 Founder 인 Vitalik Buterin 이 제안했다. DAICO 는 DAO(Decentralized autonomous organization) 모델을 ICO 에 활용한 것으로, 프로젝트의 마일스톤이 달성됨에 따라 Funding을 받는 것이 특징이다. DAICO 모델은 기존의 ICO 와 마찬가지로 투자금을 받는 기간이 존재하지만, 투자금의 인출 금액은 스마트 컨트랙트의 수도꼭지 변수(Tap variable)에 따라 조절된다. 투자자들은 프로젝트가 진행됨에 따라 투표를 통해 이 수도꼭지를 크게 키울 수도 줄일 수도 있고 심지어 투자금을 환불받을 수도 있다. 결과적으로 팀은 투자금을 받기위해 마일스톤을 계속해서 달성해냐가야 하고, 투자자들을 설득하면서 투자 유지를 독려해야 하며, 투자자들은 투자금을 도둑맞을 걱정을 하지 않아도 된다. 예를 들어 DAICO 방식의 프로젝트라면 아래와 같은 일을 걱정할 필요가 없다.
'코드에 정의된 여러 Parmeter 혹은 코드를 자체를 변경할 수 있는가' 를 Governance 라고 한다면, 이를 누가 변경할 수 있는가를 바탕으로 On chain / Off chain Governance 를 나눌 수 있다. Off chain 은 Governance 가 블록체인 네트워크 밖에서 이뤄진다. Off chain의 대표적인 사례는 이더리움이다. 이더리움 업데이트/ 개발은 EIP(Ethereum Imporvement Proposal) 를 통해 이뤄진다. 2016년, 이더리움은 DAO 해킹을 겪으며, DAO 해킹이전의 상태로 하드포크를 했는데, 이때도 EIP 를 바탕으로 하드포크가 이뤄졌다. 이때 커뮤니티는 'CarbonVote' 이라는 서비스를 이용해 투표를 했고, 여기에서 나온 결과를 바탕으로 하드포크가 이뤄졌다. 이처럼 의사결정 과정이 블록체인 밖에서 이뤄지는 경우를 Off chain Governance라고 부른다.
On-chain Governance 의 대표적인 예는 Tezos 와 EOS 가 있다. EOS 는 토큰 홀더 15% 의 투표가 있고, 10% 이상이 찬성을 하면 소스코드와 '헌법'을 개정할 수 있다. 헌법은 이오스 토큰 홀더간의 사용 계약을 말한다. Tezos 또한 토큰홀더들의 투표로 소스코드를 변경할 수 있다. 이로써 커뮤니티가 블록체인 프로젝트가 향할 방향에 대해 완전한 소유권을 갖게 된다. 하지만 이 때문에 발생하는 문제도 있다. 토큰 홀더들은 단기간의 수익을 위한 의사결정을 하기 쉽고, 블록체인 프로젝트의 복잡도를 이해할 만한 시간과 노력을 들이지 않고 사안에 대한 단편적인 결정을 내릴 가능성도 있다. 또한, 일반적으로 On chain Governance 에서 토큰 홀더들은 토큰의 보유 개수 만큼의 영향력을 갖기 때문에 오히려 프로젝트의 권한이 소수에게 집중되는 결과를 낳기도 한다.
개인적으로는 이더리움 재단이 다른 프로젝트에 비해 더 나은 의사결정을 하는 것으로 보이는데, 이는 Vitalik Buterin이 착한 독재자(benevolent dictator)로서 막대한 영향력을 갖고 커뮤니티가 항상 좋은 의사결정을 이룰 수 있도록 하기 떄문이다. Off chain에서 의사결정이 이뤄진다는 점에서 탈중앙화의 가치를 온전히 지키고 있다고 할 수는 없지만, 탈중앙화는 비싸고 어렵다는 점을 기억해야 한다.
수 많은 블록체인들이 '탈중앙화'라는 이상적인 가치를 수호하고자 한다. 이 같은 목적에서 많은 블록체인 프로젝트가 코드를 Open source 로 공개해두고 있다. 블록체인 네트워크에서 코인은 '프로그래밍 가능한 돈(Programmable Money)'이다. 해커들은 시시때때로 오픈소스화되어있는 코드의 취약점을 찾아 네트워크상에 뿌려진 이 돈을 주워담으려고 한다. 이 같은 사례는 차고 넘친다. 최근 주목받는 프로젝트 중 하나인 ICON은 블록체인상의 코드에 심각한 결함을 발견하고 긴급 업데이트를 해야했다. 발견된 결함은 ICON 스마트 컨트랙트의 생성자를 제외한(!= ) 모두가 토큰 전송을 중지시킬 수 있게 하는 것으로 간단한 등호의 표기에서 비롯된 것이었다.
최악의 버그는 이더리움 블록체인에서 발생했다. DAO (Decentralized autonomous organization) 프로젝트는 이름이 암시하듯 탈중앙화된 기업형 플랫폼을 만드는 프로젝트였다. 2016년 당시 발행량의 14%에 달하는 이더리움이 DAO 의 ICO 에 투자되었다. 버그는 Fallback 함수의 설계 오류에서 비롯되었다. Fallback 함수의 오동작으로 해커는 입금된 이더보다 많은 이더를 인출할 수 있었다. 약 500억에 이더가 이 같은 방식으로 인출되었고, 이더리움재단은 네트워크의 가치를 보존하기위해 커뮤니티의 투표를 받아 하드포크를 진행했다.
이렇듯 보안 이슈는 네트워크 전체의 가치를 크게 위협할 수 있다. 팀 내의 개발자들이 아무리 좋은 프로세스를 갖고 코드리뷰를 해도 보이지 않는 버그가 있을 수 있다. 개인적으로는 이슈의 무게 만큼이나 프로젝트의 구성원들이 추가적인 관심을 가져야 하는 부분이라고 생각한다. 외부의 Code Audit 서비스를 받아보는 것도 좋은 선택지다. 우리나라에서는 Haechi Labs 등이 이를 서비스로 제공한다.
토큰 이코노미는 프로젝트를 만드는 과정에서 많이 간과되는 부분 중 하나다. 토큰 가져야할 실제가치와 이 토큰의 속성을 고려하여 적정가가 정해지고 이를 기반으로 Public Sale 가격이 정해져야 한다. 이때 토큰의 가치는 '교환방정식'을 이용해 계산될 수 있다. 교환방정식은 기존의 경제학에서 사용되는 것으로 화폐와 실물간의 관계를 설명하는 식이다.
MV = PQ 일때,
M = 화폐 공급, 통화량 (Money)
V = 화폐의 유통 속도 (Velocity)
P = 상품의 가격 (Price)
Q = 상품 및 서비스의 수량 (Quantity)
M 은 네트워크 상에 존재하는 토큰의 가치의 총합이다. 블록체인 상에서는 토큰의 각각의 개수를 알 수 있으므로 M 을 토큰 발행량으로 나누면 토큰 1개의 가치를 구할 수 있다. Chris Burniske 는 2014년, 이 같은 방식으로 비트코인의 가치를 2000$(링크) 라고 예측했다. 계산 방식을 자세히 살펴보자.
PQ 는 해당 토큰이 사용되는 마켓의 가치를 말한다. PQ 는 각각 토큰이 대표하는 상품의 가격과, 상품의 수량을 가르킨다. 비트코인이 송금시장에서 사용된다고 가정하자. 송금시장의 규모를 $436 B 라고 계산하고, 송금시장에서 비트코인이 10% 사용된다면, PQ 는 $43 B 가 된다.
V 는 해당 토큰이 얼마나 주인을 많이 바꿨는가를 나타낸다. 화폐 전체의 거래량을 화폐 전체의 가치로 나누면 얼마나 많이 거래가 일어났는지 알 수 있다. 예를 들어, 통화량이 100달러 뿐인데, 거래량이 200달러라면 V = 200/100 = 2 가 된다. 계산 시점인 2014년엔 V= 1.5 였다고 한다.
(2016년, 비트코인 네트워크는 연간 580 억 달러의 거래를 처리했으며, 전체 비트코인의 평균가치는 89억 달러에 달했다. 따라서, V = 580/ 89 = 6.5)
위 계산을 토대로 $43.6B / 1.5 = $30 B 가 된다. 이때 총 화폐 공급량은 1400만 개(2014) 였으므로, $30B / 14.7 M = $2,000 비트코인 한 개의 가치는 $ 2,000 달러가 된다.
이 방정식을 통해 알 수 있는 점 하나는, V 가 작으면 작을 수록 M 의 값이 커진다는 것이다. 다시, V 는 토큰의 유통속도다. 따라서, 손바뀜이 적은 토큰 이코노미가 네트워크 전체의 가치를 부양시킬 수 있다. 이런 사례는 많은 성공적인 프로젝트에서 찾아볼 수 있다.
EOS 는 네트워크 내의 영향력과 노드 운영을 위해 홀더들이 계속해서 더 많은 토큰을 소유할 동기를 만들었다.
즉, Hodl 하는 사람이 많아질 수록 네트워크 전체의 가치가 증대된다. 토큰이코노미가 거버넌스 구조와 밀접한 연관을 갖고 있는 이유다. 유틸리티 토큰을 설계하는 경우 이 구조는 특히 더 중요해진다. 가치 저장 수단으로 쓰이는 코인(비트코인)보다 유틸리티 토큰의 회전율은 훨씬 높다. 유저 입장에서는 자금을 가치저장코인으로 갖고 있다가 필요시에만 유틸리티 토큰을 구매할 가능성이 높다. 결국 시장에 유틸리티 토큰이 많이 풀리면 토큰의 가치가 하락한다. 회전율이 높다는 것은 가치 하락 요인이 높다는 뜻과 같다.
따라서 설계에는 필수적으로 토큰을 스테이킹할 요인들을 마련해두는 것이 좋다. 돈을 푸는건 쉽지만 다시 주워담기는 어려운 법이다. 주로 아래와 같은 방식으로 토큰 스테이킹을 유도할 수 있다
수익 공유 - 유저는 블록 생성자에게 토큰을 스테이킹하고 블록생성자의 수익을 일부 지급받는다.
거버넌스 구조에 참여 - 스테이킹한 토큰의 양에따라 거버넌스 영향력를 준다. 토큰을 스테이킹이 합리적일 정도로 큰 권한을 줘야한다.
블록생성 권한 - 스테이킹한 토큰의 양에 따라 블록생성권한을 준다. 블록생성수수료를 가져갈 수 있다.
위와 같은 방법을 조합하여 스테이킹이 지금과 같은 하락장에서도 충분히 매력적일 수 있는 설계를 만들어야 큰 폭의 토큰 가치 하락을 막을 수 있다.
블록체인 프로젝트는 수익을 내는 사업이어야 한다. 그래서 토큰의 가치 증대 뿐 아니라, 경제의 선순환을 만들어내는 토큰 이코노미를 설계해야 한다. 블록체인에서 그치는 것이 아니라, 이를 바탕으로한 서비스를 제작하고 이 서비스에서 지속적인 수익이 발생해야 팀을 유지할 수 있다. 이런 이유에서 거래소 코인 모델은 합리적인면이 있다. 코인 뿐아니라, 그 기반의 서비스를 수익 모델로 사용하기 때문에 토큰의 목적이 분명하고, HODL 해야할 이유도 있다. 예를 들면 Binance 의 BNB 토큰을 보유하면 거래 수수료를 할인해주고, 거래소 상장 투표에 더 큰 영향력을 발휘할 수 있다. 아직까지는 블록체인 서비스를 통해 수익을 내고 있는 프로젝트가 많지 않다. 토큰이 사용되는 마켓에 따라, 어떻게 디자인을 하느냐에 따라 이 부분은 천차만별일 수 있으니, 고민해야할 부분으로 남겨두겠다.
블록체인은 충분한 노드가 있어야만 유지될 수 있다. 따라서 이들이 노드를 계속해서 운영할 동기를 마련해야 한다. 블록 생성 보상과 수수료가 이 동기가 된다. 노드는 블록을 생성함에 따라 블록당 보상을 수령하고, 해당 블록에 담긴 거래 수수료를 챙긴다. 비트코인의 경우 총 발행량이 주어진 상태에 블록생성보상(채굴량)이 점점 줄어드는 형태이고, EOS 의 경우 지속적으로 발생하는 인플레이션이 블록생성보상으로 지급된다. 이 블록 생성 보상은 초기에 배정된 Pool 에서 지급되는 식일 수도 있고, EOS 와 같이 새롭게 발행하는 방식이 될 수도 있다.
유틸리티 토큰이라면 수수료는 적정수준으로 유지되는 것이 가장 좋다. 만약 수수료가 0.01 BTC 와 같이 고정되어 있다면, 토큰 가치의 변동에 따라 수수료도 널뛰기할테고, 유저는 비싼 수수료로 블록체인 기반의 서비스를 이용하려 하지 않을 것이다. 유동적인 수수료를 만드는 방법에는 두 가지가 있다. NEO 는 네트워크 수수료를 지불하기 위한 토큰인 GAS 를 새로 만들어서 수수료의 변동성을 줄이고자 했다. 수수료 가치도 변동이 없는 것은 아니지만 고정수수료보다는 나은 수준이다.
수수료를 안정화 시키는 또 하나의 방법은 수수료를 Governance 가 정하는 방식이다. On-chain Governance 를 이루는 Node 들이 토큰 가치의 변동에 따라 수수료를 책정하도록 한다. Node 들은 유저의 네트워크 사용을 유도하여야만 수수료 수익을 얻을 수 있기 때문에, 무리한 수수료를 책정하지 않고, 네트워크 사용 수준에 따라 수수료를 유동적으로 책정한다.
미국의 IT 리서치 회사 Gartner 는 매년 'Hype Cycle' 을 발표한다. Hype Cycle은 기술이 얼마나 인기가 있으며, 얼마나 대중화 되어있는지를 보여주는 그래프다. 기술의 발전단계는 '부풀려진 기대' 부터 대중화단계까지 이어진다. 블록체인은 작년 비트코인 가치의 급격한 상승과 더불어 '부풀려진 기대' 단계에 이르렀고, 점점 '환상이 깨지는 단계' 로 움직이고 있다. 대중의 기대는 꺾였지만 수 많은 전통적인 금융업계가 블록체인 인재를 뽑고, 블록체인으로 할 수 있는 비즈니스를 고민하기 시작했다.
블록체인은 아직도 새로운 분야다. 하룻밤 사이에도 수 많은 프로젝트가 공개되고, 새로운 제안이 커뮤니티를 휩쓸곤 한다. 이 포스팅이 블록체인 비즈니스에 대한 깊은 이해를 전하지는 못하지만, 개괄적인 블록체인 비즈니스에 대한 이해를 늘려주는데는 도움이 되기를 바란다.
이 포스트는 개인 블로그에도 게재되었습니다. 이 포스팅은 시간이 지남에 따라 업데이트 될 수 있습니다. 변경사항은 포스트에 반영되고, github 에 히스토리를 기록합니다.
The DCS Triangle – The BigchainDB Blog
NEO and the DCS Triangle - Decentralized, Consistent, Scalable. : NEO
What is a DAICO, Explained | Cointelegraph
‘Over and Out’: $50 Million Savedroid ICO Makes Apparent Exit Scam
GitHub - ethereum/EIPs: The Ethereum Improvement Proposal repository
Cryptoasset Valuations – Chris Burniske – Medium
[코인원 리서치] On-Chain Governance가 부재한 고정 수수료 모델의 위험성