brunch

You can make anything
by writing

C.S.Lewis

by Ash Han 한승환 Dec 24. 2016

비트코인 확장성과 경제학 (블록체인 중급)

Bitcoin Scalability and Economics


비트코인 확장성 논쟁과 경제학  

-블록크기 논쟁의 핵심


Bitcoin Scalability Controversy and Economics

-Block Size Controversy 




2009년 1월 3일(GMT) 비트코인이 처음 가동되고, 1월 9일날 최초로 비트코인 0.1버전이 공개되는 순간까지만 해도, 비트코인에 대한 주요 논란거리는 비트코인의 구동방식과 시스템의 보안부분이었다. 그러나 해시기법이나 암호체계 등이 상세히 밝혀지고 토론이 진행되면서 새롭게 부각되는 문제가 있었다. 비트코인의 확장성(Scalability)이었다.


이 확장성 문제는 비트코인뿐 아니라, 블록체인 전반에 걸친 거대한 흐름과 직결된다. 확장성 이슈를 이해하는 것은 앞으로의 블록체인 산업 방향 조망과, 가상화폐 시장 흐름을 이해하는데 도움이 될 것이다.





<bitonic>




확장성 (Scalability)

비트코인과 같은 이체시스템에서 확장성은 가장 중요한 이슈 중 하나이다. 확장성은 기본적으로 단위 시간당 얼마나 많은 작업을 처리할 수 있는가와 관련이 있다. 초기에는 비트코인의 각 블록에 10개 정도의 이체만 발생하겠지만, 시간이 흐름에 따라 100개, 1000개 그리고 그 이상까지도 계속 증가해 나갈 것이다. 이렇게 이체가 대폭 증가하더라도 이를 무리 없이 수용하고 처리해낼 수 있는 능력이 곧 확장성이다.


블록체인 산업 전반에 영향을 미치는 PoW vs PoS 논쟁이나, 블록크기, 블록주기, 블록 알고리즘 등의 요소들은 모두 확장성과 밀접한 연관을 가진다. 플랫폼은 수많은 사람들이 자유로이 참여하여 사용자와 사용량이 증가해야 그 가치와 효용이 늘어나는데, 확장성이 없다면 그러한 이를 수용할 수 없게 된다.


확장성 문제는 비트코인 또는 블록체인이 계속 성장하기 위해서 해결해야 할 필수과제이다.






초기의 비트코인 확장성 이슈 (Scalability in the Early Days of Bitcoin)

모든 화폐에 있어서 확장성은 너무나 당연한 이슈이다. 2008년 11월 1일 최초로 사토시가 Cryptography Mailing List를 통해 비트코인 백서를 공개한다. 그리고 11월 2일, 바로 다음날 받게 된 질문이 확장성에 대한 물음이다.


James A Donald:

"For transferable proof of work tokens to have value, they must have monetary value. To have monetary value, they must be transferred within a very large network for example a file trading network akin to bittorrent. 

<중략>....If hundreds of millions of people are doing transactions, that is a lot of bandwidth each must know all, or a substantial part thereof."

"비트코인이 가치를 지니기 위해서는, 반드시 금전적 가치가 있어야 하며, 그러기 위해서는 비트토렌트(Bittorrent)와 같은 대규모의 네트워크에서 실제로 사용되야만 한다. 그럴 경우, 수 억명의 사람들이 발생시키는 엄청난 양의 이체들을 처리해야 할 수 있다."


사토시는 해당 이체내역을 모두가 보관하거나 처리할 필요는 없으며, 대부분의 사용자들은 SPV형태로 헤더(header)만을 취하고, 일부만이 모든 내역을 처리하는 완전노드(Full node)의 역할을 하면 된다고 답변한다.


<사토시가 설명한 SPV - 비트코인 백서, 섹션 8>


또한 완전노드의 경우라도, 네트워크가 그 정도까지 커졌을 때쯤이면, 네트워크 전송속도나 대역폭 관련 기술의 발달로 인해 2008년 기준 VISA사의 일일 이체량인 100GB 수준, 또는 HD화질 영화 두 개 정도를 보내는 것은 쉬울 것이라고 전망했다.


