스케일링 해결책 - 2부 On chain Solution - Bitcoin

in #coinkorea2 years ago (edited)

이번 2부에서는 앞서 이야기한 오프체인상에서의 스케일링 해결책이 아닌, 온체인(메인네트워크)의 해결책에 대해서 이야기해볼 생각입니다. 이번화에서는 비트코인의 온체인 스케일링 솔루션에 대해서 이야기하고, 다음화에서는 온체인 상의 해결책에 대해서 비트코인과 이더리움의 비교, 이더리움의 해결책이 좀더 원활한데도 불구하고(가스 리밋 기준) 어째서 추가적으로 진행되지 않는지에 대한 궁금증들을 이야기해볼 계획입니다. 긴글이 될 듯합니다. 편안하게 봐주시면 좋겠습니다. 

On chain Solution - 사이드체인과 오프체인이 아닌 온체인 상에서의 스케일링 솔루션

참고 : Bitfury

비트코인 포럼에서 2016년 5월에 2X라는 온체인 기반의 스케일링 솔루션이 처음으로 논의되었습니다. 물론 2015년도에 Bitfury사에서의 블록의 사이즈와 관련된 민감도 분석의 레포트가 나왔으나, 전송한도 도달 시기가 2016년 10월이라는 점에서 단순히 학문적인 레포트가 아닌, 필요성적인 논의의 시점은 2016년도라도 봐도 무방할 것입니다.  

참고 : 비트코인 네트워크의 일간 블록 생성 수

참고 : 세그윗 추이= 블록이 포함할 수 있는 거래 수의 효율화 진행중

비트코인 블록체인에서 온체인상에서의 스케일링 솔루션은 무엇이 있을까요. 블록체인의 구조상 베이스 레이어 상에서 일간전송한도를 결정짓는 변수는 오직 2가지 입니다. 첫 번째는 개별 블록이 포함할 수 있는 거래의 수, 두 번째는 블록이 생성되는 속도입니다. 블록이 포함할 수 있는 거래라 함은 한개의 블록의 크기를 증가시키는 것과 블록의 효율화를 일반적으로 의미하고, 생성속도를 향상시키는 것은 합의 알고리즘의 변화, 또는 구조적인 변화(난이도 산정의 기준이 되는 블록의 수. 비트코인은 현재 2100개의 블록마다 난이도를 블록 생성속도 10분을 기준으로 조정)를 의미 합니다. 

이러한 변화가 이루어진다면 블록은 블록당 더 많은 전송을 커버할 수 있고, 비어있는 블록을 만드는 것보다는 낮은 수수료의 전송까지 넣어서 블록을 생성하는 것이 수수료 이익으로 이득이 되기에 평균 전송비용은 하락할 것이고, 이는 사용자의 확대를 이끌 수 있을 것입니다. 스팀과 같은 게임DRM 업체가 다시금 비트코인 네트워크로 돌아올 수 있다는 것입니다.

다만 블록의 생성속도가 빨라지거나, 블록의 크기가 증가하게 되면 비트코인 기준으로는 고아블록, 이더리움 기준으로는 Uncle 블록의 비중이 높아지게 되는 문제점이 있습니다. 이 부분에 대해서는 후에 기술할 계획입니다.(블록의 전파 속도의 문제 발생, 그리고 이로인한 중앙화의 이슈, 이더리움의 Gaslimit 또한 동일한 문제점이 존재합니다)

결국 온체인상에서의 어떠한 솔루션을 채택한다고 하더라도 기존에 추구하던 효율적인 블록체인의 거리와는 멀어지게 됩니다. 그리고 블록체인의 기본 목적인 탈중앙화와도 멀어지는 문제점이 존재합니다. 그런데 왜 우리는 왜 온체인에서의 솔루션에 집중하는 것일까요.

블록의 사이즈를 키우는 빅블록의 경우에는 개발자가 코드 몇 줄만 수정하면 됩니다. 이더리움은 단순하게 단일 블록에 포함하기 위한 거래의 수를 늘리기 위해서 블록당 Gaslimitcap을 높이면 됩니다.(Geth나 Parity에서 조절 가능) 오프체인이나 사이드체인, 인터체인과 같이 완벽하게 새로운 블록체인을 Genesis부터 새롭게 만들어 내지 않아도, 그리고 블록체인이 아닌 구조하에서 Trustless를 만들기위한 수많은 중첩적인 거래를 만들기 위해 고민하지 않아도 됩니다. 새로운 기술 도입에 있어서의 지속적인 지연과 어려움은, 역설적으로 문제점이 존재할 수 밖에 없는 온체인 상의 솔루션에 집중하게 만드는 요인입니다. 어떠한 결과가 나올지와는 무관하게 말입니다. 

결론부터 이야기하자면 현재의 블록체인의 구조를 유지한채로 스케일링의 문제를 해결하는 온체인상의 솔루션은 제한적입니다. 하지만 온체인 솔루션이 제한적인 이유를 알아야지만, 스케일링 문제를 해결하기 위한 다른 방법에 오히려 집중할 수 있을 것입니다. 이번 2부에서는 솔루션이 어째서 제한적인에 대해서 알아볼 계획입니다. 


비트코인 On chain Solution의 역사

먼저 비트코인이 과거에 스케일링 이슈에 대해서 어떤식으로 극복하려 했는지 알아볼 계획입니다. 2년동안 수없이 진행되어온 스케일링 솔루션 제안들이 어떻게 결론지어 졌는지, 그리고 지금 2017년에 제시되었던 2X가 진행되기 어려웠던 이유에 대해서 알 수 있을 것입니다. 다음은 비트코인의 온체인 기반 스케일링의 역사에 대해서 위키피디아에 정리되어 올라와있는 " Bitcoin scalability problem - Proposed scaling solutions"과  " ビットコインスケーラビリティ問題の歴史まとめ - bitcoin-scalability"를 구글 Translate로 번역하고 정리한 내용입니다.

