본문으로 건너뛰기

제18장 – 뉴욕 합의

한글

책 블록 크기 전쟁의 제18장을 아래에 게재합니다. 전체 책은 Amazon에서 구할 수 있습니다. 참고로 종이책 판매 수익의 50%는 분쟁, 전염병, 재난 또는 의료 서비스 배제로 영향을 받는 사람들에게 의료 지원을 제공하는 자선 단체인 Médecins Sans Frontières에 기부됩니다.*

* 참고: i. 저자의 사망 시점과 ii. 2031년 1월 중 더 이른 시점까지의 판매에 적용됩니다.

2017년 5월 22일에 Digital Currency Group (DCG)의 배리 실버트가 주선한 회의가 뉴욕에서 열렸으며 갈등 해결을 목표로 했습니다. 지한 우가 참석했습니다. 이 회의는 또 하나의 합의로 이어졌습니다. 뉴욕 합의(NYA)라고 불리는 다음 문서가 발표되었습니다. 내용은 다음과 같았습니다:

저희는 비트코인 프로토콜에 대한 다음과 같은 병렬 업그레이드를 즉시 지원하기로 합의하며, 이는 원래의 Segwit2Mb 제안에 기초하여 동시에 배포될 것입니다:

비트 4에서 신호를 보내 80% 임계값으로 세그윗을 활성화합니다

6개월 이내에 2 MB 하드포크를 활성화합니다

저희는 또한 비트코인 커뮤니티에서의 신호 방식을 개선하기 위한 기술적 메커니즘의 연구와 개발, 그리고 비트코인 용량을 늘리는 안전한 솔루션의 설계, 통합 및 배포 과정에서 생태계 참여자들과 더욱 긴밀히 협력하기 위해 소통 도구를 마련하는 데에도 전념합니다.

모든 기업, 채굴자, 개발자, 사용자가 저희와 함께 비트코인의 미래를 준비하도록 환영합니다.

서명한 기업들의 집단은 비트코인 생태계의 결정적 다수를 대표합니다. 5월 25일 기준으로 이 집단은 다음을 대표합니다:

22개 국가에 위치한 58개 기업

해시 파워의 83.28%

월간 온체인 거래량 51억 USD

2,050만 개 비트코인 서명 장치

별도로, 5월 24일 기준으로 다음 기업들은 업그레이드 소프트웨어를 테스트하고 지원하기 위한 기술 및 엔지니어링 지원을 제공하고, 기업들의 업그레이드 준비를 돕기로 약속했습니다:

Abra | BitClub Network | Bitcoin.com | BitFury | BitGo | Bitmain | BitPay | Blockchain | Bloq | BTCC | Circle | Ledger | RSK Labs | Xapo

귀하의 팀에서 기술 및 엔지니어링 지원을 제공하고자 하시면 알려주시기 바라며, 위 목록에 포함해 드리겠습니다.

이 합의는 2017년 3월에 비트코인 개발자이자 연구자인 세르히오 레르너가 내놓은 이전 제안에 기초했습니다. 아이디어는 세그윗과 2 MB로의 비증인 하드포크 블록 크기 증가를 모두 실행하는 것이었습니다. 배리에 가까운 사람들에게 들은 바로는 이는 타협안이라고 했으며, 일부는 세그윗을 원하고 다른 일부는 하드포크를 원했기 때문에 이제 모두가 원하는 것을 얻을 수 있다는 것이었습니다. 배리는 네트워크가 교착 상태에 이르렀고 앞으로 나아가기 위해 무언가를 해야 한다고 우려했다고 저에게 설명했습니다. 합의문 자체는 DCG 직원인 멜템 데미로르스가 작성했다고 전해졌습니다. 이 문서는 한 달 전의 Litecoin 합의와 마찬가지로 UASF의 잠재적 위협을 다루는 방법으로서 지한 우에게 체면을 세울 기회를 주었습니다.

합의 서명자의 수와 중요성은 매우 인상적이었습니다. 총 58명의 서명자가 있었으며, 여기에는 개빈 안드리센, 로저 버의 Bitcoin.com, 지한 우의 Bitmain, 브라이언 암스트롱의 Coinbase가 포함되었습니다. 비록 많은 수(서명자 중 33)가 DCG 포트폴리오 기업이었지만, 이 집단 외부에서도 많은 거래소와 채굴 풀들로부터 폭넓은 지지가 있었습니다. 이에 따라 이 분야의 많은 관찰자들은 블록 크기 문제가 이제 마침내 해결되었고 합의의 성공적인 이행이 거의 불가피하다고 결론지었습니다. 이 합의는 그들이 약해진 시기에 큰 블록 지지자들에게는 커다란 승리이자 성과였습니다. 이는 갈등의 중대한 전환점처럼 보였습니다. 큰 블록 지지자들은 거의 패배 직전까지 갔지만, 이제 갑자기 다시 우세해졌습니다.

그러나 큰 블록 지지자들은 합의에 완전히 만족하지는 않았습니다. 결국 합의에는 그들이 그다지 원하지 않았던 세그윗이 포함되어 있었습니다. 하지만 그들이 원했던 일, 즉 Bitcoin Core를 해고하는 일을 하는 것처럼 보였습니다. 로저 버는 이런 방식으로 자신의 지지를 정당화했습니다. 그는 합의 자체는 마음에 들지 않지만, 적어도 Bitcoin Core를 없앨 수 있을 것이라고 주장했습니다. 일부 큰 블록 지지자들은 합의를 의심스러워하는 듯했고, 큰 블록 지지자 진영 중에서도 더욱 극단적인 쪽에 있는 사람들은 이에 반대했습니다. 합의는 하드포크보다 먼저 세그윗을 활성화하기로 약속했으며, 하드포크는 6개월 이내에 활성화된다고 했습니다. 합의는 하드포크와 소프트포크가 동시에 배포될 것이라고 했지만, 소프트포크가 먼저 활성화된다고 했습니다. 일부 큰 블록 지지자들은 첫 번째 단계가 실행된 뒤 두 번째 단계를 실행하기 전에 서명자들이 합의에서 이탈할 수 있다고 우려했습니다.

작은 블록 지지자들에 관한 한, 뉴욕에는 그들을 대표하는 사람이 없었고 그들의 견해는 합의에 전혀 반영되지 않았습니다. 이중적 의미나 상충되는 진술이 담긴 문장은 없었으며, 전적으로 큰 블록 지지자 측이 작성한 것처럼 보였습니다. 특히 합의는 비트코인 사용자가 프로토콜을 통제한다는 생각이나 프로토콜 규칙을 바꾸기 전에 사용자들의 지지가 필요하다는 생각을 전혀 언급하지 않았습니다. NYA는 사용자가 의견을 내야 한다는 생각에 대해 형식적인 언급조차 하지 않았습니다. 이는 이 분야의 대기업들이 하향식으로 사용자들에게 규칙을 부과하는 것으로 제시되었습니다. 비트코인이 그런 방식으로 운영된다면 통화의 핵심 가치 제안을 훼손할 것입니다. NYA 서명자들은 포크를 활성화하기 전에 사용자들에게 설명하고 설득하는 일을 중요하게 여기는 것처럼 보이지 않았습니다. 대신 이는 위협이나 최후통첩처럼 느껴졌습니다.