(안타깝게도, 아무리 SPV를 이용한다 해도 여전히 완전노드는 모든 내역을 전부 처리해야 하며, 기술의 발달 속도 또한 비트코인에서 요구되는 이체처리량(throughput) 증가속도를 따라오지 못했다)


2010년 말까지만 해도 블록크기가 현재처럼 1MB가 아니라, 200KB로 제한되어 있었는데, 사토시는 당시 이체발생건수를 언급하며 심지어 블록크기를 50KB 낮추어야 한다는 제안을 한다. 사토시는 초기에 대부분의 이체가 수수료 없이 처리되기를 원했으며, 따라서 수수료부과가 아니라 블록크기를 제한하는 방식으로 스팸공격을 막고자 하였다. (당시 수수료는 paytxfee 커맨드를 통해 수동으로 지불하는 방식, 그 이후로 settxfee로 바뀌었다가 다시 paytxfee로 수정됨) 물론 이 방법은 장기적인 솔루션이 아님을 사토시 본인도 알고 있었다.


사토시와 초기 참여자들은 비트코인의 확장성 문제에 대한 수많은 논의를 거쳐왔는데, 최대한 블록체인의 크기를 늘리지 않도록 하는 방향을 원했다. 이를 위해 수수료를 지불하는 이체 건을 선순위 처리하거나, 블록크기를 제한하거나 서명알고리즘으로 RSA가 아니라 ECDSA를 사용하는 등의 기법이 사용되었다.



기타 관련 논의:

https://bitcointalk.org/index.php?topic=286.msg2947#msg2947      

https://bitcointalk.org/index.php?topic=287.msg2293#msg2293






비트코인 블록크기 논쟁 (Bitcoin Block Size Argument)

비트코인의 확장성을 확보하기 위한 여러 가지 방법이 있을 수 있다. 1) 이체속도를 빠르게 하는 방법, 2) 단위 시간당 최대한 많은 이체건수를 처리하는 것, 3) 단위 블록크기 당 최대한 많은 이체건수를 처리하는 것 등이 그것이다. 그중 한 방법은, 4) 10분 마다 생성되는 블록의 크기 자체를 키우는 것이다. 매 10분마다 비트코인에서 처리할 수 있는 현재 이체용량은 1MB이다. 이를 더 키우는 것이다.


다른 요소에 비해 단순히 블록크기를 키우는 것은 기술적으로 매우 간단하다. 그러나 지적되는 여러 가지 장단점 때문에 논란이 되고 있다.


장점 (Pros)

1) 블록크기가 늘어나면 당연히, 같은 시간 안에 더욱 많은 이체량을 처리할 수 있는 공간을 확보하게 된다.

-공간이 1MB에서 2MB나 5MB 등으로 늘어나기 때문


2) 수수료가 현재보다 낮아질 것이다.

-1MB를 꽉 채운 이체 건들로부터 수수료를 0.01BTC씩 받아야 했다면, 2MB를 꽉 채운 경우, 0.005BTC씩만 받더라도 블록 당 수익을 동일하게 유지될 것이다.


3) 사용자가 더 많이 참여할 것이다.

-수수료가 낮아졌기 때문에, 더욱 많은 여러 형태의 기업고객들이 참여하고 새로운 사업기회들이 창출될 수 있을 것이다.


단점 (Cons)

1) 탈중앙화 가치의 훼손 - 더 적은 수의 완전노드(Full node)

만일 블록크기가 두 배로 커진다면, 장기적으로 완전노드가 되기 위해 사용해야 하는 용량도 2배가 되며, 이를 다운받는데 걸리는 시간도 2배가 된다. 결국, 더 적은 수의 참여자들이 네트워크 유지행위에 참여할 것이고 탈중앙화적 가치가 훼손된다.


2) 네트워크 전송속도 지연

블록의 크기가 커지면 당연히, 블록을 다운받고 전파하는데 걸리는 시간도 늘어난다. 이 시간이 늘어나게 되면, 스테일블록(=고아블록)이 늘어나며 네트워크의 낭비와 불안전성이 발생한다. 최종적으로는, 이체확인속도 자체가 느려질 수 있다.


3) 하드포크로 인한 혼란 (중요)