2015년

08/15 Bitcoin XT 출시 - 빅블록 논의의 시작

비트코인의 확장성에 대해서는 오래 전부터 개발자 커뮤니티에서 문제가 제기 되었습니다. 그러나 Core 개발자 (비트코인 공식 클라이언트 개발자) 사이에서는 블록 크기 제한을 늘린다는 해결책에 대한 반대가 많았습니다.  

그러던 중 가빈 안데르센과 마이크 헌에 의해 비트코인 블록 크기를 확장하는 XT가 출시되었습니다. 갑자기 XT를 내놓고 블록사이즈를 확대할 것인지에 대한 판단을 마이너에게 맡기는 의사결정 방식에 반발이 발생해 비트코인의 커뮤니티는 분열되었습니다. 비트코인 포럼과 bitcoin.org에서는 XT에 대한 게시물이 삭제되는 등 검열이 이루어졌고, XT를 채용한 노드 및 마이닝 풀에 dos 공격이 가해지는 등 말썽이 일어났습니다. 


09/12-13, 12/06-07 - Scaling Bitcoin 1회~2회 개최  -  개발자와 채굴자의 크랙의 발생

XT 출시로 확장성 문제가 이슈화가 되어 Scaling Bitcoin 회의가 개최되었습니다.(1회는 몬트리올, 2회는 홍콩) 이 회의에서 SegWit (Segregated Witness - 2017년 8월 1일 Activation) 가 처음으로 제안되었습니다. 세그윗은 블록 크기 제한을 변경할 필요 없이 거래량을 늘리고 거래 가변성 (Transaction malleability) 문제도 해결할 수 있기 때문에 강한 지지를 받았습니다.하지만 마이너 측은 확장성 문제에 대한 해결책에 대해서 추가적인 논의가 지속적으로 필요하며, 구체적인 데이터를 보여 달라는 입장을 취했습니다. (여기서부터 마이너와 Core 개발자간의 크랙이 발생하는 시점이라고 볼 수 있을 듯합니다.)

2016년

01/15 - 마이크 헌이 코어 개발에서 이탈

마이너들이 비트코인 가격이 떨어질 것을 우려하여 Bitcoin XT를 지지하지 않습니다. 이후 비트코인 XT를 주도적으로 개발한 마이크 헌은 "비트코인은 실패했다"는 내용의 블로그를 쓰고 코어 개발 커뮤니티를 탈퇴했습니다. 이후 XT와 유사하게 블록 크기 확장을 꾀하는 Bitcoin Classic (블록크기 제한을 2MB까지 상향) 과 Bitcoin Unlimited (블록 크기 제한을 유동적으로 변화시킴) 등이 주목받기 시작합니다. 

이때 부터 POW 방식에서 블록체인의 분사에 대한 문제점, 그리고 이를 극복하는 방법이 제한적이라는 것을 대부분의 참여자들이 인지하기 시작합니다. 연산력의 선택, 결국 채굴자의 선택이 비트코인 블록체인의 분사와 유지에 있어서 중요한 역활을 하게 된다는 것입니다. POW 알고리즘의 문제점인 집중화가 이슈가 되기 시작합니다. Core팀은 이러한 집중화를 막기 위해 지속적으로 블록크기 상향을 반대하기 시작합니다.

02/20 - Bitcoin Roundtable - 빅블록 1차 합의와 결렬

홍콩에서 개최된 Bitcoin Roundtable에 일부 코어 개발자, 마이너 및 비트코인 산업 관계자들이 참여하여 SegWit의 채용과 하드포크를 통해 블록 크기를 2MB까지 상향하는 로드맵에 합의했습니다. 그러나 다른 코어 개발자들이 이를 반대하여 2MB의 하드포크는 진행되지 않았습니다. 이에 채굴자들은 Segwit의 적용의 합의에도 불구하고 자신들의 제안인 빅블록이 진행되지 않는다고 하여 개발자와 채굴자의 관계가 악화되기 시작했습니다. 비트코인 에코시스템의 불안함은 이 시점부터 부각되기 시작했습니다.

09/21 - Bitcoin.com 채굴 풀이 BU (Bitcoin Unlimited) 클라이언트로 채굴에 성공 - 지저스의 등장

Bitcoin.com 풀에서 비트코인 언리미티드를 지지하는 블록이 처음으로 채굴되었습니다. 채굴된 블록사이즈는 1MB로 하드포크를 일으키는 것은 아니지만, 16MB까지 블록을 받아들일 수 있도록 설정되었습니다. 이 채굴풀의 오너가 비트코인 보급을 위해 활동하여 "비트코인 지저스"라고도 불렸던 Roger Ver입니다.

11/15 - SegWit 출시

SegWit이 구현된 Core 소프트가 출시되었습니다. 전체 95%의 해시 파워가 SegWit 지지를 표명함으로써 효력이 발생합니다. 그러나 Segwit 지지율은 25% 정도에 그쳐 Segwit이 활성화되지 않은 상태가 계속됩니다. 

2017년

01/29 - BU의 버그로 인해 보상을 받지 못하는 사건이 발생 - 준비되지 않은 체인 분사의 문제점 부각