이는 비트코인의 핵심 가치 제안을 훼손했을 뿐만 아니라 전술상으로도 나빴습니다. 비트코인 사용자들은 스스로 통제하고 있다고 느끼기를 원했고 무엇을 해야 하는지 지시받는 것을 좋아하지 않았습니다. 따라서 NYA는 Bitcoin XT, Bitcoin Classic 및 Bitcoin Unlimited의 반복처럼 느껴졌습니다. 이번에는 훨씬 더 많은 업계 지지를 받았을 뿐 같은 실수를 다시 저질렀습니다. 그러나 주목할 점은 업계에서 매우 중요하고 성장 중인 여러 이름이 NYA의 서명자가 아니었다는 것입니다. 부재가 가장 두드러진 곳은 당시 경제적으로 가장 중요한 기업이었을 Bitfinex였습니다. Local Bitcoins(당시 가장 큰 P2P 거래소), Poloniex, BitMEX와 채굴 풀 Slush도 눈에 띄게 빠져 있었습니다.

작은 블록 지지자들이 합의를 파고들기 가장 쉬웠던 부분은 비트 4에서 신호를 보내 80퍼센트 임계값으로 세그윗을 활성화한다는 대목이었습니다. 이는 거의 말이 되지 않았는데, 세그윗은 비트 4가 아니라 비트 1을 사용해 활성화되기 때문입니다. 채굴자들은 비트 4를 사용해 표시할 수 있었지만, 이는 실제로 세그윗을 활성화하지 못했습니다. 회의 참석자 중 한 사람과의 대화에 따르면, 지한은 이 점을 고집했다고 하며, 아마도 수개월 동안 비트 1을 사용해 세그윗 지지를 표시하라는 압력을 받았고 작은 블록 지지자들의 요구에 굴복하고 싶지 않았기 때문일 것입니다. 그러나 이 비트를 사용해 세그윗을 활성화하는 것은 불가능했고, 따라서 정확히 무슨 일이 일어날지는 분명하지 않았습니다.

NYA가 발표된 직후인 2017년 5월 22일에 비트코인과 채굴 소프트웨어 개발자인 제임스 힐러드는 이 비트 4 딜레마에 대한 해결책을 제안했으며, 이를 BIP 91이라고 불렀습니다:

배리 실버트 제안의 두 번째 부분과 독립적으로 첫 번째 부분을 달성하는 구현을 제안하고 싶습니다:

“비트 4에서 신호를 보내 80% 임계값으로 세그윗을 활성화합니다”

여기서 목표는 비트 4를 사용해 80% 임계값으로 세그윗을 신속히 활성화할 수 있게 하면서도 하위 호환성을 최대화하고 체인 분할 위험과 네트워크 혼란을 최소화하는 것입니다.

세그윗을 즉시 그리고 어떤 하드포크와도 별도로 활성화하면 거의 확실히 광범위한 문제를 일으킬 서둘러 결합된 세그윗+하드포크의 위험 없이 신속히 확장할 수 있습니다.

제임스는 세그윗이 두 단계로 활성화될 것을 제안했으며, 두 개의 소프트포크를 거치는 방식이었습니다. NYA에서 언급된 80퍼센트 채굴자 신호 임계값을 사용해 첫 번째 소프트포크가 활성화되면 비트 1을 통한 세그윗 신호가 의무화될 것입니다. 그러면 마지막 소프트포크인 세그윗 자체가 활성화될 것입니다. 이는 또한 BIP 148(UASF)과도 호환되었는데, 이 역시 비트 1을 통한 세그윗 신호를 의무화했기 때문입니다. 실제로 BIP 91은 제임스 힐러드와 BIP 148의 저자인 Shaolinfry가 공동으로 작성했습니다. 결국 Segsignal이라고 불리는 클라이언트가 출시되었으며, 이는 BIP 91을 지원하도록 수정된 Bitcoin Core였습니다. BIP 91은 꽤 공격적이고 신속한 업그레이드 메커니즘이었으며, 336개 블록 신호 기간 중 269개 블록이 지지를 표시하면 활성화되는 80퍼센트 임계값 방식이었습니다.

NYA 전체를 구현하는 클라이언트에 관해서는 곧 이것이 BTC1이라고 불릴 것이며 수석 개발자는 제프 가르직이 될 것이라는 사실이 알려졌습니다. 그는 2010년에 처음 부과된 지 몇 주 만에 블록 크기 제한을 늘리자고 사토시에게 제안했던 사람이었습니다. 제프는 기술적 관점에서 비트 4를 통한 활성화는 말이 되지 않는다고 주장하면서 BTC1을 BIP 91과 호환되게 만들고 비트 1을 통해 세그윗을 활성화해 달라는 요청을 받았습니다. 처음에 제프는 거부했으며, 그의 논거는 다소 혼란스러워 보였습니다.

5월 29일에 BitGo의 최고경영자인 마이크 벨시가 보낸 이메일이 유출되었습니다. 여기에는 NYA를 위한 계획과 일정이 담겨 있었습니다. BitGo가 업그레이드에 대한 기술 지원을 제공하는 기업 중 하나로 NYA에 기재되어 있었지만, 정작 합의 자체에는 서명하지 않았다는 점에 유의해야 합니다. 합의문은 맨 아래에 다음과 같이 명시하기까지 했습니다. 참고: BitGo는 처음 발표된 목록에 잘못 포함되었습니다. 이후 수정되었습니다. 일부 BitGo 직원과의 대화에서 이해한 바로는 그들은 회사를 목록에서 빼달라고 요청했으며, 수탁 및 결제 처리 업체는 오히려 중립을 지키며 분할의 양쪽을 모두 지원해야 한다고 생각했다고 합니다. 어쨌든 유출된 이메일에는 소프트웨어의 알파 출시, 테스트넷의 개시, 그리고 7월 21일까지 신호 개시를 포함한 제안된 일정이 담겨 있었습니다.

비트코인 커뮤니티의 많은 사람들은 NYA 클라이언트에 대한 개발과 계획이 비밀리에 이루어지고 공개 메일링 리스트에서 이루어지지 않는다는 사실을 알고 격분했습니다. 비트코인은 공개적인 검증을 받는 개방형 시스템이어야 했습니다. 합의 변경의 도입을 주도하는 비밀 메일링 리스트는 비트코인에 정면으로 어긋나는 것으로 여겨졌습니다. 그러나 비공개로 진행된 이유는 분명했습니다. 공개적으로 진행했다면 작은 블록 지지자들이 자신들의 작업에서 허점을 찾아내 제안이 약해 보였을 것이기 때문입니다. 세그윗은 극도로 복잡했고 대안 집단은 이에 대한 이해가 매우 제한적인 채로 도입을 시도하고 있었습니다. 돌이켜보면 과정의 상당 부분을 비공개로 진행한 것은 실수였으며, 검증 부족이 더 많은 오류를 초래한 것으로 보였습니다.