블록 크기를 늘리기 위해서는 하드포크가 필요한데, 즉 모든 채굴 참여자들이 동시에 또는 적어도 근시일 안에 동일한 소프트웨어를 다운로드하여 작동시켜야 한다는 점이다. 그렇지 않다면 네트워크가 나뉘게 되며 엄청난 혼란이 발생할 수 있다. 이전에도 이러한 포킹이 일어난 적은 있으나, 비트코인 자체가 주목받지 못하던 시기이고 가격도 제대로 형성되기 전이기 때문에 별다른 문제없이 잘 처리되었다. 그러나 현재 비트코인에 엮인 이해관계자들이 너무나 많고, 세계의 주목을 받고 있으며, 상당수의 상용서비스들이 비트코인 블록체인 위에서 돌아가고 있다. 이러한 상황에서 최근의 ETH - ETC의 경우 같이 네트워크가 나뉘는 상황이 발생하면, 일반 사용자들에게 엄청난 혼란을 초래할 수 있고, 결국 비트코인과 탈중앙화 블록체인 산업 전체에 대한 신뢰도 하락으로 이어질 수 있다.


4) 중국 채굴자들의 반대 (Opposition of Chinese Miners)

현재 중국채굴자들이 전체 비트코인 마이닝 파워 중 70%를 차지하고 있다. 중국채굴자들의 동의 없이는 어차피 비트코인 포킹이 불가능한 상황이다. 중국채굴자들이 반대하는 이유는 크게 두 가지이다. 하나는 하드포킹이 초래할 혼란으로 인한 비트코인 가격변동위험을 없애기 위해서고, 둘째는 중국의 악명높은 '만리방화벽(Great Firewall of China)' 문제이다. 중국은 정부에서 인터넷을 통제하기 때문에, 네트워크의 지연이 빈번하다. 특히 비트코인의 경우 중국내부가 아니라 외부와 수시로 교신해야하기 때문에 방화벽으로 인한 지연에 방해를 받고 있다. 이 와중에 블록크기까지 커져버리면 전송속도에 더 큰 타격을 입을 것이고, 이는 비트코인 네트워크 전체의 해시파워 낭비로 이어진다.


                    

<중국의 공장형 채굴자들>


위와 같은 고려해야 할 논점들이 존재한다. 여러 업계 인사들이 해당 문제에 대한 의견들 내놓고 있고 논점들은 나름의 논거가 있다. 5~20MB수준의 갑작스러운 크기확장 부분에서는 반대가 많으나, 2MB 수준으로의 확장에서는 대부분이 필요를 인정하고 있다. 비트코인의 확장성이 더 높아져야 한다는 점에도 이견이 없다.


아담백(Adam Back):

"확장성을 높이는 것은 좋으나, 블록크기 확장은 보안성의 희생을 요구할 것, 확장 이후에도 문제가 없도록 최선의 계획을 먼저 세워야 함"

-아담백은 비트코인의 작업증명에 사용되는 Hashcash와 PoW시스템을 설계한 비트코인의 대부, 현재는 블록스트림의 대표


비탈릭 뷰터린(Vitalik Buterin):

"비트코인이 디지털 골드가 되기를 원한다면, 확장해서는 안되며 오히려 블록크기를 줄여야 할 수도.. 그러나 단순 결제시스템이 되고자 하면 확장하는 것이 맞다."

-이더리움 창립인


마이크헌(Mike Hearn) & 게빈안데르센(Gavin Andresen)

"포킹을 통한 비트코인 블록크기 확장이 유일한 대안이다"

-비트코인 파운데이션 최상위 멤버, 확장성 문제을 해결한 'Bitcoin XT' 개발


피터스미스(Peter Smith)

"블록크기는 커져야 하며, 게빈의 의견에 동의함"

-'Blockchain.info' CEO






비트코인 종말론 (Bitcoin Doomsday)

비트코인이 위와 같은 이유 때문에 결국 종말 할 운명이라고 말하는 이들도 있다. 확장성을 확보하기 위해서는 블록의 크기를 키워야 하는데, 블록크기를 키우는 것이 하드포킹 리스크로 저지되고 있는 상황이기 때문이다. 이는 비트코인 특유의 PoW방식과 데이터의 이진트리(Binary tree) 저장방식에 기인한다. 또한 블록의 크기가 작기 때문에 이체를 보내고자 하는 이들의 경쟁심화로, 수수료가 계속해서 높아져 왔다. 이제는 일반적으로 사용되는 이체수수료인 0.0002btc가 152원에 달한다. (비트코인 당 762,100원 기준 - 2016년 7월 10일 코인원 거래소 가격) 152원이면, 이미 비트코인의 가능성 중 하나로 언급되었던 '마이크로결제(초소액결제)'는 거의 불가능한 셈이다. 때로는 전송 수수료가 카드결제 수수료 이상이 되는 경우도 빈번하다.