Bitcoin.com은 BU 클라이언트를 사용하고 있었는데, 채굴한 블록이 블록 크기 제한을 23바이트 초과하여 체인에서 거부되었습니다. 이 블록은 블록 크기를 2MB까지 허용하는 BU 노드에 의해 공유되었고, 10-20분간 잘못된 체인을 사용하였습니다. 이전에서 Sticky gate라는 문제점이 부각되었습니다.

03/07 - Antpool이 BU 지지 블록을 채굴 시작 

최대의 해시 파워를 가진 채굴 풀이 BU 지지 블록을 채굴하기 시작했습니다. BU를 지지하는 해시 파워는 이로써 전체의 23 % 정도가 되었습니다. 채굴자들의 지지가 하드포크를 가능케할 수 있다는 점, 그리고 비트코인 블록체인 참여자간의 악력은 채굴자에게 기울어져 있음을 알 수 있는 시점입니다. 

03/12 - BU 지지율이 40%에 도달

BU 클라이언트가 전체 해시 파워의 39.6%에 달하여 1주 연속 30%를 초과함으로써 하드포크의 가능성이 높아졌습니다.

03/18 - 비트코인 거래소 19개소 공동 성명 발표

비트코인 거래소 19개사가 하드포크가 발생했을 때의 대처에 대한 공동 성명을 발표했습니다. Core 체인을 BTC로 취급하고 BU 체인을 BTU로 취급하며, BTU를 취급하기 위해 BU 커뮤니티에 리플레이 공격에 대한 대책 마련을 요구한다는 내용이었습니다. 

03/19 - User Activated Soft Fork (BIP148) 가 제시됨 - 지금의 세그윗을 가능케 한 시점

UASF가 제안되었습니다. UASF를 활성화한 노드는 08/01 이후 SegWit에 대응하지 않는 블록을 부정한 것으로 간주하고 블록체인에서 제외함으로써 마이너에게 SegWit을 활성화하도록 압박하겠다는 계획입니다. 포크(블록체인의 분사)가 발생할 가능성이 높아 SegWit 찬성파 중에서도 반대하는 사람이 있었습니다.

05/23 - SegWit + 2MB 방안에 80% 해시파워가 합의 - 뉴욕 합의

뉴욕에서 열린 Consensus 2017에서 마이너와 비트코인 사업자들이 SegWit + 2MB 안에 합의했다고 발표했습니다. 합의한 마이너의 해시파워는 80%, 사업자의 출신지는 21개국에 이릅니다. 이 합의에 Core 개발자는 참여하지 않았기에 비트코인 커뮤니티 전체의 합의라고는 볼 수 없으며, 오히려 Core 개발자를 쫓아내려는 움직임이 아닌가 하는 의견도 있습니다.

06/14 Bitmain이 UAHF 계획을 발표 - 비트코인캐시의 등장

Bitmain이 뉴욕 합의를 안전하게 진행하기 위해 UASF에 대한 대책으로 UAHF (User Activated Hard Fork) 를 계획하고 있다고 발표했습니다. 하드포크를 통해 UASF에 의한 재구성이 그 전까지의 거래 및 마이닝 보수를 취소해버릴 위험을 방지하겠다고 주장하였습니다. 블록 크기 제한은 하드포크 시점에서 2MB로 상향하고 단계적으로 상향하기로 계획하였으며, 리플레이 어택에 대한 대책도 구현화한다고 발표합니다. 우리가 아는 비트코인캐시의 등장입니다.


만약 채굴자와 개발자의 목적이 단순히 전송한도를 높이기 위함이였다면 수단보다는 목적을 함께하는 것이 가능할 수도 있지 않았을까요. 하지만 개발자는 기존의 비트코인의 블록사이즈를 유지하면서 블록의 효율화를 이끌어내고자 했고, 채굴자는 블록의 사이즈를 증가시키고자 했습니다. 서로의 목적은 같았지만, 수단은 달랐던 것이죠.     

목적을 위한 수단이 중요치 않았다면, 지금 현재 비트코인 캐시도 존재하지 않았을 것이고, 해시레이트의 변화로 인한 비트코인 네트워크의 전송지연에 대한 문제점도 존재하지 않았을 수 있을 것입니다. 하지만 이러한 합의는 이루어지지 않았습니다. 비트코인은 수많은 하드포크로 넝마가 되었고, 높은 전송비용으로 인해 전송지연에 대한 문제는 과거 보다 너무나도 심각해진 상황입니다. 더이상 비트코인 네트워크는 빠르지도, 싸지도 않습니다.(2017년 상반기의 평균전송비용 5달러 -> 현재 120달러 수준)

블록당 포함 할 수 있는 거래의 숫자를 늘리고, 이를 기반으로 전송비용도 낮추고 적용 시장의 확대를 이끌 수 있을 것으로 보이는 스케일링의 해결책중에 하나인 빅블록에서 비트코인의 개발자 Core팀과 채굴자들이 합의를 이루지 못했던 이유는 무엇이였을까요? 

빅블록의 문제점 - 1. 높아진 유지비용 -> 채굴풀의 집중화 

참고 : Reddit, 비트코인의 한도도달이후 전송비용 증가추이. 만약 이 시기에 비트코인이 1MB에서 2MB로 갔다면...?

참고 : CNN 비트코인의 스케일링 솔루션 별 비교. 

빅블록은 언뜻 보면 받아 들이지 않을 이유가 없어 보입니다. 더 높은 전송한도를 가능케하고, 더 낮은 전송비용, 그리고 더 효율적인 전송속도까지 가능케 하는 부분입니다. 다만 2015년의 Bitfury의 레포트를 참고한다면 긍정적인 효과와 대비되는 부정적인 부분이 존재한다는 것을 알 수 있습니다. 다음은 블록의 사이즈 증가 이후에 발생할 수 있는 문제점에 대한 설명입니다. 다만 해외 비트코인 포럼에서 아래와 같은 빅블록의 문제점들에 대한 논의가 여전히 진행되고 있다는 점에서 완전히 가정에 기반한 내용이라고 보기는 어렵습니다.