2017년 5월 말에 비트 4를 통한 호환되지 않는 세그윗 활성화로 인해 제프가 받은 압박은 막대했습니다. 작은 블록 지지자들과 Dragons’ Den 참가자들은 이것이 BTC1 클라이언트의 중대한 결함임을 깨달았으며, 제프를 설득해 이 변경을 적용하고 BIP 91을 채택하게 하면 세그윗이 마침내 비트코인에서 활성화될 수 있다고 보았습니다. 활성화가 일어난 뒤에는 작은 블록 지지자들이 NYA의 두 번째 부분인 하드포크를 저지하는 작업에 나설 수 있었습니다. 소셜 미디어는 BIP 91 채택을 거부함으로써 제프가 얼마나 혼란을 일으키고 비협조적인지에 대한 논평으로 가득했고, 그의 받은 편지함도 기술 커뮤니티 전반에서 온 비슷한 요구와 비난으로 가득했을 것입니다.

마침내 2017년 6월 5일에 제프는 압박에 굴복해 자신의 BTC1 클라이언트에 BIP 91을 포함시켰습니다. 작은 블록 지지자들은 이제 원하는 바를 이루었습니다. NYA 클라이언트는 이제 UASF를 구현했습니다. Dragons’ Den 내부에서는 흥분된 축하가 있었습니다.

이 시점에 하드포크를 위한 활성화 논리도 바뀌었습니다. BTC1 클라이언트의 하드포크는 이제 6개월 뒤가 아니라 세그윗이 활성화된 지(실제로 세그윗이 활성화된다면) 3개월 뒤에 활성화되도록 예정되어 있다고 했습니다. 그러나 코드가 활성화 논리를 어떻게 구현했는지 이해할 수 없었고, 하드포크 활성화 시점의 세부 사항에 대해 상당한 혼란이 있었습니다. 이 3개월 기간은 NYA에서 언급되고 초기 BTC1 클라이언트 버전에서 구현되었던 6개월 기간의 절반이었습니다. 일부 BTC1 내부자들과의 대화에서 파악한 바로는 변경 이유는 세그윗이 활성화된 뒤 사람들이 하드포크에서 발을 뺄 시간을 줄여 하드포크가 확실히 일어나도록 돕기 위한 것이었다고 합니다. 저에게는 이것이 잘못된 접근처럼 보였는데, 하드포크 지지자들이 사용자들을 설득해 업그레이드하도록 할 기간이 더 짧아졌기(6개월 대신 3개월) 때문에 실제로는 하드포크 단계를 실행하기 더 어렵게 만들 수 있었기 때문입니다.

BIP 91을 구현한 뒤에도 BTC1 클라이언트는 버그로 가득한 것처럼 보였습니다. 제프는 세그윗을 이해하지 못했을 수 있으며 세그윗의 피어 투 피어 계층에서 일부 실수를 저질렀고, 이를 고치기 위해 추가적인 도움이 필요했습니다. 또한 놀랍게도 6월 14일의 한 이메일에서 지적된 대로 BTC1 클라이언트는 하드포크 블록 크기 제한 증가를 구현조차 하지 않았습니다. 클라이언트는 400만 유닛 가중치 상한을 유지했으며, 이는 하드포크를 막고 블록 크기 제한이 절대 늘어나지 않도록 했을 것입니다. 제프는 새로운 세그윗 제한을 이해하지 못했던 것으로 보입니다. 기억하시겠지만 그는 세그윗에 두 개의 제한이 있다고 생각했습니다. BTC1의 첫 버전이 출시된 뒤 이 점이 지적된 후에야 실제로 하드포크를 구현했습니다. 이해하지 못하는 것을 두 배로 늘리는 일이 NYA 지지자들에게는 너무 어렵다는 것이 입증되고 있었습니다.

제프는 또한 BTC1 클라이언트에 리플레이 보호를 추가하라는 상당한 압박을 받았지만 이에 반대했습니다. 아이디어는 BTC1이 새로운 코인을 만드는 것이 아니라 업그레이드 이후에는 하나의 코인만 존재하고 원래 규칙 체인이 새 체인에 대한 압도적 지지로 인해 어떻게든 소멸한다는 것이었습니다. 2016년의 Ethereum 분할은 이제 아득한 과거가 되었고 대부분의 큰 블록 지지자들은 이를 잊은 듯했습니다. 따라서 NYA 지지자들의 생각에는 리플레이 보호가 필요하지 않았습니다. 그러나 이는 수년간 계속 맴돌았던 같은 논쟁의 반복이었습니다. 일부 사람들은 원래 규칙 체인이 살아남을 수 있으므로 리플레이 보호가 필요하다고 생각했습니다. 6월 14일에 NYA의 기초가 된 제안을 내놓은 세르히오 레르너는 리플레이 보호에 힘을 실었습니다. 이 시점에 제프는 모든 측으로부터 엄청난 압박을 받고 있었습니다:

비트코인에 대해 서로 다른 두 가지 비전을 가진 두 집단이 있습니다. 이 중 어느 비전도 “틀린” 것이 아닙니다. 한 집단은 탈중앙화, 정부의 부재, 검열 저항성, 익명성과 같은 가치를 더 중시합니다. 이 집단은 비트코인이 20-30년 안에 우리의 세상을 바꿀 것이라고 생각합니다. 이 목표에 도달하기 위해서는 그 가치들을 지키는 것이 지극히 중요합니다. 서두를 필요가 없습니다. 다른 집단은 향후 5년 안에 10억 명의 사용자에게 도달하거나, 지금 당장 정치적 합의가 필요하더라도 오늘날 실제로 은행 계좌가 없는 사용자들에게 봉사하는 것과 같은 가치를 더 중시합니다. 두 비전 모두 장점이 있습니다. 그러나 두 비전은 양립할 수 없습니다. 리플레이 보호는 이러한 “비트코인 지지자들” 각자에게 자신의 비전을 온전히 추진할 기회를 줍니다. 두 비전은 공존할 수 있습니다.(sic)

2017년 6월 16일에 채굴자들은 또 한 차례 원탁 회의를 열었습니다. 거의 모든 주요 채굴 풀들이 참석했습니다. 회의에서 채굴자들은 NYA를 지지하기로 합의했습니다.

BTC1의 첫 번째 릴리스에는 와이프아웃 보호가 없었으며, 이 책의 앞부분에서 설명했듯이 와이프아웃 보호 없이 논쟁적인 하드포크를 추진하는 것은 고의로 두 손을 등 뒤로 묶은 채 전쟁에 나가는 것과 같습니다. 2017년 5월까지, 하드포크를 위해 거의 2년 동안 싸운 끝에 우지한은 마침내 이 사실을 깨닫고 와이프아웃 보호를 요구했습니다. 우지한은 이미 2017년 5월 12일에 와이프아웃 보호를 지지했습니다:

이것은 4년 동안 논쟁되어 온 매우 중요한 합의 규칙 변경이므로, 포크 높이에서, 그리고 그 높이에서만, 또 다른 합의 규칙을 추가할 수 있습니다. 블록의 크기는 반드시 1,000,000 Byte보다 커야 합니다. 이것은 재구성을 막는 매우 단순하고 직접적인 방법입니다.

제프에 대한 압박이 거세지고, NYA 하드포크가 추진자들이 당초 생각했던 것보다 더 논쟁적일 수 있다는 점이 드러나자, 그는 와이프아웃 보호를 추가하기로 동의했습니다. 우지한은 제프에게 이 기능을 BTC1에 넣도록 권유했고, 6월 20일에 제프는 이에 따랐습니다. 하드포크 이후에 블록들이 단순히 1 MB보다 커지는 것을 허용하는 것이 아니라, BTC1은 이제 첫 번째 블록이 1 MB보다 커야 한다고 요구했으며, 이는 기본적인 형태의 와이프아웃 보호였습니다.

Bitmain과 BU의 요청으로 와이프아웃 방지 기능을 구현합니다. 저 자신과 다른 WG 구성원들은 더 예측 가능한 네트워크 업그레이드를 만든다는 더 넓은 취지에 따라 동의했습니다.

전통적인 하드포크 순서는 네트워크 포크가 하드포크 규칙 변경 *그때에 또는 그 이후에* 발생한다는 것이며, 이는 채굴자가 1M보다 큰 첫 번째 블록을 만들 때 일어납니다. 규칙 변경이 발생하는 블록에서 하드포크 블록이 *반드시* 1M보다 크도록 이를 강화하는 것이 제안됩니다. 이는 포크가 정확히 블록 X에서 발생하도록 보장함으로써 해당 사건을 더 예측 가능하게 만듭니다.

이 기능은 제대로 구현되지 못했으며, 2017년 7월 11일에 BTC1 테스트넷이 둘로 갈라졌습니다. 누군가가 테스트넷 블록들을 예상보다 50배 빠르게 채굴하여 하드포크가 조기에 활성화된 것으로 보였습니다. 그 뒤 ‘1 MB 초과’ 규칙이 구현된 방식의 버그 때문에, 첫 번째 블록이 1 MB를 초과해야 한다고 요구했던 신버전 BTC1들이 구버전 BTC1 클라이언트와 다른 체인으로 갈라졌습니다. 이는 트랜잭션이 부족하여 첫 번째 블록이 1 MB를 초과하지 못했기 때문이었습니다. 작은 블록 지지자들은 이 버그와 분열을 다시 이용하여 BTC1이 취약하고 버그가 많은 클라이언트임을 보여준다고 주장했습니다. BTC1 팀은 테스트넷이 바로 그것을 위한 것이라고 말하며 스스로를 변호했습니다. 그러나 이는 한 가지 점을 분명히 보여주었습니다. BTC1은 서두르고 자의적인 일정으로 비트코인의 합의 규칙을 바꾸려 했으며, 이 짧은 시간 안에 여러 클라이언트를 내놓았는데, 버그와 그 밖의 막판 변경들 때문에 그것들은 이미 서로 호환되지 않았습니다.

7월 초까지, 채굴자들 중 약 80에서 95퍼센트(해시 파워 기준)가 자신이 채굴한 블록들에 “NYA”라는 문자를 넣고 있었으며, NYA는 주도적인 위치에 있는 것처럼 보였습니다. 그러나 사용자들 중에는 BTC1은 물론 Segnet(NYA의 첫 부분만을 말합니다)조차 실행하는 사람이 거의 없었으며, 도입률은 거의 0에 가까웠습니다. 동시에 제가 이야기를 나눈 주요 거래소들은 BTC1, Segnet, BIP 148 클라이언트를 실행하지 않고 있었으며, 그저 Bitcoin Core를 실행하고 있었습니다. 따라서 전망은 매우 불확실해 보였습니다.

사실 제가 이야기를 나눈 채굴자들과 채굴 풀들도 NYA 깃발에도 불구하고 BTC1을 실행하지 않고 있었습니다. 2017년 7월 중순에 저는 2017년 6월에 NYA와 새로운 채굴 원탁 합의에 모두 서명한 두 채굴 풀의 관계자들과 이야기를 나눴습니다. 설명을 덧붙이자면, 채굴자가 BTC1을 실행하고 있었다면 이 시점에는 기본적으로 bit 4와 bit 1을 모두 표시해야 했습니다. 첫 번째 소프트포크가 활성화되면 bit 1은 의무가 되어 세그윗을 활성화할 것이었습니다. 이 채굴자들은 BTC1 클라이언트를 신뢰하지 않기 때문에 Segnet이나 Bitcoin Core를 실행하고 있다고 저에게 말했습니다. Bitcoin Core를 실행하던 이들은 NYA 깃발과 bit 4 그리고/또는 bit 1을 수동으로 넣고 있었습니다. 저는 이것이 최극비이며 저에게만 비밀로 공유된 것이라고 들었습니다. 공개적으로는 BTC1과 NYA에 대한 지지를 보여주는 것이 매우 중요하다고 채굴자들은 설명했습니다.

7월 20일에 우지한은 Bitmain이 BTC1을 실행하고 있다고 트윗했습니다. 다만 이 시점에는 Bitmain이 bit 1 깃발을 제거하도록 소프트웨어를 수정했다고도 말했습니다. 우지한은 세그윗을 활성화하기 전 가능한 마지막 순간까지 버티려는 듯 보였으며, 그것에 대한 투표가 의무가 되기 전에는 활성화되지 않도록 했습니다.

Bitmain은 btc1 소프트웨어를 실행하고 있지만 현 단계에서는 bit 4에만 투표하도록 수정했습니다.

깃발 표시는 분명히 엉망이었으며, 채굴자들은 여기저기 표시를 하면서 자신들이 실제로 무엇을 실행하고 있는지 사용자들을 오도했습니다. 예를 들어 풀들은 BTC1을 실행하지 않으면서 NYA 지지를 신호했습니다. Bitmain도 거짓 표시와 관련해서는 가장 심한 위반자 중 하나였습니다. 예를 들어 Antpool(Bitmain의 채굴 풀)은 실제로 BTC1의 알파 릴리스 전에 bit 4를 표시했으며, 이는 아직 존재하지 않는 클라이언트를 사용하고 있음을 나타냈습니다. 2017년 7월에도 Bitmain은 여전히 Bitcoin Unlimited 지지를 표시하고 있었는데, 이 노드는 BTC1이나 세그윗을 구현하지 않았으므로 그들의 표시들은 서로 모순되었습니다.