이러한 비트코인 종말론을 수년 전부터 열심히 전파해온 사람이 마이크 헌(Mike Hearn)이다. 구글에서 7년 반동안 보안 및 스팸관리부서에서 일했고, 이후 2014년도부터 풀타임 비트코인 개발자로 일하기 시작했다. 수년간 비트코인을 강하게 비판하는 것으로 업계의 주목을 받고 '금융 프라이빗 블록체인 스타트업인 R3'에 들어감으로 성공적으로 피보팅(pivotting)을 한 인물이다. 심지어는 비트코인은 끝났다고 강력히 주장하기도 했다.


물론 비트코인이 영원히 지속될 수는 없겠지만, 그렇다고 마이크 헌이 이야기한 것처럼 바로 죽을 운명은 아니다. 여태껏 그는 강한 발언으로 주목과 인지도를 얻는 것에 전념해온 인물이다. 물론 실력도 매우 뛰어나다. 그러나 비트코인 확장성에 대한 부분에서는 더욱 명확한 이해가 필요한 것으로 보인다.


먼저, 비트코인이 하드포킹을 한다고 해서 망하는 것은 아니다. 그냥 하드포킹한 비트코인대로 진행하면 된다. 중국인 마이너들이 마이크 헌의 주장처럼 단순히 '만리방화벽' 때문에 1MB를 채우지 않고 있는 것도 아니다. 확장성을 반드시 블록 크기를 키워야만 확보할 수 있는 것도 아니다. 다른 기법들이 많이 나와있다(아래에서 언급). 소수의 권력에 좌지우지되지 않는 커뮤니티는 없다. 이는 이더리움의 경우도 마찬가지이다. 이러한 현실을 감안하고 시스템을 설계하고 유지해 나가는 것이 맞는 방향이다. 이것이 맘에 들지 않는다면 어차피 해당 네트워크에서 사람들이 떠나가는 자정작용이 일어난다. Ghash풀이 50%에 가까운 해시파워를 모으자, 참여자들이 자발적으로 떠난 것이 하나의 예이다.







                   

채굴 경제학 (Mineconomics)

채굴은 기본적으로 다음의 순환구조로 설명할 수 있다.


1) 최초의 채굴이 이루어진다. 이때 채굴자들의 동기는, 호기심과 단순 시도이다.


2) 비트코인이 가치를 형성한다. 상업적 채굴자들이 참여하기 시작한다.


3) 비트코인이 가격을 형성하고, 채굴자들은 해당 비트코인을 채굴해서 판매하고 돈을 벌기 위해 설비를 갖추어 채굴한다.


4) 모든 채굴자들이 대형화되고, 취미가 동기가 되어 채굴하는 사람들은 거의 존재하지 않는다.


5) 비트코인 가격이 내려가면, 채굴기를 끈다.


6) 가격이 올라가면 채굴설비를 더 구매하여 투자한다.


7) 이 과정이 채굴비용과 채굴수익이 거의 비슷해져 이익(순수익)이 '0'에 가까워질 때까지 반복된다.


위의 내용은, 비트코인 난이도 그래프와 가격상관관계를 보면 알 수 있다. 블록난이도 변경 기간이 짧은 코인의 경우, 이러한 현상을 더 명확히 관찰할 수 있다. 채굴자들의 채굴동기는 현재 부정할 수 없이 '돈'이다.



다음의 자료를 통해 흥미로운 사실을 알 수 있다.


                    

<연구자료, 블록체인 인포의 CSV데이터를 가공>


블록 크기는 1MB인데, 6개월(2016-02-15 ~ 2016-08-15) 동안의 평균 블록크기는 0.72MB에 불과했다. 그러나 지금도 여전히 빠른 전송을 위해서는 상당량의 수수료가 필요하고, 일부 이체는 수수료를 넣었는데도 수십 블록 동안 컨펌이 되지 않으며, 이체확인이 한두 시간 걸리는 일도 허다하다.