1. 현재 블록체인상에 데이터를 기입하기 위해(전송을 기입) 전송을 신청했습니다. 만약 운이 좋아서 2100번째 안에 들어가게 된다면 다음에 만들어지는 블록에 바로 저의 거래는 기입되게 됩니다. 운이 나쁘게 5000번째 줄을 서게 되는 경우를 가정해보겠습니다.

2. 한개의 블록에는 2100개의 거래가 포함 될 수 있음으로, 2개의 블록이 만들어지고 저의 거래는 3번째 블록에 포함되게 됩니다. 만약 블록의 사이즈가 2MB로 변화한다면 저의 거래가 블록체인 상에 포함되기에 앞서 1개의 블록이 만들어지고, 2번째 블록에 포함되게 됩니다. 한개의 블록이 만들어지는게 걸리는 시간은 평균적으로 10분이니,  30분이 아니라 20분만 기다려도 전송을 블록체인 상에 기입할 수 있게 됩니다. 그리고 한개의 블록이 포함할 수 있는 거래가 많아 짐에 따라 전송비용도 함께 감소하고 있습니다. 빠르고, 싸지면서 사용의 편의성이 확대되었습니다.

3. 사용자는 꾸준히 전송을 합니다. 그런데 이상하게 이전과는 다르게 저의 전송을 블록체인 상에 기입해주는 채굴자는 항상 Antpool입니다. 기존에 가끔 저의 전송을 기입하고 블록을 만들어주던 채굴자 풀들은 다 어디 갔는지 모르겠습니다. 



참고 : 이미 비트코인 블록체인의 크기는 158기가 이상

참고 : 블록사이즈의 증가는 저장용량의 증가만을 이끌지 않음. 

블록의 사이즈가 커지면서 노드의 집중화가 진행되어 채굴자의 집중화가 발생하였습니다. 비트코인 블록체인 상에서 블록데이터의 누적 크기는 이미 158기가를 넘어섰습니다. 블록의 사이즈가 2MB로 증가함에 따라 블록이 저장되는 속도는 과거 대비 2배로 증가합니다. 저장용량의 확대 뿐만아니라 RAM Usage도 2배로 증가했습니다. 노드를 유지하는데 들어가는 유지비용은 2배로 증가하였습니다. 

대량 투자를 진행한 채굴자가 아닌, 상대적으로 낮은 연산력을 보유한 채굴자들은 유지비용의 지속적인 상승으로 인해 채굴을 포기하게 됩니다. 여전히 사용자 입장에서 전송은 빠르고, 싸게 진행이 됩니다. 그런데 대형 채굴풀은 과연 이상이 없을까요? 당연히 있습니다. 다만 채굴자들은 Blockchain.info에 기록되지 않는 이익의 보전이 가능합니다. 바로 Accelerator 입니다.

참고 : 비트코인캐시로 결제하면 비트코인의 결제를 빠르게 완료해주는 중국 채굴풀 사이트. 

4. 갑자기 채굴자들이 전송당 비용 100달러 이하는 안받는 체리 픽킹을 하기 시작합니다. 그리고 전송이 지연되는 사람은 추가적으로 돈을 내면 전송을 빠르게 해준다고 이야기합니다.(이미 존재하고 있는 전송 부스터, BCH로 결제, Blockchain.info상의 데이터에는 카운팅 되지 않음) 더 이상 빠르지도, 싸지도 않습니다.

참고 : 이미 1MB짜리 블록도 전송량 기준으로 충분히 채워지지 않아 있음. 사이즈는 1MB인데 블록에 포함된 거래의 수는 975개.


참고 : 블록의 사이즈는 임계치에 머물러 있지만, 

참고 : 이전에 논의한 가짜거래가 넘치게 들어와있기 때문. 이미 1MB일 때도 이러한 가짜 거래들이 블록의 효율화를 방해하는 상황에 있음. 비트코인 전송에서 Input은 개당 146바이트, 아웃풋은 33바이트 정도의 크기. 인풋이 많다는 것은 블록의 비효율화를 만들어냄. 향후 이 문제는 슈노시그니쳐를 통해서 해결 될 것.(@morning 님의 글을 참고)

5. 블록의 사이즈는 2MB가 최대치지만, 어느센가 부터 2MB를 가득채우고 만들어지는 블록은 거의 없습니다. 정확히는 해당 블록 사이즈가 포함할 수 있는 전송량이 가득찬 상태에서 만들어지는 경우가 거의 없습니다. 이미 중국의 채굴자 카르텔 형성으로 비트코인 네트워크에 신규 채굴자도 들어오지 않는 상황에서 전송비용이 하락할 가능성은 없습니다. 가짜 거래를 통해 전송비용을 억지로 끌어올린 결과입니다. 

블록의 전송량이 가득채워지지 않았음에도 불구하고 전송비용의 상승으로, 과거와 비교했을때 블록 당 채굴자가 가져가는 전송비용의 합산금액은 큰 폭으로 늘어났습니다. 전송이 지속적으로 지연되는 사용자는 과거 대비 높은 비용을 울며 겨자먹기로 지불하고 전송을 진행합니다. 그런데 이 와중에 수많은 블록체인들이 등장합니다. 비트코인 블록체인 대비 더 빠르고, 더 싼 블록체인 입니다.