며칠 뒤인 2017년 7월 말에 Bitmain은 마침내 마감일을 불과 며칠 앞두고 bit 1을 표시했습니다. 작은 블록 지지자들은 열광했습니다. 지리한 캠페인의 끝에, 세그윗이 출시된 지 10개월이 넘은 뒤에 이 분야에서 가장 큰 채굴자가 마침내 그것에 대한 지지를 표시한 것입니다. 대부분의 작은 블록 지지자들은 이런 일이 절대 일어나지 않을 것이라고 믿었었습니다. 이제 세그윗 활성화가 마침내 가능해 보였습니다.

그 뒤 BIP 91에 대한 80퍼센트 기준이 마침내 달성되었고, 2017년 7월 21일에 락인되었습니다. 이 새로운 임시 소프트포크 규칙에 따라 채굴자들은 2017년 7월 26일부터 세그윗 지지를 표시해야 했습니다. 그 날짜가 다가오자 일부 비트코인 지지자들은 높아진 위험을 우려했습니다. 모든 채굴자가 따르지 않는다면 네트워크 문제가 생길 수 있었습니다. 그러나 그날이 왔고 모든 채굴자가 따르며 bit 1을 표시했습니다. 체인 분할은 없었고 세그윗은 마침내 락인되었으며, 그 뒤 비트코인 네트워크에서 활성화되었습니다. 서로 맞물린 마감일들과 활성화 메커니즘들의 엄청난 혼란과 복잡성 때문에 무슨 일이 일어나고 있는지 파악하는 것은 거의 불가능했습니다. 며칠마다 어떤 활성화 메커니즘이나 마감일이 있는 것처럼 보였습니다. 이 책을 여기까지 읽으셨다면, 아무리 적게 말해도 제가 이 갈등에 꽤 집착하고 있었다는 점이 분명해 보이실 것입니다. 그러나 이 시점에는 저조차도 무슨 일이 일어나고 있는지 파악하기가 어려웠습니다.

BIP 91은 2017년 8월 1일의 BIP 148 마감일 바로 직전에 활성화되어, BIP 91이 세그윗 표시를 의무화한 때와 UASF가 같은 조치를 했을 때 사이에 불과 5일이라는 아주 짧은 간격만을 남겼습니다. 이러한 근접성은 UASF의 위협이 통했음을 보여주는 듯했습니다. UASF가 성공했다는 사실은 기적 같은 성과였습니다. 현대의 다윗 대 골리앗 승리였습니다. UASF는 Bitcoin Core의 어떤 릴리스에도 구현된 적이 없었으며, 가장 영향력 있는 Bitcoin Core 개발자들 중 일부는 이를 공개적으로 반대했습니다.

비트코인과 그 익명의 창시자인 Satoshi의 진정한 정신에 따라, UASF는 대형 참여자들 사이의 공식적인 비공개 원탁 회의에서 나오지 않았습니다. 대신 그것은 공개적으로 출시되어 익명의 개발자인 Shaolinfry에 의해 홍보되었습니다. 어떻게든 익명의 한 개인, 소수의 풀뿌리 강성 지지자들, 그리고 Samson Mow가 주문한 모자 몇 개가, 다른 자본력 있는 많은 기업들의 지원을 받는 수십억 달러 규모의 기업(Bitmain)과 정면으로 맞서 싸워 이겼습니다. 저는 그런 일이 비트코인에서만 일어날 수 있다고 생각했던 것을 기억합니다. 비트코인에서의 전장이 독특했기에 꽤 특이한 결과들이 나올 수 있었습니다.

BIP 91 업그레이드는 작은 블록 지지자들의 관점에서 완벽과는 거리가 멀었습니다. 너무 서둘렀고, 짧은 336블록 투표 기간은 너무 작았으며(길이가 불과 2.33일에 불과했습니다), 의무적인 채굴자 신호는 위험했습니다. 결정적으로 BIP 91을 실행하는 것은 채굴자들뿐이어서 업그레이드는 엄청나게 위태로웠습니다. 채굴자들과 사용자들이 서로 다른 체인에 남게 될 수도 있었습니다. 과정이 아무리 지저분하고 위험했더라도, 작은 블록 지지자들은 원하는 것을 얻었습니다. 세그윗이 활성화되었고, UASF는 우지한의 손을 강제로 움직인 것처럼 보였습니다. 이제 그들은 NYA의 2단계인 하드포크를 저지하는 데 집중할 수 있었습니다.

큰 블록 지지자들은 이러한 전개에 격분했습니다. 저명한 큰 블록 지지자 중 한 사람은 저에게 직접 “멍청한 UASF 모자들이 통했다”라고 말하며 그것이 채굴자들에게 세그윗 활성화를 강제했다고 했습니다. 그는 이 모든 일이 8월 1일 이전에 일어났다는 사실에 특히 좌절했습니다. 그 날짜 이후에 일어났더라면, UASF가 아니라 NYA가 세그윗 활성화를 이끌었다는 큰 블록 지지자들의 이야기가 더 설득력 있었을 것입니다. 큰 블록 지지자들은 작은 블록 지지자 운동 중 가장 극단적인 부분이 비트코인을 장악하고 자신들이 매우 불만스러워하는 것을 활성화했다고 느꼈습니다. 그들은 이 시점에 비트코인에 환멸을 느낀 듯 보였으며, NYA의 2단계에는 특별히 신경 쓰지도 않았습니다.

저에게는 우지한이 어쩌면 여기서 한 가지 묘수를 놓친 것처럼 보였습니다. 그는 8월 1일 마감일이 지나기를 기다렸다가 비트코인에서 세그윗을 활성화할 수도 있었습니다. 세그윗이 어차피 다른 체인에서 활성화되었을 것이므로, 이는 작은 블록 지지자들이 BIP 148 체인을 지지하기를 더욱 어렵게 만들었을 것입니다. 우지한은 그 뒤 자신이 UASF를 물리쳤다고 주장할 수도 있었습니다. 그러나 우지한은 그렇게 하지 않기로 선택했으며, 그 이유는 UASF가 통했기 때문인 듯했습니다. 우지한은 체인 분할을 두려워했고, 상대방의 힘을 과대평가했을 가능성이 있으며, 압박에 굴복했습니다.

세그윗이 활성화되자 작은 블록 지지자들은 자신들의 체인인 비트코인에서 앞으로 나아갈 자유를 충분히 얻었습니다. 그러나 이 분야에서 많은 주요 기업들, 특히 미국에 기반을 두고 VC의 지원을 받는 기업들이 하드포크를 통한 블록 크기 증가에 약속했다는 문제가 여전히 있었습니다. 그들은 이것이 새로운 알트코인이 되기를 원하지 않았습니다. 그들은 이것이 비트코인이 되기를 원했습니다. 이들 기업이 물러나게 하는 것은 극도로 어려울 듯 보였습니다. 따라서 블록 크기 전쟁은 계속되었습니다. 이 하드포크는 불과 3개월 뒤에 일어날 예정이었고, 전장은 달아오르고 있었습니다.