이미 이체신청은 풀에 가득하고 블록에 남는 공간도 분명히 존재하는데 왜 채굴풀들은 이를 블록에 넣어주지 않는 것일까? 무려 25%의 공간이 사용되지 않고 있다.


더 많은 이체내역을 블록에 넣어서 1MB를 꽉 채우면 더 많은 수수료 수익을 얻을 수 있을 텐데, 마이너들은 그렇게 하고 있지 않다. 결국 '1MB를 가득 채우면 오히려 돈을 더 못 벌 것'이라고 추정해볼 수 있었다.


(**물론 현재(2016-10-18)는 블록들이 포화상태가 되어 대부분의 블록이 1MB를 거의 가득 채워 발행된다.)



네트워크 블록전파 속도 (Block Propagation Speed on Network)

채굴(Mining) 행위는 기본적으로 경쟁에 기초한다. 수많은 채굴자들이 동시에 채굴을 시작하고, 블록생성을 하는 순간 주위의 노드에게 빠르게 전파시킨다. 채굴 성공 시, 이 블록을 빠르게 전파시키는 것은 매우 중요한데, 노드가 A의 블록보다 B의 블록을 먼저 받은 경우 A의 블록은 거부당하기 때문이다.


한 가지 예를 들어 이해할 수 있다.


A는 1MB를 꽉 채운 블록을 생성하여 전파한다.

B는 0.75MB만을 채운 블록을 생성하여 전파한다.


B의 상대적으로 가벼운 블록이 당연히 더 빠르게 전파될 것이다. (당연히 블록전파라는 것은 블록파일의 다운로드를 포함한다) A의 블록은 노드들에 한발 늦게 전파될 것이며, 블록을 거부당하기 때문에 블록생성보상 또한 받지 못한다. 이러한 상황에서 누군가가 굳이 더 무거운 블록을 고집해서 블록생성보상을 받지 못하는 일을 자초할 필요는 없을 것이다.


이 문제는 분산화된 네트워크를 가진 비트코인에서 더욱 심각하게 나타난다. 전체 노드가 100개라면, 블록을 생성한 A와 B 모두 자신의 블록이 주체인(main chain)이 되게 하기 위해서는 결국 100개의 모든 노드에 전파를 해야한다.


                    

<오른쪽이 비트코인의 분산네트워크>



A가 일차적으로 C와 D에게 전달하면, C와 D는 2차적으로 자신에게 연결된 E, F, G, H에게, E, F, G, H는 3차적으로 I, J, K, L, M, N, O, P, Q에게 다단계적으로 전달(relay)하는 방식이다.


따라서 1차에서는 25%의 속도차이가 나던 것이, 2차에 가서는 50%, 3차에서는 100%, 4차에서는 200%가 되는 식의 기하급수적인 전송속도 차이를 보인다. 이러한 네트워크가 블록을 전파하는 시간 때문에 발생하는 지연이 자주 언급되는 '네트워크 지연속도(latency of network)'이다. 이러한 지연속도의 영향을 줄이고자 적절하게 고안된 것이 비트코인 블록의 10분 주기이다. 주기가 너무 길면 실생활에 사용되기 어렵고, 주기가 너무 빠르다면 지연속도의 영향이 너무 커진다.


Satoshi Nakamoto

"I thought about that but there wasn't a practical way to do smaller increments.  The frequency of block generation is balanced between confirming transactions as fast as possible and the latency of the network"

즉, 상대방에 비해 블록이 무거워질수록 해당 블록의 발행인이 보상을 얻을 확률은 작아진다.


*물론 네트워크에서 블록을 발행하는 사람이 혼자일 경우, 블록이 얼마나 크든 아무런 문제가 없다. 하지만 실제 비트코인 네트워크에서는 다른 사람들과 전파속도를 두고 경쟁해야 되기 때문에 블록크기가 문제가 된다.


*데커(Decker)와 와튼호퍼(Wattenhofer)의 ‘2013년’ 논문을 보면, 비트코인의 블록이 50%노드에 전파되기까지는 6.5초, 95%의 노드에 전파되기 까지는 40초가량이 걸린다는 점을 지적한다. 현재 비트코인 네트워크 환경에서는 더 긴 시간이 소요될 것이다.


                    