6. 사람들은 더 이상 비트코인 블록체인을 사용하지 않습니다. 그런데 채굴자는 연산력을 토대로 채굴하는 다른 암호화폐로 건너가서 똑같은 일을 하기 시작합니다. 비트코인의 단물이 다 빠져 버렸기 때문입니다. 얼마 지나지 않아 암호화폐의 에코시스템이 아닌, 채굴자 위주로 돌아가는 암호화폐 시장이 도래합니다.

결국 높아진 유지비용은 채굴자의 집중화 문제 뿐만 아니라 사용자에게도 부담이 되고, 장기적으로는 네트워크 에코시스템을 해칠 가능성이 있는 구조입니다. 가능성의 원인이 중앙화된 채굴자에게 있다는 점을 본다면, 블록체인의 중앙화에 반대하는 Core팀의 이유에 대해서 충분히 이해할 수 있다고 생각합니다. 다만 여기서 이야기 하는 유지 비용 측면에서의 문제는 기술이 개발되면서 몇몇 지역 개도국을 제외하고는 크게 부담되는 비용은 아닙니다. RAM이든 Storage 용량이든 지금은 너무나도 저렴하기 때문입니다.  

문제는 이미 해시레이트가 집중되었고, 집중된 국가가 중국이라는 점입니다. 현재 비트코인 블록체인 내에서 이야기하는 채굴자의 집중화가 국가단위의 방화벽이 없는 나라라면 문제는 없을 것입니다. 하지만 중국은 공산국가입니다. 수많은 SNS서비스를 금지하는 방법을 국가 단위로 보유하고 있습니다. 국가단위의 방화벽과 이미 집중된 해시레이트가 만들어내는 문제는 앞서 이야기한 유지비용과는 다르게 해결되기 어려운 고질적인 문제입니다.


빅블록의 문제점 - 2. 전파 속도의 문제 ->빅블록은 집중화를 가속화

블록의 크기가 커지면 필연적으로 발생하는 문제가 있습니다. 블록 전파속도의 문제입니다. 이러한 블록 전파속도가 어째서 집중화를 가속하는 지에 대해서 예를 들어서 설명해 보겠습니다.

비트코인 네트워크에는 수많은 노드와 채굴자가 존재합니다. 

1. 이중에 블록의 Nonce를 구해 블록체인 상에 새로운 블록을 확정시킨 A라는 채굴자가 있다고 가정해보겠습니다. 채굴자는 반감기에 해당하는 인센티브를 받고, 전송비용을 취합한 비트코인을 추가로 받게 됩니다.

2. 블록을 확정시킨(정확히는 6개의 블록이 추가로 해당 체인에 만들어져야 확정됩니다) A라는 채굴자는 자신이 구한 블록의 내용을 네트워크에 전파합니다. 전파하는 과정이 없다면 A를 제외한 모든 채굴자는 다음블록을 만들기 위한 이전블록의 해시값을 보유하지 못합니다. 이를 뿌려주는 과정이 있어야지만 모든 채굴자들은 A라는 채굴자가 만든 블록 다음에 이어지는 블록을 구할 기본적인 자격을 얻게 됩니다. 이전 블록의 내용을 전파받은 채굴자들은 이제서야 다음 블록을 만들 수 있게 되었습니다. (여기서 헤더값만을 저장하는 사람과 모든 내용을 저장하는 사람이 갈리게 되어 풀노드와 라이트노드로 갈리게 되지만 중요치 않습니다)

3. 그런데 블록의 사이즈가 기존과는 다른 2MB입니다. 기존 1MB대비 용량의 차이는 크지 않으나 약간이나마 블록 내용의 전파에 있어서 추가적인 Lagging이 발생하게 됩니다. 

여기서 잠깐 비트코인 해시율 분포를 확인해보면 대략 80% 내외가 중국에서 나오는 연산력입니다. 중국에서 만들어지는 블록의 숫자가 그만큼 많고, 중국에 존재하는 채굴자가 글로벌 채굴풀에 전파하는 내용이 그만큼 많다는 것입니다. 중국의 네트워크 특성이 블록 내용의 전파에서의 Lagging을 커다가 문제로 만들어버립니다.


참고 : 고려신용정보