영문 — Chapter 18 – New York Agreement

Chapter 18 of the book The Blocksize War is published below. The full book is available on Amazon. As a reminder, 50% of any profits from physical book sales will be donated to Médecins Sans Frontières, a charity that provides medical assistance to people affected by conflict, epidemics, disasters, or exclusion from healthcare.*

* Note: Applies to sales up until the earlier of i. the death of the author and ii. January 2031

On May 22, 2017, there was a meeting in New York arranged by Barry Silbert, of Digital Currency Group (DCG), aimed at resolving the conflict. Jihan Wu was in attendance. This resulted in yet another agreement. The following document referred to as the New York Agreement (NYA), was published. It read:

We agree to immediately support the following parallel upgrades to the bitcoin protocol, which will be deployed simultaneously and based on the original Segwit2Mb proposal:

Activate Segregated Witness at an 80% threshold, signaling at bit 4

Activate a 2 MB hard fork within six months

We are also committed to the research and development of technical mechanisms to improve signaling in the bitcoin community, as well as to put in place communication tools, in order to more closely coordinate with ecosystem participants in the design, integration, and deployment of safe solutions that increase bitcoin capacity.

We welcome all companies, miners, developers, and users to join us and help prepare bitcoin for the future.

The group of signed companies represents a critical mass of the bitcoin ecosystem. As of May 25, this group represents:

58 companies located in 22 countries

83.28% of hashing power

5.1 billion USD monthly on chain transaction volume

20.5 million bitcoin wallets

Separately, as of May 24, the following companies have committed to provide technical and engineering support to test and support the upgrade software, as well as to assist companies with preparing for the upgrades:

Abra | BitClub Network | Bitcoin.com | BitFury | BitGo | Bitmain | BitPay | Blockchain | Bloq | BTCC | Circle | Ledger | RSK Labs | Xapo

If you wish to dedicate technical and engineering support from your team, please let us know and we will include you in the list above.

The agreement was based on an earlier proposal in March 2017, from Bitcoin developer and researcher Sergio Lerner. The idea was to do both SegWit and a non-witness hardfork blocksize increase to 2 MB. Speaking to people close to Barry, this was said to be a compromise, with some people wanting SegWit and others wanting a hardfork, therefore now everyone could get what they wanted. It was explained to me that Barry was concerned that the network had reached a stalemate and that something had to be done to move forwards. The agreement itself was said to have been drafted by DCG employee Meltem Demirors. This document had given Jihan the opportunity to save face, a methodology of dealing with the potential threat of the UASF, just like the Litecoin agreement a month earlier.

The number and significance of the signatories to the agreement was very impressive. In total, there were 58 signatories including Gavin Andresen, Roger Ver’s Bitcoin.com, Jihan Wu’s Bitmain and Brian Armstrong’s Coinbase. Although many (33 of the signatories) were DCG portfolio companies, there was widespread support outside of this group too, from many of the exchanges and mining pools. As such, many observers in the space concluded that the blocksize issue had now finally been resolved and that a successful implementation of the agreement was almost inevitable. This agreement was a major coup and achievement for the larger blockers, at a time when they were weak. It looked like a major turning point in the conflict. The larger blockers were almost down and out, but now they were suddenly in the ascendancy again.

However, the large blockers were not totally happy with the agreement. After all, it included SegWit, something they were not too keen on. But it did appear to do something they wanted, which was to “fire Bitcoin Core”. This is how Roger Ver justified his support. He claimed that, although he did not like the agreement itself, at least it would get rid of Bitcoin Core. Some large blockers appeared suspicious of the agreement, and those on the more extreme end of the large blocker camp opposed it. The agreement committed to activate SegWit before the hardfork, with the hardfork activating “within six months”. The agreement said the hardfork and softfork would be “deployed simultaneously”, but that the softfork would activate first. Some large blockers were concerned that step one could occur and then the signatories could bail on the agreement, before enacting step two.

As for the small blockers, there was no representation of them in New York, and their views were not reflected in the agreement whatsoever. There were no sentences with double meanings or conflicting statements; it appeared to have been written entirely by the large blocker side. Notably, the agreement made no reference to the idea that Bitcoin users control the protocol or that support of the users was necessary before changing the protocol rules. The NYA did not even pay lip service to the idea that users should have a say. It was pitched as the large corporates in the space imposing the rules on the users in a top-down manner. If Bitcoin were to operate like that, it would undermine the core value proposition of the currency. The NYA signatories did not appear to consider it important to lobby and persuade users before activating the fork. Instead, it felt like a threat or an ultimatum.

As well as undermining the core value proposition of Bitcoin, this was also bad tactics. Bitcoin users wanted to feel in control and did not like being told what to do. Therefore, the NYA felt like a repeat of Bitcoin XT, Bitcoin Classic and Bitcoin Unlimited. They had made the same mistakes again, except this time with much more industry support. One thing of note, however, is that several very significant and growing names in the industry were not signatories of the NYA. Most notable by its absence was Bitfinex, perhaps the most economically significant company at the time. Local Bitcoins (the largest P2P exchange at the time), Poloniex, BitMEX and mining pool Slush were also notably absent.

The easiest section of the agreement for the small blockers to pick apart was where it said “Activate Segregated Witness at an 80 percent threshold, signalling at bit 4”. This made little sense, as SegWit activated using bit 1, not bit 4. Miners could flag using bit 4, however this would not actually activate SegWit. Apparently, based on speaking to somebody in attendance at the meeting, Jihan had insisted on this point, perhaps because he had been pressured for months to flag support for SegWit using bit 1 and he did not want to cave into the small blocker demands. However, activating SegWit using this bit was not possible and therefore it was not exactly clear what would happen.

Almost immediately after the NYA was published, on May 22, 2017, Bitcoin and mining software developer James Hillard proposed a solution to this bit 4 dilemma, called BIP 91:

I would like to propose an implementation that accomplishes the first part of the Barry Silbert proposal independently from the second:

“Activate Segregated Witness at an 80% threshold, signaling at bit 4”

The goal here is to minimize chain split risk and network disruption while maximizing backwards compatibility and still providing for rapid activation of segwit at the 80% threshold using bit 4.

By activating segwit immediately and separately from any HF we can scale quickly without risking a rushed combined segwit+HF that would almost certainly cause widespread issues.

James proposed that SegWit would activate in two phases, with two softforks. A first softfork would activate using the 80 percent miner signalling threshold mentioned in the NYA and would make signalling for SegWit via bit 1 compulsory. This would then activate the final softfork, SegWit itself. This also made the upgrade compatible with BIP 148 (the UASF), because this also made signalling for SegWit via bit 1 mandatory. In actual fact, BIP91 was co-written by both James Hillard and Shaolinfry, the author of BIP 148. Eventually, a client was released, called Segsignal, which was Bitcoin Core patched to support BIP 91. BIP 91 was quite an aggressive and quick upgrade mechanism, activating if 269 blocks flagged support in 336 block signalling windows, an 80 percent threshold.