<데커(Decker)와 와튼호퍼(Wattenhofer)의 ‘2013년’ 논문>



다음 블록 작업증명 시작 지연 (Delayed Start of The Next Block PoW) - 중요

블록을 생성하기 위해서는 이전 블록의 해시값이 필요하다. A가 5번째 블록을 생성하는데 성공하였고 이를 자신에게 연결된 노드에게 전파하였다고 생각해보자. 그리고 즉시 5번째 블록의 해시값을 기초로 6번째 블록 생성에 돌입한다. 그러나 1분이 지나서야, B가 이미 5번째 블록과 6번째 블록을 생성하였다는 내용을 전달받게 된다. A는 자신이 생성한 5번째 블록을 버리고(Orphan/Stale block), 생성 중이던 6번째 블록작업은 중단한 뒤, B의 5번째와 6번째 블록을 다운로드하여, 이를 기초로 7번째 블록생성작업에 돌입하게 된다. 그동안, B는 이미 7번째 블록을 1분이나 전부터 작업하고 있었다.


A가 B를 이기는 것이 도저히 불가능한 상황이 된 것이다. 원인은 투입해시파워나 단순한 운 등 여러 가지 가 있을 수 있지만, 그 외 모든 조건이 동일한 경우, 이러한 차이를 만드는 것은 블록전송속도일 수 있다.


A보다 먼저 전파된 B의 블록은 이미 더 많은 네트워크에서 작업되고 있고, 이는 나중에 거대한 차이가 된다.



채굴자들의 선택 - 블록탈락 리스크 vs 수수료수익

채굴자들은 결국 상대방 채굴자보다 블록크기가 크게 차이나는 블록을 만들 수 없다. 아무리 블록을 가득 채워서 수수료를 많이 받을 수 있게 하더라도, 상대방의 블록과의 경쟁에서 밀려 탈락되면, 결국 아무런 수익도 얻을 수 없기 때문이다.


1MB가 최대크기인 상황에서, 1MB를 가득 채운 블록은, 가장 경쟁력이 떨어지고 가장 탈락확률이 높은 블록인 것이다.


결국 채굴자들이 1MB를 채우지 않는 것은 경쟁구도에서 밀리지 않기 위함이다. 이를 통해 상대 블록에 비해 네트워크에 빨리 전파되고, 빨리 다음 블록작업을 시작해야 한다.


사실은 채굴자들이 굳이 의도하지 않더라도 '비트코인의 내재된 경쟁구도' 작동으로 인해, 1MB를 채운 블록은 높은 확률로 주체인에 산입되지 못하고 탈락된다.


*마이크 헌이 언급한 '만리방화벽(great firewall of china)'은 1MB를 채우지 못하는 직접적인 원인이 아니다. 이 방화벽이 없다고 해서 채굴자들 간의 경쟁구도가 사라지는 것은 아니기 때문이다.


**물론 현재는 블록들이 포화상태가 되어 대부분의 블록이 1MB를 거의 가득채워 발행된다.






블록크기가 커졌을 시 시나리오 (Scenario on Block Size Upscale)

여러 가지 가능한 시나리오가 있겠지만, 현재 우세하고 있는 비트코인 블록이 2MB로 확장되었을 경우를 상정해보자.


점진적인 블록크기 성장 (Gradual Growth of Block Size)

현재 평균 블록크기는 0.75MB이다. 이것이 바로 2MB나 1.75MB로 널뛰기하지는 않을 것이다. 모든 블록이 0.75MB일 때, 1.75MB의 블록을 전파하는 것은 자진해서 고아/탈락블록(Orphan / Stale block)이 되겠다는 것이나 마찬가지이다.


평균 블록크기는 채굴자들의 암묵적 합의하에 조금씩 서서히 커져갈 것이다.


중국채굴자들의 포지션 변화

위에 언급된 만리방화벽은 블록크기가 대폭 늘어났을 경우 문제의 원인이 될 수 있다. 중국과 그 외의 세계 중간에 네트워크를 수 초간 지연시키는 만리방화벽이 존재한다. 따라서 중국내부의 네트워크는 상대적으로 빠르지만, 외부와의 네트워크는 느리다.