4. 중국에는 만리방화벽(Great Firewall)이라는 중국내의 네트워크를 검열 시스템이 존재합니다.(@Coinkorea - https://steemit.com/coinkorea/@coinkorea/segwit2x 참고)  베이징, 상하이, 광저우 3개의 지역에서 모든 데이터를 라우팅하여 트래픽을 모니터링하는 방화벽입니다. 이러한 모니터링 방식은 중국 내에서 네트워크 속도는 빠르지만 중국을 제외한 네트워크와 연결될때 수 초가 지연되게 만듭니다. 공산주의 국가이니 만큼 데이터까지 검열을 하는 모습이죠. 얼마전에 뉴스에서 암호화폐와 관련된 거래소의 접속을 중국 정부에서 막는다는 이슈나, 몇몇 사이트의 접속을 차단하는 것을 본다면 이해가 쉬울듯합니다. 

이러한 방화벽의 이슈는 비트코인 네트워크에서도 커다란 영향을 주는 부분입니다. 블록의 사이즈가 커지면 커질수록 이러한 블록 내용의 전파에서의 속도 문제는 커질 수가 있기 때문입니다. 

비트코인 네트워크의 현재 연산력은 페타프롭스 기준으로 대략 2800만 수준입니다. 1페타플롭스는 1초에 1천조번 연산을 한다는 단위입니다. 이미 연산력의 대부분을 가져간 중국이 만리방화벽의 수혜를 받아 체인의 분사시점마다 가장 긴체인을 만들어 낸다면 어떻게 될까요. 블록의 Nonce를 구하는 시작 시점이 채굴자들 마다 짧으면 1~2초에서 길게는 수 초가량 차이가 나게 됩니다. 채굴자의 집중화는 가속화되면 가속화되었지 완화되기는 어려울 것입니다. 

참고 : 세그윗 이후 고아블록 감소. 만약 블록의 사이즈가 증가하였다면, 고아블록은 증가하였을 것. 블록 내용 전파의 지연은 고아블록의 비중을 증가시키게 됨.

수 초가량 늦게 이전블록의 Hash값을 받게 될 경우 Orphan 블록(고아블록)을 만들어 낼 가능성이 존재하기 때문입니다. 기껏 연산력을 투입해서 만들어낸 블록이 죽은 블록이 될 확률이 중국내와 외에서 차이가 존재한다는 것입니다. 

5. 결국 현재 중국에 집중되어있는 해시율을 본다면 블록사이즈의 증가는 지속적으로 채굴자 위주의 집중화를 야기한다고 볼 수 있습니다. 누가 중국 말고 다른 곳에 채굴장을 짓거나 투자할만한 이유가 있을까요. 동일한 금액을 투자해서 아웃풋이 다르다면 말입니다. 고아 블록에 대한 보상을 한다면 이러한 이슈는 제한적일수 있습니다. 다만 비트코인 네트워크에서는 이러한 고아블록에 대한 보상을 이더리움과는 다르게 하지 않고 있습니다.  

이러한 집중화는 새로운 채굴자가 투자할만한 유인(연산력을 분산할만한)을 낮추는 부분입니다. 그렇다면 2MB의 블록이 무조건적으로 기존의 기득권을 가지고 있는 채굴자에게 이득이 되는 구조일까요? 답은 지금은 아니다 입니다.

6. 위에서 이야기한 만리방화벽의 이슈는 중국내에서 외부로의 데이터 전파 뿐만아니라, 중국 외부에서 중국으로 들어오는 데이터 또한 딜레이 시키는 구조입니다. 비트코인 네트워크의 해시율 분포에서 중국이 50% 이하로 감소하지 않는다면 중국에 위치하고 있는 채굴자들은 확률적으로 빅블록의 수혜를 볼 수 있을 것입니다. 다만 앞으로 50% 이하로 감소한다면 어떻게 될까요. 과연 향후 중국의 연산력 비중이 비트코인 해시레이트의 50% 이하로 하락한 이후에도 중국의 채굴자들이 2MB의 블록을 지향할까요? 지금은 수혜를 보고있으나, 앞으로는 달라질 수도 있다는 것이죠. 얼마전에 중국 내부에 있는 몇몇 채굴자들이 중국 당국의 규제로 해외로 나오고 있는 것들을 본다면 말입니다. 

향후에 중국에 위치하고 있는 채굴자들이 중국외로 나오는 과정에 있어서 2017년 한 해를 이끌어온 빅블록의 흐름이 어떻게 바뀌어 나가는지에 대한 변화는 흥미로운 관전 포인트가 될 수 있을 듯 입니다. 


온체인의 솔루션 = 참여자들에게는 비현실적인 대안, 그렇다면 앞으로는

결국 비트코인의 스케일링 이슈를 온체인 상에서 해결하고자하는 논의는 현실적으로 불가능합니다. 이유는 위에서 이야기한 바와 같이 채굴자는 자신의 이익이 훼손되기를 원하지 않고(블록의 사이즈를 늘리기를 원하고 = 전송수수료의 상승과 추가적인 채굴자의 진입을 막아 현재의 지배적인 채굴자의 위치를 유지하는 등), 개발자는 반대로 이러한 채굴의 중앙화에 따른 블록체인의 중앙화를 막고자 하기 때문입니다. 물론 Core팀의 입장또한 정의롭다고 이야기하기는 쉽지 않습니다.

다만 적어도 Core팀의 선택은 사용자에게 피해를 주는 구조는 아닙니다. 정확히는 원래의 비트코인 네트워크의 목적하에서 발전을 추구하는 모습입니다. 세그윗을 통한 블록의 효율화와, State Channel을 이용하여 현재의 온체인 구조를 유지하면서 낮은 비용의 확장성을 목표로 하는 것, 그리고 중앙화된 채굴자들로 인해 높은 Fee가 강제되는 지금 상황을 다시금 탈중앙화 되게 만드려는 노력을 본다면 말입니다.

현재 상황에서 2X에 대한 추가적인 논의의 가능성은 높지 않습니다. 현재 진행되는 대부분의 스케일링 솔루션 방법들은 추가적인 한도의 증가를 위한 방법이라기 보다는 효율의 극대화로 나아가고 있습니다. 최근에 @morning님이 작성하신 슈노 시그니쳐가 대표적인 예일듯 합니다. 스팸거래의 의미가 사라질 수 있고, 낮아지는 전송비용을 기반으로 다시금 전방시장의 확대를 꿈꿔볼 수 있다고 생각합니다.

2017년은 비트코인 네트워크의 단점인 POW방식의 문제점이 부각된 한해였습니다. 2018년은 부각된 문제점들에 대해서 Core팀에서 다양한 솔루션을 내놓고, 문제점이 해결되는 한해가 되길 바래봅니다. 긴글 읽어 주셔서 감사합니다. 다음화에서는 이더리움의 온체인 솔루션에 대해서 이야기해볼 생각입니다. 비트코인 보다는 조금은 희망찬 이야기가 될 듯합니다. 감사합니다.


P.S : 이번 포스팅부터 보팅봇을 테스트 해 볼 계획입니다. 보시기 불편하실텐데 미리 죄송하다는 이야기를 드립니다. 


Sort:  

코어팀의 선택이 사용자에게 피해를 주는 구조가 아니라는 것에는 동의를 못하겠네요. 코어팀이 진작에 다른 플레이어들과 합의를 하고 커뮤니티를 분열시키지 않았으면, 이러한 이슈자체가 생기지 않았을 겁니다. 하지만 그들은 그들의 이론에 너무 몰입한 나머지 다른 사용자의 요구를 수용하지 않았죠. 어떤 형태이든 간에 권력의 독점은 폐해를 낳고 결국에는 사용자에게 피해로 돌아오는 법입니다. 코어팀이 일으킨 문제중 가장 큰 문제는 스몰블락을 고집함으로써 비트코인 관련 비즈니스들이 꽂을 피울려고 하다가 죽어버린 겁니다. 스케일링 이슈 문제로 몇년을 허비하는 동안 수많은 비즈니스들이 고사당하고, 준비하던 프로젝트들이 대부분 취소 된것은 대체 누가 책임을 져야 할까요? 그리고 사용자들도 높은 전송피와 느린 컨펌으로 많은 불편을 겪었는데,과연 코어팀은 이 문제에 책임이 없다고 할 수 있을까요?

안녕하세요 ncrider님! 저도 위에 이야기놨듯이 코어팀의 방향성도 정의롭다고 생각하지는 않습니다. 블록스트림과 연계되어있는 연결고리부터 시작해서, 테더이슈까지 엮여있는 모습을 본다면요.

다만 제가 위에서 이야기한 피해를 주지 않았다라는 것은 네트워크의 발전에 있어서 기존의 구조(2009년이후 유지해온 비트코인의 구조)인 1mb의 블록사이즈를 "아직까지는" 유지한다는 것입니다.(잠재적으로 발생할수 있는 피해를 막았다는 의미입니다) 그리고 블록의 크기가 2mb를 가고 4mb를 간다고 해서 스케일링 문제점이 장기적으로 해결이 될지는 모르겠습니다. 이론상으로 10mb를 가더라도 일간 전송한도는 300만건에 불과하니까요. 전송한도가 문제가 된다고 해서 당장에 입증되지 않은 블록의 사이즈 증가를 진행할 경우에는 말그대로 언발의 오줌누기가 아닐까요.

블록의 크기의 증가에 대한 합의는 저 역시 필요하다고 생각하지만 온체인의 솔루션은 마지막 카드이지 않나 생각합니다. 합의에 도달하는 과정도 어렵고, 하드포크를 진행하는 특성상 돌이키기는 어려운 부분이기 때문에 그렇습니다. 향후 지속적으로 sw적인 업그레이드가 진행되는 동안 블록의 크기에 대한 안정성에 대한 객관적인 증거가 쌓여야 하지 않을까요? BU이 등장하던 시기에 발생하던 수 많은 문제점은 이러한 부분을 부각시키지 않았나 싶네요. 결국 순서의 문제입니다. 쉬운것 먼저(쉽지는 않을수도 있지만)해결하고 큰 문제는 증거가 쌓이고
난 이후에 해결하고자하는 순서의 문제말입니다.

또한 코어팀에서 진행한 SW 업데이트인 세그윗을 이야기하면... 2017년 8월에 Activation된 세그윗의 현재 적용율이 10% 내외 수준이라는 점을 볼 때, 개발자 주도로 개발부터 도입에 이르기까지 진행되는 프로젝트는 비트코인 네트워크 내에서 아무것도 없다라는 것, 오직 이전의 BIP와 같이 합리적인 제시만이 가능하다는 점을 알수 있지 않나 합니다. 개발자들은 코어의 SW를 업그레이드 할 뿐, 받아들이는 것은 또 다시 노드의 몫이니까요.

두 팀간에 원활한 합의가 되지 않는 상황에서 체인 분리가 정답입니다. 각자 생각한 의도대로 자기 체인에 집중하면 됩니다. 다만 기존의 인프라를 한쪽에서 그대로 다 물려받고 나머지 한쪽은 사실상 맨땅에서 시작하는게 차이가 있습니다. 이점에서 맨땅에서 시작하는 비트코인 캐시가 용감하다고 봅니다. 캐시는 유산을 다 받은 형님 놀부네에 쫒겨난 흥부인 셈이죠.

그렇죠. 하드포크는 용감한 자의 것... 아쉽게도 작년에는 무분별한 하드포크가 이슈가 되긴했지만요.

전 사실 지금의 비트코인, 그리고 비트코인 캐시중에서 어디가 오리지날인지는 잘모르겠습니다... 굳이 이것을 가르는게 기축의 지위를 나누는 것 이상의 의미가 있는지도 모르겠구요.(가격적인 면에서의 이야기를 하고자하는 것은 아니에요, 기술적인 부분에 대한 이야기입니다)

비트코인캐시는 빅블록의 시도의 시범적인 케이스인듯하고. 다만 블록체인 시장이 전체적으로 시범적인 케이스에 불과하지만 가치가 있듯이, 비트코인 캐시의 가치도 분명히 있다고 봅니다. 플랫폼 암호화폐의 시범적인 케이스인 EOS가 가치가 있듯이 말이죠. 다만 EOS가 DPOS라는 기술을 연구실에 가져와 테스트 하는 것과 같이, BCH도 블록체인을 바꿔놓을 수 있는 새로운 기술에 대한 도입을 고민해야하지 않을까요...?

흥부는 흥부인데.... 까치의 발을 고쳐주고 받은 박씨에서 뭐가 나올지는 모르겠습니다 ^^.... 박씨가 자라날때까지 새로운 시도와 도전의 결과를 만들어 내야할텐데요.

안녕하세요. “이미 1MB짜리 블록도 전송량 기준으로 충분히 채워지지 않는다.” 라고 하셨는데 거래 수가 2100개로 정해져 있는게 아닙니다. 포함된 거래의 사이즈가 중요하며 사이즈는 이미 1000 KB 이상으로 보입니다.
지금 하는 말씀은 작은 수량의 비트코인은 사용해서는 안된다. 라고 하는 것과 동일한 이야기입니다.
물론 저 많은 input 을 의도적으로 unspent output 으로 만들어서 사용했다면 이야기가 달라지겠지만요. 거래의 의도가 가짜라는 것을 판별하기는 어려울텐데 이전 가짜 거래 글도 찾아서 읽어보도록 하겠습니다. 그리고 가짜 거래라고 하여도 사이즈가 큰 거래는 더 많은 수수료를 내게 되어 있습니다.

그쵸. 2100개라함은 input output 1:1 매칭을 기반으로 1mb의 블록에서 헤더값을 제외했을때 들어갈 수 있는 거래의 총수 정도입니다. 비트코인의 실질 tps 산정방식의 기준이라고 보시면될듯하구요. (이론 블록한도는 1:1 매칭기준 2배정도 됩니다)

제가 말하는게 작은 수량의 비트코인 결제를 쓰면 안된다는게 아닙니다. 2달러짜리 거래(비트 수량 동일)가 80달러 100달러 이상의 전송비용을 지불하는 경우가 과거 2017년 하반기부터 몇 만개 이상의 블록에서 규칙적으로 나왔다는게 문제점이라는 생각입니다. 물론 개인적으로는 누군가가 고의성으로 넣고 있는 스팸거래라고 생각을하고 있구요. 낮은 금액인데도 불구하고 높은 비용을 기꺼이 지불하면서 낮은 전송비용을 지불하는 거래의 확정을 한없이 미뤄버리는 일을 만들었기 때문입니다. 이게 작년 하반기에 발생한 전송 지연 이슈의 원인입니다. 비트코인을 거래소 기본 수수료로 보내면 4일 5일씩 미뤄지는 일이었죠. (현재는 아무리 낮은 전송비용을 넣더라도 전송이 되는 상황입니다. 단 1개의 거래를 넣은 블록도 만들어지고 있으니까요) 이러한 수단에 있어서의 목적에 대한 고민은 다들 다른상황이니 "누군가"가 주체인지 확정짓기는 어려우나 문제점이라는 인식은 동일하다고 생각합니다 ^^

그리고 블록의 사이즈가 이미 1mb이상인것은 세그윗이슈이나..아직 적용율이 10% 소폭 상회수준이라 감안하진 않았습니다. 1.5mb짜리 블록이 가끔 보이는것은 세그윗의 도입에 따른 이유겠지요. 위의 2100개 거래에 대한 이야기는 세그윗 감안 이전의 이야기입니다.

완순님! 항상 양질의 포스팅 감사합니다. 덕분에 공부 열심히 하고 있습니다^^

도움이 되신다니 다행입니다 ^^ 자주 올려야하는데 본업이...ㅠㅜ...

본업은 소중합니다! ㅎㅎ

아주 기분좋게 봤습니다. 틈틈이 지난 글도 읽고, 앞으로도 기대하겠습니다...

감사합니다 (__ 꾸벅 모닝님의 글을 아주 열심히 보고 있는 독자로... 방문해주셔서 감사할 따름입니다.

흥미롭게 잘 읽었습니다.
이더리움에 대한 다음 글도 기대됩니다.

감사합니다 (__ 꾸벅 이더리움은 비트코인 보다는 좀더 희망찬 이야기가 되지 않을까 싶습니다.

풀봇 팔로우 리스팀 했습니다. 보팅봇 사용 여부 보다는 글의 퀄리티가 중요하다고 생각합니다.

보통 포스팅을 올리고 보시기 전에 수정을 많이하는 편인데... 오타가 많은걸 보시게 해서 죄송합니다....ㅠㅜ

와.. 정말 양질의 글이네요.
이런 좋은 글 써주셔서 감사합니다.
다른 코인엔 관심이 좀 있는데 정작 비트코인에 대해선 공부할
기회가 적었는데 덕분에 많은 지식 얻고 갑니다.
팔로우하고 앞으로 자주 찾아올게요!
다음에 이더리움 편이라고 들었는데 기대하겠습니다 ㅎㅎ

넵 감사합니다, 다음편은 좀더 쉽게 이야기 하는 것을 목표로 하고있습니다ㅎ
킬루님의 뉴스레터도 열심히 구독중입니다, 바쁘실텐데 항상 좋은 정리 감사드립니다.^^

You got a 7.41% upvote from @minnowvotes courtesy of @wansoon16!

This post has received a 44.13% upvote from @aksdwi thanks to: @wansoon16.

3월의 시작을 아름답게 보내세요^^
그리고 진정한 스팀KR 에어드롭!
[골든티켓x짱짱맨x워니프레임] 9차 옴팡이 이모티콘 증정 천명 이벤트! 그 첫번째 250명 !
https://steemkr.com/kr/@goldenticket/x-x-9-250

비트코인의 확장성 문제 생각보다 까다로운것 같네요

Coin Marketplace

STEEM 0.22
TRX 0.02
BTC 11397.75
ETH 389.18
SBD 1.04