블록체인 포크와 네트워크 효과, 그리고 외부성
네트워크 가치를 고려한 하드 포크의 발생 조건 분석
본 문서는 Vitalik Buterin에 의해 작성된 “A Note on Metcalfe’s Law, Externalities and Ecosystem Splits”에 대한 리서치 요약 및 필자의 개인적 의견이 담겨있습니다. 원문이 궁금하신 분들은 Vitalik의 개인 블로그에서 직접 확인하실 수 있습니다.
안녕하세요? 온더의 허상범입니다 :)
오늘은 블록체인의 하드 포크, 그리고 이에 따른 네트워크 가치 변화와 유저의 선택에 대해서 Vitalik이 작성한 글을 리뷰하게 되었습니다. Vitalik이 작성한 글은 가독성이 그닥 높질 않고 내용이 좀 불친절하게 전개되는 부분들이 있어서, 동일한 주제를 조금이나마 정제시켜서 다루어 보았습니다.
우선 Vitalik이 이 주제로 글을 썼던 이유는 “특정 블록체인이 2개의 독립적인 체인으로 하드 포크될 때, 사회적 효용이 극대화될 수 있는 선택은 무엇인가”를 알아보고자 했던 것으로 판단이 됩니다.
저는 오늘 이러한 하드 포크 상황에서 유저들이 대체 왜 싸우는지, 블록체인에서 포크가 되는 상황에서 개인이 취할 수 있는 최적의 선택은 무엇인지에 대해 리서치한 내용을 전하려고 합니다 (물론 결과 자체는 기존 체인에 잔류하냐, 새로운 체인에 편승하냐 2가지 선택지 밖에 없습니다).
원문의 내용을 소개하기 이전에, 이와 관련된 배경지식부터 든든하게 잡고 시작하겠습니다. 리서치 내용부터 바로 확인하고자 하는 분들은 배경지식에 해당하는 1~3절을 과감히 스킵하시고 4절부터 바로 보세요 :)
Index
1. 포크가 뭐길래 ?
2. 네트워크의 경제학
3. 외부성(Externality)
4. 하드 포크 상황분석
1. 포크가 뭐길래 ?
우선, Wikipedia에 의하면 포크라는 단어의 기술적 정의는 다음과 같습니다.
i) 블록체인에서 특정 블록의 바로 다음 블록부터 체인의 진행 방향이 2갈래로 나뉘어지는 것
ii) 프로토콜의 변경
iii) 동일한 블록 높이에서 2개 이상의 블록이 생성되는 상황
일축하자면, 특정 블록체인 내부의 룰 자체에 변화가 생기거나 체인 진행 방향이 2가지 이상의 방향으로 갈래가 나뉘어지는 경우를 포크라고 부른다고 합니다.
하드 포크와 소프트 포크
우선, 포크의 종류에는 크게 2가지가 존재합니다. 하드(Hard) 포크, 그리고 소프트(Soft) 포크입니다.
일단 두 가지 경우의 차이점부터 단도직입적으로 말씀드리면, 하드 포크와 소프트 포크의 가장 큰 차이점은 이겁니다.
포크의 결과(이하 업데이트)를 반영한 노드(New Node)로부터 생성된 블록을 업데이트 미반영 노드(Old Node)가 받아들일 수 있냐, 없냐의 차이입니다.
응…?
이렇게 헷갈릴땐 그림이 최고입니다. 다음 그림을 보시죠.
소프트 포크
소프트 포크는 말 그대로 가벼운(Soft) 포크이기 때문에 포크에 의한 업데이트를 미반영한 노드라고 할지라도, 업데이트를 반영한 노드가 생성한 블록을 수용할 수 있습니다. 이는 특정 소프트웨어나 펌웨어가 하위 호환성(Backward Compatible)을 갖는다고 표현하기도 합니다.
이전 제품이 제공하던 스펙을 그대로 유지한 채로, 추가된 기능만 새롭게 추가하면 2가지 이상의 갈래로 체인을 나누지 않고도 업데이트된 스펙을 사용할 수 있다는 말이죠.
하드 포크
반면, 하드 포크의 경우 포크에 의한 업데이트를 미반영한 노드라면 더 이상 새롭게 진행되는 체인의 블록을 공유할 수 없게 됩니다.
만약, 버전이 V0
에서 V1
로 업데이트 되었음에도 불구하고, 나는 여전히 V0
버전의 클라이언트를 써서 블록을 다운받고 있다면 업데이트된 스펙의 블록체인을 동기화시킬 수 없습니다. 즉, 아예 다른 블록체인이 되는 것이죠.
오늘 제가 소개할 케이스 역시 하드 포크와 관련이 있습니다. 하드 포크가 중요한 이유는 해당 하드 포크에 동의하지 않는 유저가 많다면, 생태계가 분할된다는 것 때문입니다. 즉, 기존 체인의 네트워크 가치가 감소합니다.
비트코인 포크 전쟁
최근 비트코인 진영에서는 매우 극심한 알력 싸움이 있었습니다. 아마도 비트코인 진영에서 종종 있어왔던 하드 포크 관련 논쟁이었을텐데, 이번 논쟁같은 경우에는 해시파워 전쟁이 유난히 극심했던 것 같습니다. PoW 알고리즘과 Longest Chain Rule을 사용할 경우, 유효한 체인을 결정함에 있어서 Hashrate은 매우 중요한 변수로 작용합니다.
하드 포크가 성공적으로 반영되어 업데이트된 스펙의 블록체인이 만들어진다고 했을때, 하드 포크 이전의 블록체인에서도 체인을 이어나갈 수 있는 정도의 충분한 Hashrate이 있다면 결국 기존의 네트워크가 2가지 이상의 갈래로 나눠질 수 있기 때문이죠.
각 비트코인 진영의 사람들은 자신들이 주장하는 하드 포크를 더 유효하게 만들기 위해서, 다시 말해 더 많은 Hashrate을 갖기 위해 수단과 방법을 가리지 않았을겁니다. 그래서 한참동안 비트코인 진영이 시끌벅적했던 것 같네요..
그렇다면 기존 블록체인을 이루던 사람들은 도대체 왜 싸우는걸까요? 직관적으로 보면 자신들에게 손해가 발생하니까 싸우겠죠.
블록체인에서의 포크와 이 때 필요한 거버넌스 모델은 탈중앙화된 네트워크를 달성함에 있어서 매우 중요한 요소라고 할 수 있습니다. 최적화된 거버넌스 모델이 부재한 상태에서 체인이 분리되기 시작하면, 서로 다른 의견을 갖는 커뮤니티 간에 다툼이 발생할 가능성이 높습니다. (다양한 거버넌스 모델은 여기에서 확인해보세요 !)
2. 네트워크의 경제학
네트워크 가치와 네트워크 효과
네트워크 가치와 네트워크 효과.. 이들은 언젠가부터 블록체인 산업의 클리셰처럼 여겨지는 것 같습니다. 여기저기에서 네트워크 가치다, 네트워크 효과다 말이 많은데요. 이 내용을 조금 더 실제적으로 바라보도록 할게요.
현대 IT 사회에서 우리는 휴대폰 통신망을 쓰든, 인터넷 망을 쓰든 언제 어디서나 특정 네트워크를 중심으로 타인과 커뮤니케이션하고 있습니다. 즉, 네트워크 자체가 사회의 인프라 역할을 하고, 우리는 이 인프라 위에서 생활하게 됩니다.
특정 네트워크를 제공하는 플랫폼 기업이 있다면, 그 네트워크를 이루는 사용자들의 가치를 활용해서 기업 가치를 극대화하기도 합니다. 위 사진처럼 네트워크 경제학이라는 수업도 여러 학교에서 개설되고 있고요.
이처럼, IT 회사가 잘 먹고 잘 살려면 그들이 제공하는 네트워크의 가치는 꽤나 중요해보입니다. 네트워크의 경제적 가치를 설명해주는 이론들이 참 많은 것 같지만, 본 문서에서는 가장 유명한 Metcalfe 법칙을 가지고 이야기해보도록 하겠습니다.
Metcalfe 법칙
Wikipedia의 표현을 빌리자면, 메칼프의 법칙(Metcalfe’s law)이란 “통신망 사용자에 대한 효용성을 나타내는 망의 가치는 대체로 사용자 수(N
)의 제곱에 비례한다”는 법칙입니다.
예를 들어, 시점
T0
에서의 네트워크 가치가V0
이고 사용자의 수가N0
이라고 가정합시다. 시점T1
에서의 사용자 수가 10배만큼 늘어나면N1 = N0 * 10
이고, 최종적인 네트워크 가치는V1 = V0 * 10²
으로 결정된다는 내용입니다.
Metcalfe 법칙에 대한 반박
그러나, 최근에는 특정 플랫폼의 네트워크 가치가 N²
에 비례하지 않는다는 주장들이 지배적입니다. 관련해서 서울대학교 경영대학 노상규 교수님께서 분석해주신 “Facebook 시장가치 대비 사용자 수” 그래프를 인용해볼게요.
자료에 의하면, Facebook의 사용자 수는 약 1억 4천만명에서 14억명으로 약 10배 증가하였습니다. 그리고 Facebook의 시장가치는 40억 달러에서 2,160억 달러로 약 50배 정도 증가했습니다.
Metcalfe 법칙에 의하면, 사용자 수가 10배 증가할 때 네트워크의 가치는 10²
만큼 늘어나야겠지만 실제로는 약 50배 증가함을 보여주었습니다. 즉, 늘어난 사용자 수의 제곱만큼 Facebook의 시가 총액이 증가하진 않았다는 것이죠.
네트워크 가치에 대한 암호화폐 업계의 시선
암호화폐 업계에서도 Metcalfe 법칙을 반박하는 연구들이 몇 개 있습니다. 그 중에서 흥미로운 내용은 Solar Coin Foundation의 Nick Gogerty가 발간한 리서치 페이퍼입니다. 유저 수의 증가와 암호화폐의 네트워크 가치 간의 관계를 설명하면서 다음과 같은 코멘트를 남긴 적이 있습니다.
암호화폐를 통해 실제로 트랜잭션을 발송하려는 유효 수요는 제한적으로 나타나지만, 동시에 잠재적인 수요자들도 존재하기 때문에 서로 간에 상쇄가 발생한다. 따라서 네트워크 가치가
N²
의 형태로는 증가하지 않고 선형의 형태에 가깝게 증가한다.
앞서 네트워크 가치와 관련해서 주저리주저리 말이 많았는데요. 유저의 수와 네트워크 가치의 상관관계가 지수 형태로 나타나든, 선형으로 나타나든 본 문서에서 제일 중요한 점은 이겁니다.
하드 포크에 의해 생태계가 분할되고 블록체인 네트워크의 가치가 변화할 때, 사용자 개인의 효용 변화 및 선택의 변화에 집중해야 합니다.
3. 외부성(Externality)
블록체인 네트워크에서는 경제적 가치를 지닌 암호화폐가 계정 간 전송될 수 있습니다. 스마트 컨트랙트를 지원하는 블록체인이라면 다양한 DAPP의 독특한 로직을 반영하는 토큰이 전송되기도 하고요.
이는 곧 블록체인 네트워크를 이루는 각각의 노드끼리 특정 “재화”를 교환하거나 판매하는 꼴이며 일종의 시장을 형성합니다.
그런데 말입니다. 전통경제학에 의하면 시장은 자원 배분의 효율성을 스스로 달성해내기 어렵습니다. 즉, 시장 실패가 발생한다는 것이죠. 시장 실패에는 여러가지 케이스가 있는데, 본 문서에서는 외부성에 집중합시다.
외부성이란 특정 시장 참여자의 경제 행위가 타인에게 의도치 않은 편익(+) 또는 손해(-)를 가져다주지만 이에 대해 아무런 대가(+)를 받지도, 지불(-)하지도 않는 현상을 말합니다.
이 때, 편익을 주는 행위를 외부 경제(Positive Externality)라고 부르고 손해를 주는 행위를 외부 불경제(Negative Externality)라고 합니다.
1) 외부 경제
외부 경제란 “어떤 일방의 경제 행위가 그와는 상관없는 제3자에게 긍정적인 영향을 끼침으로서 발생하는 자원 배분의 비효율성” 입니다.
외부 경제의 핵심은 편익을 주는 재화의 거래가 사회적으로 최적인 거래량보다 과소 발생한다는 점입니다.
즉, 사회적으로 좋은 재화는 너무 적게 생산된다는 겁니다.
2) 외부 불경제
외부 불경제란 “어떤 일방의 경제 행위가 그와는 상관없는 제3자에게 부정적인 영향을 끼침으로서 발생하는 자원 배분의 비효율성” 입니다.
외부 불경제 현상의 핵심은 특정 오염 물질의 거래가 사회적으로 최적인 거래량보다 과다 발생한다는 점입니다.
즉, 사회적으로 나쁜 재화는 너무 많이 생산된다는 겁니다.
블록체인 네트워크와 외부성 ?
갑자기 얘는 하드포크 얘기하다가 왜 외부성인지, 외무성인지 이상한 소리를 하나 싶으실텐데요.
제가 외부성 개념을 끌고 온 이유는 Vitalik이 먼저 끌고와서가 제일 크지만, 블록체인 네트워크에 외부성 개념을 대입해서 하드 포크가 발생하는 상황을 좀 더 깊게 이해해보자는 것입니다.
제 3의 유저에 의해 발생한 하드 포크에 의해서 체인이 분리되었을 때 “기존 체인에서 활동하던 유저는 과연 이를 좋아할까?”를 알고 싶은 것이죠.
예컨대, 100명의 유저로 이루어져있던 블록체인 네트워크 A
에서 100명 중 51명의 사람이 하드 포크를 결정하고 성공적으로 블록을 포크시켜 B
체인이라는 별도의 체인이 만들어졌다고 가정합시다. 이 때, 49명이 남게 된 체인 A
의 네트워크 가치는 당연히 감소합니다.
그러나, 이것이 남아있는 주체들에게 외부 경제로 다가올지 외부 불경제로 다가올지는 모릅니다. 왜냐하면 하드 포크에 의해 네트워크 효과가 얼만큼 증가 또는 감소하는지, 그리고 49명의 유저 개개인이 A
, B
체인 각각에 대해 어떤 효용 함수를 갖고 있는지 모르기 때문입니다.
그리고 우린 위의 내용을 드디어 다음절에서 분석하게 됩니다. Vitalik선생님의 친절한 설명 덕분에 말이죠 😜
P.S. 외부성 관련해서 하나 헷갈리면 안되는 것이, 3절에서 제가 논한 외부성은 “특정 제품의 품질과 관계없이, 더 많은 사람이 사용할수록 제품의 가치가 높아진다”는 네트워크 외부성과는 다른 내용입니다
4. 하드포크 상황 분석
서론이 너무 길었네요.. 이제 본격적으로 “A Note on Metcalfe’s Law, Externalities and Ecosystem Splits”의 전반적인 흐름과 내용을 정리해보도록 하겠습니다.
많은 사람들이 알고 있는 하드 포크인 ETH와 ETC의 사례를 참고해서 분석을 진행해보겠습니다. (ETH, ETC 하드 포크 사건의 내막은 여기에서 확인하세요 😌)
하드포크 상황 및 가정
The DAO 해킹 사건이 발생한 후, #1,920,000
의 블록에서 ETH로의 하드 포크가 진행되었습니다. ETC 블록체인은 “Code is Law”라는 입장을 고수하며 The DAO 해킹의 피해를 복구하는 별도의 작업없이 기존 블록체인을 이어나갔습니다 (이 때 각각의 체인이 나눠져 이어질 수 있던 이유는 ETC에도 충분한 Hash 파워가 남아있었기 때문입니다).
반면, ETH 블록체인은 해킹의 피해를 복구하는 Withdraw DAO Recovery 컨트랙트를 하드 포크 시점의 블록에 추가하고, 기존 체인으로부터 성공적으로 하드 포크되어 별도의 블록체인으로 이어지게 됩니다.
그럼, 이렇게 체인이 2개로 나뉘어지는 상황에서 유저의 효용과 네트워크의 가치는 어떻게 변화하는지, 그리고 이 때 유저는 어떤 선택을 하는 것이 이득인지 알아보도록 합시다. Vitalik이 디자인한 프레임을 위주로 설명하고, 이에 대해 주관적인 의견을 추가하는 식으로 논의를 이어가도록 하겠습니다.
경고) 이제부터는 내용이 조금 복잡해집니다 😫
하드 포크, 네트워크 가치, 그리고 외부성
Vitalik이 하드 포크와 관련하여 주장한 핵심 아이디어는 다음과 같습니다.
- 유저 이탈에 따른 외부 불경제 : 하드 포크에 의해서 체인
A
로부터 유저가 이탈할 때에는 그로 인해 네트워크 가치가 상실됩니다. 그리고 상실된 네트워크 가치는A
의 유저가 얻게 되는 외부 불경제 효과와 동일합니다. - 유저 유입에 따른 외부 경제 : 반대로, 하드 포크에 의해서 체인
B
에 유저가 유입될 때에는 체인B
의 네트워크 가치가 증가합니다. 그리고 증가된 네트워크 가치는 체인B
의 유저가 얻게 되는 외부 경제 효과와 동일하다고 주장합니다.
가정
가정 1) 하드 포크 이전의 블록체인은 체인
A
이고, 하드 포크 이후 생태계가 분할되어 유저들이 이주해 갈 블록체인은 체인B
입니다.가정 2) 각 체인의 유저 수는
Na
,Nb
로 표현되며, 초기값은Na = N
,Nb = 0
입니다.가정 3)
A
와B
체인의 사용자들은 각각P
,Q
로 표시되는 주관적 선호 수준을 갖습니다.가정 4)
A
와B
체인의 사용자들의 경제적 효용 수준은 주관적 선호 수준 뿐만 아니라, 각 체인의 네트워크 가치인Na
,Nb
까지 함수의 인자로 반영합니다.가정 5)
P
,Q
와Na
,Nb
는 상호 독립적이거나 상호 보완적입니다.
여기까지의 가정들을 고려했을 때, 유저 1인의 효용함수는 다음과 같이 2가지 형태로 도출될 수 있습니다.
i)포크 발생시 유저의 경제적 효용 = 주관적 선호 수준 + 네트워크 가치 (두 인자가 상호 독립)
ii)포크 발생시 유저의 경제적 효용 = 주관적 선호 수준 * 네트워크 가치 (두 인자가 상호 보완)
가정 5) 체인의 유저 수
N
과 네트워크 가치 간의 관계는 Metcalfe의 법칙(N²
)을 따르거나, 유저의 수가 증가함에 따라 네트워크 가치는 체감적으로 증가하는ln(N)
그래프를 따릅니다.
각 체인별 사용자의 효용 함수
위 가정을 바탕으로 총 4가지 케이스의 효용 함수를 만들 수 있습니다.
1. U(A) = P + Na | U(B) = Q + Nb
2. U(A) = P * Na | U(B) = Q * Nb
3. U(A) = Q + ln(Na) | U(B) = Q + ln(Nb)
4. U(A) = Q * ln(Nb) | U(B) = Q * ln(Nb)
각 함수는 A
체인과 B
체인에서 활동하는 사용자 1명의 효용 함수입니다.
1~2번째 효용함수는 네트워크 가치가 Metcalfe 법칙을 따르며 N² 로 증가하는 경우이고, 3~4번째 효용함수는 네트워크 가치가 ln(N) 형태로 체감적으로 증가하는 모습을 보입니다.
체인 A
는 ETC 체인으로 생각하고, 체인 B
는 ETH 체인으로 생각하면 이해가 편하실 겁니다.
이제, 각각의 효용 함수별로 상황을 분석해보도록 하겠습니다.
Case 1.
1. U(A) = P + Na | U(B) = Q + Nb
하드 포크가 발생한 후, A
에서 Na
의 유저 중 일부가 이탈한다고 했을 때, A
체인의 유저가 얻게 되는 외부 불경제 효과는 ΔNa
입니다.
반면, 하드 포크가 발생한 후 B
체인에 ΔNb
만큼의 유저가 유입된다면, B
체인의 유저는 ΔNb
의 외부 경제 효과를 얻습니다. 윗 문단과 반대되는 논리입니다.
이 때, A
에서 이탈한 인원 모두가 B
로 이동하진 않을 수도 있기에 ΔNa
와 ΔNb
는 서로 반드시 같지는 않습니다.
따라서 하드 포크로부터 발생하는 외부성의 총 크기(Total Externality ; TE)는 다음과 같습니다.
TE = ΔNb - ΔNa
위 식이 의미하는 것은 규모가 작은 체인에서 큰 체인으로 이동하는 것은 외부 경제 효과가 발생한다는 것, 그리고 규모가 큰 체인에서 작은 체인으로 이동하는 것은 외부 불경제 효과가 발생한다는 것입니다.
Case 2.
2. U(A) = P * Na | U(B) = Q * Nb
유저 Na
명의 P
를 모두 합한 값은 Pa
이고, Qb
는 Nb
명의 Q
를 모두 합한 값이라고 가정합시다.
위 효용 함수에 의하면, 체인 A
에서 유저가 이탈함에 따라 발생하는 외부 불경제의 총합은 Pa
입니다. Na
가 한 단위 변화할 때 유저의 효용 변화분은 P
이기 때문입니다. 마찬가지로, 체인 B
로 유저가 유입됨에 따라 발생하는 외부 경제의 총합은 Qa
입니다.
여기에서 P < Q
라면 규모가 더 적은 체인인 B
로 이동할 때 외부 경제 효과가 발생합니다.
나아가, 만약 체인 A
에서 체인B
로 유저가 실제로 이동했다면 체인 A
의 유저는 그 자체로 본인의 선호를 드러내는 꼴이 됩니다. 이 때, 체인 B
로 이동한 모든 유저에 대해서 다음과 같은 식이 성립할 것입니다.
Q/P > Na/Nb (Na > Nb > 0)
위 식이 직관적으로 의미하는 것은 체인 B
의 네트워크 가치 대비 체인 A
의 네트워크 가치 비율보다 “체인 A
에 대한 선호 대비 체인 B
에 대한 선호”가 더 크다는 것을 의미합니다.
조금 추상화시켜보면, 체인 A
의 네트워크 가치가 체인 B
의 네트워크 가치보다 K
배 더 크다(Na/Nb = K)
는 결론이 나왔다면 B
로 이동한 유저는 B
를 K
보다 더 크게 선호하는거죠. 체인 A
의 네트워크 가치가 B
보다 더 큼에도 불구하고, 이 유저는 B
가 너무 좋은 겁니다.
그러나, 체인 A
에서 체인 B
로 모든 유저가 이동(full-scale migration)하지는 않죠. 이 상황에서 A
에 남아있는 유저는 2가지 이유로 잔류했을 것입니다.
i) 체인
A
를 싫어하지만, 체인B
로 이동해야 할 정도로 싫지는 않은 경우.ii) 그냥, 체인
B
보다 체인A
를 더 좋아할 때.
Case 3.
3. U(A) = P + ln(Na) | U(B) = Q + ln(Nb)
Case 3부터는 네트워크 가치를 설명하는 함수가 ln(N)의 형태로 되어 있는데요. 아래 그림과 같이, 유저 수가 증가하면서 네트워크 가치는 점점 더 작게 증가하는 형태입니다.
하드 포크가 발생한 후, 체인 A
와 체인 B
에서 유출 및 유입되는 유저 수를 파악하기 위해서는 마찬가지로 네트워크 가치의 변화분을 알아야 합니다.
ln(Na)’ = 1/Na, ln(Nb)’ = 1/Nb
마찬가지로, 1/Na
는 체인 A
의 유저들에게 외부 불경제 효과로 인식될 것이고, 1/Nb
는 체인 B
의 유저들에게 외부 경제 효과로 인식될 것입니다.
이 때, 체인 A
의 모든 유저가 B
로 이주해야, 외부 불경제와 외부 경제 효과가 서로 상쇄되어 사회 전체적으로 발생하는 외부성이 0
이 될 것입니다. 외부성이 발생하지 않으므로, A
체인의 모든 유저가 B
로 이탈하게 되면 사회적으로 최적이 될 것입니다.
사실 윗 문단은 동의하기가 좀 어려운 것이, 외부효과를 0으로 만드는 것이 외부성 문제의 해결방안은 아닙니다. 이는 뒤에서 좀 더 자세히 설명하겠습니다.
Case 4.
4. U(A) = P * ln(Nb) | U(B) = Q * ln(Nb)
Case 2에서 활용했던 Pa
와 Qa
를 다시 생각해봅시다. 이 값들은 체인 A
, B
의 유저 1인당 각각의 체인에 대해 가질 수 있는 선호의 총합입니다.
Case 4에서 제시한 효용 함수에 의하면, 체인 A
에서 유저가 이탈할 때 얻게 되는 외부 불경제 효과의 총합은 Pa/Na
일 것이고, 체인 B
로 유저가 유입됨에 따라 얻게되는 외부 경제의 총합은 Qa/Nb
일 것입니다.
이 때, A
체인의 유저가 B
체인으로 이주할 조건은 다음과 같습니다.
Pa/Na < Qa/Nb
Opinion
앞서 살펴본 4가지 케이스는 모두 “하드포크된 체인으로 이동할 조건”에 대해서 여러가지 인자를 두고 분석해본 것인데요. Vitalik이 분석한 맥락은 대부분 비슷합니다. 유저의 효용 함수가 주어졌을 때, 기존 블록체인에서 하드포크된 블록체인으로 이동하는 것이 외부성 발생 측면에서 최적인가를 알아보고 싶었던 것 같습니다.
우선, 앞서 살펴본 효용 함수에서 매우 중요한 조건이 2가지 있습니다.
i) 체인에 대한 유저의 선호 수준과 네트워크 가치가 서로 독립적.
ii) 체인에 대한 유저의 선호 수준과 네트워크 가치가 서로 보완적.
저는 두 가지 조건 모두 유효한 조건이라고 생각합니다. 아마도 두 번째 조건이 일반적이라고 생각할 사람들이 많을텐데요. 첫 번째 조건도 의미가 있는 것이, 유니콘 스타트업의 초기 성장 시점에서 나타나는 유저의 효용 함수와 유사합니다.
우버나 에어비앤비, 국내에서는 토스같은 기업들의 초기 네트워크 가치는 당연히 크지 않았습니다. 그러나 혁신적인 서비스를 제공했기 때문에 해당 회사의 제품 선호도는 높은 편이었고 네트워크의 가치 또한 빠르게 성장했죠.
위와 같은 맥락을 고려했을 때, 하드포크 상황에서 첫번째 조건에 더욱 부합하는 경우는 하드포크되어 새롭게 이어져가는 체인(ex. ETH 블록체인)입니다. 초기 네트워크 가치는 크지 않지만, 많은 유저들이 해당 블록체인에 선호를 크게 느끼죠. ETH 블록체인의 경우에도 약 85%의 유저가 동의하며 하드포크되었습니다.
외부성의 해결 방법 ?
앞서 말씀드린 것처럼 너무 적은 외부성도, 너무 많은 외부성도 블록체인 네트워크에서 적절하진 않을 것입니다. 즉, 포크가 너무 안 발생해도 문제고 너무 많이 발생해도 문제라는 것이죠. 항상 최적이 어느 정도인지가 중요한 것 같네요.
1) 피구세
조세라는 것은 기본적으로 “법률”이라는 사회적 인프라에 명시되어 있는 것이고, 현실을 살아가는 사람들은 이러한 조세에 의해서 자신들의 의사 결정에 변동을 겪습니다. 특히 조세의 성격이 징벌적이거나 행동 유도적 조세(피구세, 조세특례)일 때 더욱 그렇습니다.
피구세는 거의 벌금을 내는 것과 유사한데, 과세표준을 종가세로 설정할지, 종량세로 설정할지 결정해야 하고 가장 골치아픈 것은 해당 블록체인에서 납세자의 탄력성을 어느 정도로 예측할지도 이슈입니다.
온체인 거버넌스 측면에서의 피구세 메커니즘은 제가 예전에 분석했던 자료에서 더 자세하게 확인하시면 될 것 같습니다.
2) 포크 권리의 거래
포크의 권리를 거래한다는 것, 즉 외부성을 발생시키는 요인에 대한 거래라고 함은 오염 배출권 거래제 아이디어를 차용해 본 것입니다. 외부성을 해결하는 방법 가운데 오염 배출권 정책은 정부의 개입을 최소화하고 시장에서 자율적으로 오염에 대한 수준을 조정할 수 있도록 하는 장치로 알려져 있습니다.
그런데, 오염 배출권 시장에서도 겪고 있는 문제가 하나 있습니다. 오염 배출권 가격의 변동성입니다. 시장에서 거래되는 오염 배출권의 가격은 “당연히” 폭락하기도 하고, 폭등하기도 합니다.
배출권을 거래하는 사람들은 안정적인 가격에서 거래하고 싶어하겠죠. 똑같은 오염을 배출했는데, 예전에는 100원만 냈다가 지금은 1,000원 내면 싫을테니까요. 이렇게 배출권을 할당받은 기업들이 변동성과 관련된 문제로 골치아파지는 상황에 처한다면, 발행량을 조절하는 등의 개입이 이루어지고 있습니다.
배출권 발행량은 정부에 의해 조절됩니다. 배출권 제도를 최초로 디자인하는 것도 시장이 아닌 정부입니다. 결국 배출권 시장은 중앙은행의 화폐 정책과 유사해질 수 밖에 없다는게 많은 전문가들의 입장입니다.
결국 시장에서 “가치의 안정적인 저장이 필요한” 어떤 재화를 거래되게끔 하려면, 수요와 공급의 수준을 잘 일치시킬 수 있는 수단이 가장 중요합니다. 그게 중앙 은행같이 재화의 발권력을 독점하는 기관이 되었든, MakerDAO 같은 스마트 컨트랙트 알고리즘으로 하든 말이죠.
그런데, 위와 같은 모습은 암호화폐 업계에서도 존재해왔습니다. 바로 EOS의 RAM 시장입니다.
EOS 블록체인에서 계정을 생성할 때 필요한 리소스인 RAM은 공식적으로 Bancor 알고리즘에 의해서만 거래됩니다. 그리고 RAM은 BP에 의해 공급량이 조절됩니다. 배출권 거래제와 비슷하지 않나요?
그럼에도 불구하고, EOS RAM의 가격은 위와 같이 치솟았습니다. 암호화폐 시장에서의 투기적 수요 때문에 위와 같은 현상이 발생했다는 입장도 많고요.
기존의 논의로 돌아오면, 포크에 대한 권리를 의미하는 토큰을 별도로 발행하면 마치 블록체인 네트워크에서의 참정권을 돈 주고 거래하는 것과도 같습니다. 이차방정식 투표(Quadratic Voting)처럼 말이죠. 이 때, 크게 2가지 상황이 발생할 수 있습니다.
i) EOS의 RAM처럼 ,투기적 수요로 인해 가격이 치솟아 실제 포크가 발생했을 경우 포크에 대한 진입장벽이 높아지거나
ii) 가격이 낮은 수준이라면 돈 많은 악의적인 공격자에 의해 Fork Token이 매수될 수 있습니다. 만약 포크에 토큰 발행량의 10%에 해당하는 정족수가 요구된다면, 악의적인 공격자가 91%의 토큰을 매수해버리면 사용자들 중 어느 누구도 포크할 수 없습니다.
현재 암호화폐 시장의 특성상 오염 배출권 시장에서 겪는 가격 변동성보다 더 심한 변동성을 겪을 것입니다. 다들 아시다시피, 암호화폐는 발권력을 조절하는 중앙 주체가 없(는게 맞)으니까요.
3) 포크의 최대 발생수를 제한
이 경우는 사실 거의 생각을 안해도 되는 해결책 같습니다. 비트코인 진영이나 ETC와 ETH의 하드 포크처럼 메인 네트워크 자체에 대한 하드 포크를 막을 수가 없습니다. 기본적으로 오픈 소스인데, 제 3자가 이에 대해 최대 발생수를 제한하는 건 불가능하죠.
다만, 스마트 컨트랙트 레벨에서 유저 스스로 포크의 권한을 갖게 되면 이야기가 조금 달라질 수 있습니다. 스마트 컨트랙트 레벨에서 유저 스스로 포크의 권한을 갖게 되는 경우도 있는데요. 일반상태 Plasma 체인의 경우, Data Availability 상황에서 유저 스스로 포크할 수 있는 권한을 부여받을 수 있습니다. 이 경우 사전적으로 알고리즘 상에 최대 포크 가능 블록수를 제한할 수는 있습니다.
예를 들어, Data Withholding이 발생하여 플라즈마 체인의 블록에 대한 포크 권한을 유저 스스로 갖게 된다고 합시다. 그리고 최대 포크 발생수를 초과하는 포크에 대해서는 자산을 삭감(Slash)하는 형태의 처벌 알고리즘을 둔다고 하면, 최대 허용 포크 수까지는 악의적인 포크가 계속 발생할 겁니다.
뿐만 아니라, 실제로 DA가 발생했을때 선의의 포크를 해야함에도 불구하고 알고리즘에 사전적으로 기록되어있는 최대 포크수에 이미 도달했다면, 선의의 포크는 발생하지 못합니다.
이처럼, 외부성의 문제는 어떤 명확한 답이 있는 문제가 아닙니다. 포크의 최대 발생수를 제한해도 문제고, 안해도 문제입니다. 사전적으로 어느 정도가 적정 포크 횟수인지, 즉 어느 정도가 블록체인 네트워크에서의 적정한 외부성인지를 찾아가는 최적화 작업이 별도로 필요한 것입니다. 앞서 말씀드렸듯이, 외부성을 100% 해소하는 것만이 답은 아니니까요. 그렇게 할 수도 없고요.
유사한 문제로 고민을 겪는 분들이 있다면, 지금 구현하기에 용이한 방법이 무엇인지부터 먼저 연구해보시는 것이 좋을 것 같네요.
Related Work
1. Blockchain Upgrade as a Coordination Game (Cathy Barrera, Stepanie Hurder)
아래의 논문까지는 제대로 읽어보지 못했지만, CESC18에서 블록체인 거버넌스, 그리고 하드포크와 관련된 균형에 대해서 학술 발표가 진행되었습니다.
2. 가장 효율적인 블록체인 컴퓨팅 자원 분배 방법은? (DECON)
DECON에서 작성된 블록체인 내의 외부효과 관련 아티클입니다. 매우 깔끔하고 가독성도 좋아서 온체인 거버넌스를 고민하는 분들이 읽어보시면 좋을 것 같습니다.