중국채굴자가 블록을 생성하고 전파한 경우, 위에서 다룬 "다음 블록 작업증명 시작 지연 (Delayed Start of The Next Block PoW)"과 관련해서 중국채굴자들은 빠르게 전파받고 외부의 채굴자들은 느리게 전파받기 때문에 상대적으로 중국채굴자들이 유리해진다.


그러나 반대의 경우도 마찬가지이다. 외부에서 블록이 먼저 발견될 경우 중국 내부로는 상대적으로 늦게 전달이 되기 때문에 중국채굴자들에게 불리하다. 안타깝게도 중국의 인터넷 속도는 전세계 50위권 수준이다. 한국, 일본, 미국과 유럽국가들이 상위권을 차지하고 있다. 블록크기가 커질수록 전파속도는 기하급수적으로 차이 난다는 것을 "네트워크 블록전파 속도" 부분에서 검토하였는데, 이렇게 블록 크기가 두 배 이상 커지게 될 경우 네트워크 속도가 느린 중국채굴자들에게 상황이 상당히 불리하게 돌아갈 수 있다. 중국인들의 블록크기 반대가 충분히 이해 가는 대목이다.


                    

<전세계 인터넷속도>


엄청난 수의 탈락블록 비율 (Upsurge of Stale Block)

지난 2년간 주체인에 산입되지 못하여 보상받지 못하고 탈락되는 탈락 블록의 수는 평균 1.25개 수준이다. 탈락 블록의 수는 꾸준히 줄어들어왔는데, 직접 블록을 생성하는 채굴자의 숫자가 그만큼 적어졌다는 뜻(중앙집중화)이기도 하다.


일반적으로 탈락블록은 블록생성속도에 비해 블록전파속도가 느릴수록 늘어난다. (물론 블록생성속도보다 블록전파속도가 느리거나 동일한 경우는 존재하지 않는다 - 그럴 경우 블록체인 자체를 폐기해야 함)


두 배로 커진 블록은 전파속도를 늦출 것이고, 이는 탈락블록 확률을 대폭 높일 것이다. 이것은 블록체인 채굴자원의 낭비로 직결된다.


수수료 변화 (Transaction Fee)

사실 수수료 부분은 많은 사람들이 더 낮아질 것이라고 전망하고 있다. 당연히 더 커진 블록에는 더 많은 수수료를 담을 수 있기 때문에 평균 수수료 단가를 낮추어도 수익성은 그대로라는 것이다. 그러나 1MB에서 2MB로 블록을 늘렸다고 수수료가 반으로 떨어지는 것은 아니다. (어쩌면 수수료는 거의 낮아지지 않을 수도 심지어 더 늘어날 수도 있다) 수수료(수익)는 비용의 반대급부이다. 그러나 더 커진 블록은 더 많은 블록탈락 리스크를 동반하며, 이는 리스크(비용)의 증가로 이어진다. 수수료가 절반으로 떨어지는 일은 없을 것이다.






논의되고 있는 대안들 (Alternatives to Direct Block Size Scaling Up)


여러가지 대안들이 논의되고 있다. 그중 가장 가능성이 높은 몇 가지를 추려서 검토해보겠다.


수수료 경매제도

현재 비트코인의 사이드체인 선구자인 블록스트림(Blockstream)이 중국채굴자들과 손잡고 진행 중이라고 알려진 건이다(non official). 'RBF(Replace By Fee) 운동'이라고도 불리는데, 말 그대로 이체를 원하는 사람들이 경매식으로 '단위 바이트당 수수료'를 제시하고, 이를 채굴자가 받아서 높은 순서대로 자신의 블록에 산입시켜주는 형식이다. 이는 암묵적이던 수수료 경쟁을 표면화시킴으로 수수료의 가파른 증가로 이어질 수 있다. 수수료의 증가가 채굴자들이 원하는 방향이기도 하다. 수수료가 증가하면, 웬만한 이체 건은 블록체인 외부에서 처리가 될 것이고 자연스럽게 비트코인 블록체인의 이체 건수가 최적화될 수 있다는 논리이다.