As for the client implementing the NYA in full, it quickly emerged that this would be called BTC1 and the lead developer would be Jeff Garzik, who had proposed to Satoshi to increase the blocksize limit a few weeks after it was first imposed in 2010. Jeff was asked to make BTC1 compatible with BIP 91 and activate SegWit via bit 1, arguing that, from a technical standpoint, activation via bit 4 was a nonsense. Initially, Jeff refused, although his reasoning appeared somewhat muddled.

On May 29, an email from the CEO of BitGo, Mike Belshe, was leaked. It contained a plan and timeline for the NYA. It should be noted that, although BitGo was listed in the NYA as one of the companies providing technical support for the upgrade, they were not signatories to the agreement themselves. The agreement even stated at the very bottom: “Note: BitGo was erroneously included in this initial published list. This has since been corrected.” From speaking to some BitGo staff, it is my understanding that they had asked for the company to be removed, thinking that the custodian and payment processor should instead stay neutral and support both sides of the split. In any event, the leaked email contained a proposed timeline, including the alpha release of the software, the launch of the testnet and then for signalling to begin by July 21.

Many in the Bitcoin community were furious to discover that development and plans for the NYA client were taking place in secret and not on a public mailing list. Bitcoin was supposed to be an open system, subject to open scrutiny. A secret mailing list driving the rollout of consensus change was considered antithetical to Bitcoin. However, the reason it was conducted in private was clear: if this was done in public, the small blockers would no doubt pick holes in what they were doing, making their proposal look weak. SegWit was extremely complicated and an alternative group was trying to roll it out with a very limited understanding of it. With the benefit of hindsight, conducting much of the process behind closed doors was a mistake, as the lack of scrutiny appeared to cause more errors.

At the end of May 2017, the pressure on Jeff caused by the incompatible SegWit activation, via bit 4, was immense. The small blockers and the Dragons’ Den participants realised that this was a major flaw in the BTC1 client and, if they persuaded Jeff to make this change and adopt BIP 91, SegWit may finally activate on Bitcoin. After activation occurred, the small blockers could then work on stopping the second part of the NYA, the hardfork. Social media was full of comments about how disruptive and uncooperative Jeff was being by refusing to adopt BIP 91, and his inbox was presumably full of similar demands and accusations from across the technical community.

Finally, on June 5, 2017, Jeff caved in under the pressure and included BIP 91 in his BTC1 client. The small blockers had now got their way; the NYA client now implemented the UASF. Inside the Dragons’ Den, there were excited celebrations.

The activation logic for the hardfork also changed at this point; the hardfork in the BTC1 client was now said to be scheduled for activation three months after SegWit activated (if, indeed, SegWit was to ever activate), rather than six months later. However, I was unable to understand how the code implemented the activation logic, and there was considerable confusion around the specifics of the hardfork activation timing. This three-month period was half the six-month period mentioned in the NYA, which was originally implemented in early versions of the BTC1 client. From speaking to some BTC1 insiders, I ascertained that the reason for this change was apparently to give people less time to back out of the hardfork once SegWit had activated, which would help ensure the hardfork occurred. This seemed to me to be the wrong approach that could actually make the hardfork phase more difficult to pull off, as now proponents of the hardfork had a shorter period in which to persuade users to upgrade (three months instead of six).

As for the BTC1 client, it appeared to be full of bugs, even after implementing BIP 91. Jeff may not have understood SegWit and made some mistakes with the peer-to-peer layer of SegWit, which required further input to fix. Also, remarkably, as someone pointed out in an email on June 14, the BTC1 client did not even implement the hardfork blocksize limit increase. The client kept the four million-unit weight cap, which would have prevented a hardfork and ensured the blocksize limit never increased. It appears as if Jeff never understood the new SegWit limit: remember, he had thought SegWit had two limits. Only after this was pointed out, post the release of the first version of BTC1, did it actually implement a hardfork. It was proving too difficult for the NYA supporters to double something that they did not understand.

Jeff was also under considerable pressure to add replay protection to the BTC1 client, however he opposed this. The idea was not that BTC1 would create a new coin, but that there was to only be one coin after the upgrade, and for the original rules chain to somehow die due to overwhelming support for the new chain. The Ethereum split of 2016 was ancient history now and most large blockers seemed to have forgotten about it. Therefore, in the mind of the NYA supporters, replay protection was not necessary. However, this was a repeat of the same arguments which had been going around and around in circles for years; some people thought the original rules chain may prevail and therefore replay protection was necessary. On June 14, Sergio Lerner, upon whose proposal the NYA was based, threw his weight behind replay protection. By this point, Jeff was under tremendous pressure from all sides:

There are two group of people which have two different visions for Bitcoin. None of these visions is “wrong”. One group values more things like decentralization, lack of government, censorship resistance, anonymity. This group thinks that Bitcoin will transform our world in 20-30 years. To reach this goal, it’s of utter importance to stick to those values. There is no rush. The other group values more things like reaching one billion users in the next 5 years, or serving real unbanked users today, even if that requires a political agreement now. Both visions have their merits. But they are incompatible. Replay protection gives a chance to each of these “bitcoiners” to fully push their own vision. Both visions can co-exists.(sic)

On June 16, 2017, the miners had yet another roundtable meeting. Almost all the major mining pools were in attendance. At the meeting, the miners agreed to support the NYA.

The first release of BTC1 did not have wipeout protection and, as was explained earlier in this book, pushing for a contentious hardfork without wipeout protection is like going to war having deliberately tied one’s hands behind one’s back. By May 2017, after almost two years of fighting for harforks, Jihan Wu had finally come to this realisation and had pushed for wipeout protection. Jihan had supported wipeout protection as early as May 12, 2017:

Since it is a very significant consensus rule change which has been debated for 4 years, we can add another consensus rule at and ONLY at the forking height, the size of the block HAS TO be bigger than 1,000,000 Byte. It is a very simple and straight forward way to protect re-org.

As the pressure on Jeff mounted, and it appeared that the NYA hardfork might be more contentious than its promoters had originally thought, he agreed to add wipeout protection. Jihan had encouraged Jeff to add this feature into BTC1 and, on June 20, Jeff complied. Rather than merely allowing blocks to be larger than 1 MB after the hardfork, BTC1 now required the first block to be more than 1 MB, a basic form of wipeout protection.

Requested by Bitmain and BU to implement an anti-wipeout feature; myself and other WG members concurred via the wider rationale of creating a more predictable network upgrade.

The traditional HF sequence is that the network fork occurs *on or after* the HF rule change, when the miner creates the first block larger than 1M. It is proposed to tighten this such that the HF block *must be* larger than 1M on the block when the rule change occurs. This makes the event more predictable by guaranteeing the fork occurs specifically at block X.

This feature was implemented poorly and, on July 11, 2017, the BTC1 testnet split into two. It appeared that someone mined testnet blocks 50 times faster than expected, activating the hardfork early. Then, due to a bug in how the ‘greater than 1 MB’ rule was implemented, the newer versions of BTC1, which required the first block to be more than 1 MB, split onto a different chain from the older BTC1 client. This was because the first block was not more than 1 MB as there were insufficient transactions. This bug and split was again exploited by the small blockers to indicate that BTC1 was a weak and buggy client. The BTC1 team defended themselves by indicating that this is what the testnet was for. However, this did illustrate a point: BTC1 was attempting to change the consensus rules of Bitcoin in a rushed and arbitrary schedule and, in this short time, had released multiple clients, which were already incompatible with themselves due to bugs and other last minute changes.

By early July, around 80 to 95 percent of miners (by hash power) were including the letters “NYA” in the blocks they mined, and the NYA looked like it was in a commanding position. However, almost none of the users were running BTC1 or even Segnet (the first part of the NYA only); adoption was near zero. At the same time, the major exchanges I spoke to were not running BTC1, Segnet or the BIP 148 client; they were just running Bitcoin Core. The outlook therefore seemed highly uncertain.

In fact, the miners and mining pools I spoke to were not running BTC1 either, despite the flags for the NYA. In mid-July 2017, I spoke to people at two of the mining pools who signed both the NYA and the new mining roundtable agreement in June 2017. Just to explain, if a miner was running BTC1, they should by default at this point flag both bit 4 and bit 1; once the first softfork activated, bit 1 would become mandatory and activate SegWit. These miners told me that they did not trust the BTC1 client and were therefore running Segnet or Bitcoin Core. Those running Bitcoin Core were manually including the NYA flag and bit 4 and/or bit 1. I was informed that this was top secret and that this was shared with me in confidence; in public, it was vital to show support for BTC1 and the NYA, the miners explained.

On July 20, Jihan tweeted that Bitmain was running BTC1; except, by this point, he also said that Bitmain had modified the software to remove the bit 1 flag. Jihan appeared keen to hold out until the last possible moment before activating SegWit, ensuring that it did not activate before voting for it became mandatory.

Bitmain is running btc1 software but we modify to only vote on bit 4 only at this stage.

The flagging was clearly a mess, miners were flagging all over the place, misleading users about what they were actually running. Pools were signalling support for the NYA without running BTC1, for example. Bitmain was also one of the worst offenders when it came to false flagging. For instance, Antpool (Bitmain’s mining pool) actually flagged bit 4 before the alpha release of BTC1, indicating that it was using a client that didn’t yet exist. Even in July 2017, Bitmain was still flagging support for Bitcoin Unlimited, when this node had not implemented BTC1 or SegWit, and therefore their flags were contradictory.

A few days later, towards the end of July 2017, Bitmain finally flagged for bit 1, just a few days before the deadline. The small blockers were ecstatic. After a grueling campaign, more than 10 months after SegWit was released, the largest miner in the space had finally flagged support for it. Most small blockers had believed that this would never happen. SegWit activation now finally looked likely.

The 80 percent threshold for BIP 91 was then finally achieved, and it locked in on July 21, 2017. According to this new temporary softfork rule, miners were then required to flag support for SegWit from July 26, 2017. As that date approached, some Bitcoiners were concerned about the elevated risk. If not all miners complied, there could be network issues. However, the day came and all the miners complied, flagging bit 1. There was no chain-split and SegWit was finally locked in, and it then activated on the Bitcoin network. With this insane mess and complexity of interlocking deadlines and activation mechanisms, it was almost impossible to keep track of what was going on. It seemed like every few days there was some sort of activation mechanism or deadline. If you have read this far into this book, it might be apparent to you that I was pretty obsessed with this conflict, to say the least; however, at this point, even I found it challenging to keep track of what was going on.

BIP 91 activated right before the BIP 148 deadline of August 1, 2017, leaving just a tiny, five-day gap between when BIP 91 made flagging for SegWit mandatory and when the UASF would have done the same. This close proximity appeared to indicate that the threat of a UASF had worked. The fact that the UASF succeeded was a miraculous achievement. A modern-day David vs Goliath victory. The UASF was never implemented in a release of Bitcoin Core, and some of the most influential Bitcoin Core developers had openly opposed it.

In the true spirit of Bitcoin and its pseudonymous creator, Satoshi, the UASF didn’t emerge from an official, closed-door, roundtable meeting among the big players. Instead, it was released in the open and promoted by a pseudonymous developer, Shaolinfry. Somehow, one pseudonymous individual, a few grassroots hardcore followers and a few hats commissioned by Samson Mow, had gone head-to-head with a multi-billion dollar enterprise (Bitmain) supported by many other well capitalised businesses, and won. I remember thinking that something like that could only happen in Bitcoin. It was the battlefield in Bitcoin that was unique and therefore one can get some quite peculiar outcomes.

The BIP 91 upgrade was far from perfect from the smaller blocker point of view; it was too rushed, the short, 336-block voting windows were too small (just 2.33 days long), mandatory miner signalling was risky and, crucially, only the miners were running BIP 91, which made the upgrade incredibly precarious. It could have resulted in miners and the users being left on different chains. Regardless, however messy and dangerous the process was, the small blockers had got their way: SegWit had activated, and the UASF appeared to force Jihan’s hands. They could now focus on stopping phase two of the NYA, the hardfork.

The large blockers were furious by these developments. One of the prominent large blockers mentioned to me in person that the “stupid UASF hats had worked” and forced miners to activate SegWit. He was particularly frustrated by the fact that this had all happened before August 1; had it occurred after that date, the large blocker narrative that the NYA had caused SegWit to activate, not the UASF, would have been more compelling. The large blockers felt the most extreme parts of the small blocker movement had taken control of Bitcoin and activated something they were extremely unhappy about. They appeared disillusioned with Bitcoin at this point, and were not even particularly bothered by phase two of the NYA.

It seemed to me that perhaps Jihan had potentially missed a trick here. He could have waited for the August 1 deadline to pass, then activated SegWit on Bitcoin. This would have made it even more difficult for the small blockers to support the BIP 148 chain, since SegWit would have activated on the other chain anyway. Jihan could then argue he had defeated the UASF. However, Jihan chose not to do this and the reason appeared to be that the UASF worked. Jihan was scared of a chain-split, possibly overestimated the power of his opponents, and gave in to the pressure.

With SegWit activated, the small blockers were very much free to move forwards on their chain, Bitcoin. However, there was still the issue that many significant companies in the space, in particular US-based and VC-backed ones, had committed to a hardfork blocksize increase. They did not want this to be a new, alternative coin; they wanted this to be Bitcoin. Getting these companies to back down looked likely to be extremely difficult. The blocksize war therefore continued. This hardfork was due to happen in just three months, and the battlefield was heating up.

링크 복사하기X에 공유페이스북에 공유쓰레드에 공유