채굴자들 입장에서는 블록체인 크기변경도 안 하고 수수료도 증가하는 방식이기 때문에 환영하기 않을 수 없다. 그러나 이러한 방식이 비트코인의 대중화에 걸림돌이 될 수 있다는 지적도 나오고 있다.


*블록스트림은 올해 7월, 동적 수수료 기능을 제공하는 지갑 개발업체인 GreenAddress를 인수하였다. GreenAddress의 블로그에 관련된 흥미로운 내용들이 많이 있다.


Bitcoin XT

대표적인 비트코인 스케일 업 지지자인 게빈 안데르센(Gavin Andresen)과 마이크 헌(Mike Hearn)이 함께 제작한 프로젝트이다. Bitcoin XT는 지갑으로 최대 블록 당 8MB까지 이체를 기록하며 매 2년마다 두 배로 블록싸이즈를 늘리는 프로토콜을 가지고 있다. 하드포크를 해야 하기 때문에 매우 리스크가 큰 해결책이다. 현재 전 세계 비트코인 마이너의 약 10%가 이 프로젝트에 참여하고 있다.


Coinbase, BitPay, Circle, Blockchain 등의 업계의 리딩 기업들이 이 프로젝트를 지지하고 있지만, 메인스트림이 될 정도의 채굴자들의 지지를 얻기는 어려워 보인다. 아무리 업계 최고의 기업들이 지지를 선언해도 채굴자들이 움직이지 않으면 변화는 일어나지 않는다. 업계에서 채굴자들의 영향력이 매우 크다는 점을 알 수 있다.


사이드체인 (Sidechain)

사이드 체인은, 비트코인의 블록체인을 부모체인(Parent chain)으로 삼아, 제 3의 체인을 만들어서 대부분의 이체처리를 제 3의 체인에서 진행하는 방식을 말한다. 현재 해당 분야 선구자인 블록스트림에서 이미 제안을 한 바 있으며, 그 외에도 ConsenSys, Counterparty, Tendermint의 Cosmos 등이 해당 기능을 도입하는데 앞장서고 있다.


특히 Tendermint의 Cosmos는 비트코인의 사이드체인 역할에 그치는 것이 아니라, 수많은 다른 코인들을 자유로이 사이드체인으로 붙여 연동시킴으로 상호운용성(interoperability)을 높이고 종국에는 존재하는 모든 코인의 확장성 이슈를 궁극적으로 해결하고자 하는 모델이다.


일반적으로 사이드체인 방식은, 비트코인의 하드포킹이 필요 없으며, 블록 크기를 키우지 않으면서도 탄력적으로 거의 제한 없는 이체를 처리할 수 있게 만드는 솔루션이다. 개인적으로는 현재 상황에서 가장 합리적인 솔루션이라고 생각한다.


그 외에도 Lightning NetworkSegregated Witness 또는 이 둘과 사이드체인을 결합한 형태 등이 솔루션으로 제안되고 있다. 또한 네트워크 내부망(internal network) 자체를 만들어 더 빠르게 네트워크 릴레이를 하는 이슈도 논의되고 있는데, 대시코인의 마스터노드 네트워크(Masternode network)나 빗쉐어즈(Bitshares)의 증인노드(Witness node) 방식이 좋은 사례이다.






비트코인의 탄생 처음부터 지금까지 끊임없이 논란이 되고 있는 확장성 문제는 블록체인 업계에서 반드시 해결해야하는 과제이며, 표준화해야 할 문제이다. 블록체인의 확장성 문제는 단순히 블록크기의 문제가 아니라, 블록크기-수수료-이체참여자-채굴자 등의 복합적인 경제적 인센티브가 연관되어 있으며, 합의알고리즘, 프로토콜 특히 네트워크 망에 크게 의존한다.


확장성 문제는 분명히 해결하는 것이 가능하며, 이러한 문제를 원만히 해결할 때 블록체인 산업이 한걸음 더 나아갈 수 있을 것이다. 이는 퍼블릭 블록체인과 프라이빗 블록체인 모두에서 동일하게 매우 비중 있게 다루어지고 있는 주제이다. 어떤 프로토콜을 통해 블록체인을 이용하든 확장성 문제는 언제가 이슈가 될 것이기 때문에 이 문제에 면밀한 주의를 기울여야 한다.











매거진의 이전글 리플과 스텔라 비교 그리고 한계점
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari