본문으로 건너뛰기

제7장 – 비트코인 클래식

한글

책 The Blocksize War의 제7장을 아래에 싣습니다. 전체 책은 Amazon에서 구할 수 있습니다. 알려드리자면, 종이책 판매로 얻는 수익의 50%는 분쟁, 전염병, 재난 또는 의료 배제로 영향을 받는 사람들에게 의료 지원을 제공하는 자선 단체인 메데생 상 프롱티에르에 기부됩니다.

2015년 말로 접어들면서 전쟁은 상당히 격화되고 있었습니다. Bitcoin XT 노드를 겨냥한 분산 서비스 거부(distributed denial of service)(DDoS) 공격이 파도처럼 이어지기까지 했습니다. 2015년 12월 28일, Reddit 사용자 /u/tl212가 이렇게 댓글을 달았습니다:

저는 DDoS 공격을 당했습니다. 그것은 제 (시골) ISP 전체를 마비시킨 대규모 DDoS였습니다. 이 범죄자들 때문에 5개 마을의 모든 사람이 몇 시간 동안 인터넷 서버를 잃었습니다. 그 일로 노드를 운영하는 의욕이 확실히 꺾였습니다.44

이 행동은 꽤 공격적으로 보였고 정당화할 수 없었습니다. ISP 전체를 마비시킬 정도로 강력한 공격이 있었다는 보고가 있었다는 점은 주목할 만합니다. 그 공격들은 Bitcoin XT 네트워크에 실질적으로 해로운 영향을 미친 것으로 보였고, 따라서 어느 정도 효과가 있었다고 주장할 수도 있었습니다. 알려진 신원을 가진 작은 블록 지지자들 가운데 그런 비윤리적인 행동을 지지한 사람은 제가 아는 한 없었습니다, 비록 일부 익명의 작은 블록 지지자들은 BitcoinTalk에서 그 행동을 “반격”이라고 부르며 옹호하는 듯 보였지만 말입니다. 그러나 그 공격이 드러낸 한 가지는 크고 분산되며 튼튼한 P2P 네트워크의 중요성이었고, Bitcoin XT는 이 시점에 그런 네트워크를 갖추지 못했습니다. 이 공격들의 배후가 누구였는지는 끝내 알려지지 않았지만, 몇 달 뒤 비트코인으로 익명의 대가를 받고 공격을 실행한 Botnet 운영자에 대한 소문이 돌았습니다. 공격자들의 행동은 작은 블록 지지자들에게조차 비윤리적으로 여겨졌고, 그들 중 많은 사람은 그것이 오히려 역효과를 내어 사람들을 자신들의 주장에서 멀어지게 할 수 있다고 여겼습니다. 제 견해로는, 물론 이것이 작은 블록 지지자의 소행이었고 어떤 종류의 자작극 공작이 아니었다고 가정한다면, 이는 작은 블록 진영의 드문 전술적 실책 사례였습니다. 이 전쟁은 사람들을 설득해 자신이 선택한 편에 합류하도록 하는 것이었고, 그런 공격적인 행동은 생산적이지 않았습니다. 제가 아는 한, 이런 형태의 공격은 블록 크기 전쟁에서 다시 두드러지게 등장하지 않았습니다.

2016년 1월 3일, Coinbase의 CEO인 Brian Armstrong(업계에서 가장 큰 현물 거래소 중 하나이자 가장 인상적인 VC 투자를 받은 회사)이 더 큰 블록을 지지하는 블로그를 공개했습니다. Brian은 또한 Gavin을 지지했고 비트코인을 업그레이드하는 방법에 대해 논란이 되는 견해를 가지고 있었습니다.

다행히 비트코인은 우아하게 설계된 업그레이드 장치를 내장하고 있습니다. 비트코인 채굴자들의 다수가 특정 업그레이드에 “투표”한다면 정의상 그것이 새로운 버전의 비트코인입니다. 각 채굴자가 얻는 표의 수는 그들이 네트워크에 더하는 연산 능력의 양에 비례합니다(그래서 표는 조작될 수 없습니다).45

해시파워가 가장 많이 뒷받침하는 체인이 무엇이든 비트코인으로 정의된다는 견해는 작은 블록 지지자들에게는 별로 말이 되지 않는 듯 보였습니다. 그들에게 비트코인 노드는 특정 규칙들을 실제로 강제했습니다. 블록은 이들 규칙을 따라야 했고 그렇지 않으면 무시되었습니다. 작은 블록 지지자들에게 이것은 비트코인이 작동하는 방식의 핵심 부분이었습니다. 채굴자들이 그저 그런 식으로 규칙을 바꾸려 한다면 체인이 갈라지고 새로운 알트코인이 생길 것이었습니다. 원래 규칙을 따르는 쪽이 계속 비트코인으로 남을 것이었습니다.

작은 블록 지지자들은 프로토콜 규칙을 강제하는 점에서 완전 검증 노드를 중요하게 보는 경향이 있었고, 큰 블록 지지자들에게는 전혀 그렇지 않았습니다. 큰 블록 지지자들에게 대부분의 사용자는 완전 검증 노드를 운영하지 않았고, 보통 라이트 노드를 운영했습니다. 그러나 사용자가 풀 노드를 갖지 않는다는 이런 큰 블록 지지자들의 구상에서도, 사용자들은 여전히 서명 장치를 가지고 있었습니다. 모든 사용자 서명 장치는 프로토콜 규칙 전체를 강제하지는 않더라도 여전히 일부 규칙은 강제했습니다. 비트코인은 블록 크기만이 아니라 온갖 규칙과 관례를 가지고 있었습니다. 예를 들어 거래 형식, 지출을 승인하는 서명, Merkle 트리 구조, 블록 헤더 형식 등이 있었습니다. 설마 Brian과 큰 블록 지지자들은 더 많은 연산 능력이 뒷받침하는 것이라면 무엇이든, 다른 거래 관련 데이터 없이 해시만을 이어 놓은 체인조차 비트코인으로 정의될 수 있거나 정의되어야 한다고 주장한 것은 아니었을 것입니다. 사람들이 라이트 노드만 운영하는 큰 블록 지지자들의 세계관에서도, 블록은 여전히 일부 규칙을 따라야 했습니다.

어쩌면 Brian의 주장에 대한 더 호의적인 해석은 채굴자들이 라이트 서명 장치가 그들에게 부과하는 규칙을 제외하고는 프로토콜 안에서 원하는 대로 할 자유가 있었다는 것입니다. 그런 맥락에서는 이 더 큰 블록 이야기가 더 말이 됩니다. 이는 블록 크기 제한을 규칙에서 제외했을 수는 있지만, 서로 다른 라이트 서명 장치는 규칙의 서로 다른 부분집합을 강제합니다. 따라서 채굴자가 통제할 수 있는 것과 통제할 수 없는 것 사이에 선을 긋는 데 회색 지대가 있었을 것입니다. 작은 블록 지지자들은 이에 동의하지 않았습니다. 그들은 무엇이 네트워크 규칙이고 무엇이 아닌지에 대해 강한 명확성을 요구했고, 어느 것이 가장 긴 유효한 전체장부인지에 대해 언제나 의문이 거의 없도록 하려 했습니다.

저는 큰 블록 지지자들 중 일부와 이 주제를 자주 파고들려 했습니다. 저는 그들에게 이런 질문을 던졌습니다. 채굴자들이 2100만 공급 한도를 넘는 새로운 인플레이션을 만들어 그 비트코인을 자신들에게 준다면 어떻게 됩니까. 그 체인이 더 많은 작업을 가졌다면 그것이 비트코인입니까. 보통 그들은 이런 식으로 답했습니다. “채굴자들은 절대 그렇게 하지 않을 것입니다”, 또는 “비트코인은 게임 이론과 유인에 관한 것이며, 채굴자들이 그렇게 한다면 가격이 떨어질 것입니다”, 또는 “채굴자들이 그렇게 하지 않도록 게임 이론이 짜여 있습니다”. 제가 선언하기를, 채굴자들이 그렇게 한다면 모든 노드와 서명 장치는 그 체인을 무효로 여길 것입니다. 채굴자들이 공급 상한을 어긴다면 여러분은 그 블록들을 보지 못할 것입니다. 큰 블록 지지자들은 보통 이에 대해 “노드는 중요하지 않다”고 주장하며 답했습니다. 그들에게 비트코인은 자신의 노드가 그것을 따르고 있든 아니든 가장 많은 작업이 쌓인 체인으로 정의되었습니다. 사용자가 비트코인의 일부가 되고 싶다면, 일부 규칙을 어겼든 아니든 가장 많은 작업이 쌓인 체인을 따르고 있도록 새로운 노드 소프트웨어를 내려받아 설치해야 할 수도 있었습니다.

여기서 누가 옳은지는 저에게 분명하지 않았습니다. 그것은 사람들이 어떻게 행동하느냐에 달려 있었습니다. 모두가 큰 블록 지지자들처럼 행동해 가장 긴 체인을 따르려고 새 클라이언트를 내려받는다면, 그렇습니다, 그들이 옳았습니다. 그러나 모두가 작은 블록 지지자들처럼 행동해 고집스럽게 원래 클라이언트를 유지한다면, 작은 블록 지지자들이 옳았습니다. 이는 열린 질문이었고 아무도 정답을 100퍼센트 확신할 수 없었습니다. 양쪽의 극단주의자들은 자신이 옳다고 확신하는 듯 보였지만, 둘 다 편협하게 생각하고 있었습니다. 양쪽은 사람들이 자기들과 똑같이 행동할 것이라고 가정한 정신 모형을 만들었습니다. 물론 현실은 서로 다른 사람들이 서로 다른 생각과 구상을 가졌고 따라서 다르게 행동하리라는 것이었습니다. 큰 블록 지지자들의 구상은 거의 모든 사람이 그들에게 동의하는 데 의존하는 듯 보였고, 작은 블록 지지자들의 구상은 상당한 소수라도 그들에게 동의하기를 요구하는 듯 보였습니다. 이런 관점에서 저에게는 작은 블록 지지자들이 대체로 옳은 듯 보였습니다. 일부 사람들은 클라이언트를 업그레이드할 것이고 일부는 하지 않을 것이므로, 네트워크 분할이 생길 수 있었습니다.

규칙 집행에서 풀 노드가 하는 역할에 대한 이런 다른 구상은 더 큰 혼란을 낳았습니다. 작은 블록 지지자들은 블록 크기 제한 인상에 반대한다고 자주 말했습니다. 노드 운영 비용이 너무 높아져 풀 노드 수가 줄고 중앙화가 생길 수 있다는 것이었습니다. 큰 블록 지지자들은 이를 잘못 해석해, 작은 블록 지지자들이 중계 노드가 부족해질 것을 걱정하며, 따라서 거래 데이터가 전파되는 peer-to-peer 통신 네트워크가 너무 약해질 수 있다고 우려하는 것으로 여겼습니다. 그러면 통신이 몇 개의 큰 허브를 중심으로 중앙화될 것이었습니다. 일반적으로 이것은 작은 블록 지지자들이 걱정하던 종류의 중앙화가 아니었습니다. 그들은 충분한 최종 사용자가 프로토콜 규칙 전체를 완전히 검증하는 비트코인 클라이언트를 운영할 수 없게 되리라는 생각을 더 걱정했고, 이는 프로토콜 규칙 집행의 탈중앙화를 해칠 수 있었습니다. 큰 블록 지지자들은 이런 우려를 이해조차 하지 못하는 듯 보였고, 최종 사용자에게 이런 풀 노드 클라이언트를 운영할 능력이 필요하지 않다고 믿었습니다. 따라서 더 큰 블록이 풀 노드 운영을 감당할 수 없을 만큼 비싸게 만들리라는 위험은 큰 블록 지지자들에게 중요한 우려가 아니었습니다. 이런 서로 다른 구상은 본질적으로 양쪽이 상대방 관점에 대한 이해를 쌓기보다 서로를 향해 일방적으로 말하고 있었음을 뜻했습니다.

이 혼란은 비트코인이 작동하는 방식에 대한 비슷한 오해와 자주 뒤섞였습니다. 곧, 지출자가 유효한 서명을 제공하지 않아도 51퍼센트 채굴 공격으로 사용자 자금을 훔칠 수 있다는 널리 퍼진 생각이었습니다. 채굴자들은 그렇게 할 수 없습니다, 적어도 작은 블록의 세계에서는 그렇습니다. 51퍼센트 공격에서 채굴자들이 할 수 있는 전부는 서로 충돌하는 두 거래에 대한 유효한 서명을 가진 거래를 이중 지출하는 것입니다. 이는 모든 큰 블록 지지자들이 이를 이해하지 못했다는 말이 아닙니다. 그들은 어느 정도는 이해했습니다. 다만 이것은 처음으로 탐구되던 새로운 과학 영역이었을 뿐입니다. 이 문제에 대해 양쪽 모두 상당한 불확실성이 있었고, 이해를 쌓는 데는 시간이 걸립니다. 이 영역의 명확성 부족은 큰 블록 지지자들이 목표를 이루는 능력을 떨어뜨렸습니다. 큰 블록 지지자들이 그런 규칙이 존재하기는 하는지를 두고 혼란을 만들기보다, 블록 크기 제한을 프로토콜 규칙에서 제거하는 데 더 간결하게 집중했다면, 그들은 더 성공했을 수 있었습니다.

해시레이트가 체인을 정의한다는 Brian의 견해는 비트코인 백서의 마지막 문장으로 뒷받침되는 듯 보였고, 그 문장은 다음과 같았습니다:

그들은 CPU 파워로 투표하며, 유효한 블록을 늘리는 작업으로 그에 대한 수용을 표하고 무효한 블록에는 작업을 거부함으로써 거부 의사를 표합니다. 필요한 모든 규칙과 유인은 이 합의 장치로 강제될 수 있습니다.

이 인용은 큰 블록 지지자들에 의해 자주 유포되고 반복되었습니다. 그러나 Satoshi가 이 구상을 전혀 공유했는지는 분명하지 않습니다. 실제로 백서는 또한 이렇게 밝힙니다:

우리는 정직한 체인보다 더 빨리 대체 체인을 만들려는 공격자의 시나리오를 생각합니다. 이것이 달성되더라도, 허공에서 가치를 만들어내거나 공격자에게 속한 적이 없는 돈을 가져가는 것과 같은 자의적 변경에 시스템을 열어젖히지는 않습니다. 노드들은 무효한 거래를 대금으로 받아들이지 않을 것이고, 정직한 노드들은 그런 거래를 담은 블록을 절대 받아들이지 않을 것입니다. 공격자는 최근에 쓴 돈을 되찾으려고 자신의 거래 중 하나를 바꾸려 시도할 수 있을 뿐입니다.46

위에서 Satoshi는 노드가 특정 규칙들을 강제한다는 점을 분명히 합니다. 백서를 맥락 속에서 판단하는 것이 중요합니다. 그것은 주로 이중 지출 문제에 대한 가능한 해결에 관한 것이었습니다. 규칙을 강제하려고 사용자가 노드를 운영하는 것이 그 시스템의 핵심 혁신이 아니었고, 작업증명 채굴이 핵심 혁신이었습니다. 채굴자들은 거래의 순서를 결정했습니다. 작은 블록 지지자들이 주장하기로는, 바로 이런 맥락에서 백서의 마지막 줄을 평가해야 했습니다. 그러나 백서에 나오는 그 두 인용은 다소 서로 모순되는 듯 보입니다.

많은 사람에게 비트코인이 작동하는 방식에 대해 근본적으로 다른 구상들이 있는 듯 보였습니다. 그러나 이런 잠재적 문제는 블록 크기 전쟁에서 반드시 직접 문제를 일으켜야 했던 것은 아니었습니다. 무엇보다 큰 블록 지지자들이 정말 원한 것은 더 큰 블록이었습니다. 그들은 블록 크기에 대해 채굴자들에게 자유를 주길 원했습니다. 그것이 채굴자들이 한도에 투표하는 BIP 100 같은 체계 아래에서든, 비트코인 프로토콜 규칙에서 블록 크기 제한을 완전히 없애는 것으로든 말입니다. 대신 이 문제를 둘러싸고 업계에 혼란이 있었고, 큰 블록 지지자들은 아무런 자격 조건도 달지 않고 해시레이트 다수가 거의 무엇이든 할 수 있다고 자주 주장했습니다. 이런 초점과 명확성의 부족은 큰 블록 진영에 큰 해를 입혔습니다. 그것으로 사용자를 자기 편으로 끌어들이기가 훨씬 어려워졌습니다. 다수 채굴자가 지지하는 하드포크 블록 크기 제한 인상이 있을 경우, 블록 크기 제한을 높이기 때문에 사용자들이 새로운 큰 블록 크기 제한 클라이언트를 설치하리라는 주장은 저에게 매우 말이 되었습니다. 이 점에서 큰 블록 지지자들은 일리가 있었습니다. 그러나 일부 사용자들에게서 비트코인을 훔쳐 채굴자들에게 주는 더 긴 체인을 따르려고 누군가가 새 클라이언트를 내려받아 설치하리라는 주장은 거의 말이 되지 않았습니다. 그런 일이 정말 일어난다면, 큰 블록 지지자들이 네트워크 규칙은 없다는 주장을 곧바로 버리리라는 강한 확신이 저에게는 있었습니다. 따라서 겉으로 드러난 구상의 차이는 보였던 만큼 깊지 않았을 수 있습니다. 큰 블록 지지자들은 그저 더 큰 블록을 원했습니다. 그들은 가장 많은 작업이 쌓인 체인이 비트코인을 정의한다는 이런 주장을 그것이 자신들의 대의에 도움이 된다고 생각했기 때문에 내세웠습니다.

Brian은 블로그 글에서 이어서 Bitcoin XT에 대한 Coinbase의 계속되는 지지를 표했습니다:

저는 BitcoinXT가 저희가 만족할 만한 여러 좋은 제안 중 하나라고 생각하지만, 사람들은 그 이상으로 깊이 읽어서는 안 됩니다(저희는 실제 운영에서 bitcoin core, XT, 저희 규모에서 작동하도록 저희가 직접 쓴 custom node를 포함한 다양한 노드 종류를 운영하고 있으며, 앞으로 BitcoinUnlimited 같은 다른 것들을 아마 추가할 것입니다)

이 블로그와 설명 이전에, Brian은 Bitcoin XT 지지를 표하는 트윗들(이제 삭제됨)을 올렸습니다. 그 직후 Coinbase는 Bitcoin.org 웹사이트의 추천 서명 장치에서 제외되었습니다. 이 웹사이트는 비트코인에 관한 주요 정보원 중 하나였고, 원래 Satoshi가 세운 웹사이트였습니다.47 이 공격적인 조치는 Bitcoin Reddit의 운영 정책과 매우 비슷했습니다. 그것은 큰 블록 지지자들을 격분시켰고, 그들은 그것이 쪼잔하고 유치하며 분열을 조장한다고 믿었습니다. 반면 작은 블록 지지자들은 Coinbase가 비트코인에서 알트코인으로 바꿀 의도를 사실상 알렸다고 선언했습니다. 따라서 그들은 혼란을 일으킬 수 있으니 비트코인 웹사이트에 더는 올라서는 안 된다고 믿었습니다. Reddit 검열 때와 마찬가지로, 이 행동은 큰 블록 지지자들의 결의를 더욱 굳게 하고 공동체를 더 나누는 듯 보였습니다.

12월 말, 브라이언이 비트코인 XT에 대해 계속 지지를 보내는 것에 많은 사람들이 놀란 듯했습니다. 이 시점에 그 아이디어는 거의 사장된 것처럼 보였기 때문입니다. 대부분의 채굴 풀은 8 MB로의 증가가 너무 크다고 밝혔습니다. 같은 블로그 글에서 브라이언은 채굴자들의 블록 크기에 대한 선호를 보여주는 엑셀 스프레드시트의 스크린샷을 포함했습니다. 그 스크린샷은 상위 3개 채굴 풀이 모두 비트코인 XT를 반대했음을 보여주었습니다. 채굴자들이 8 MB에 동의한 지 6개월 만에 이 문제에 대한 의견이 바뀌었습니다. 이제는 단순하고 더 보수적인 2 MB로의 증가가 안건에 올랐고 추진력을 얻는 듯했습니다.

2016년 1월 14일, 블록 크기 전쟁에서 또 하나의 중대한 순간이 있었습니다. 비트코인 XT의 주요 지지자인 마이크 헌은 블록 크기 문제에 진전이 없는 것에 크게 좌절하여 비트코인이 실패한 실험이라고 선언하고 자신이 가진 모든 비트코인을 팔겠다고 발표했습니다.48 마이크는 이렇게 주장했습니다:

그 결과 벌어진 내전으로 코인베이스는, 미국에서 가장 크고 가장 잘 알려진 비트코인 신생기업인데도, “잘못된” 편을 들었다는 이유로 공식 비트코인 웹사이트에서 지워지고 커뮤니티 포럼에서 추방당했습니다. 커뮤니티의 일부가 수백만 명의 사용자를 이 통화에 입문시킨 사람들을 악의적으로 공격하고 있다면, 상황이 정말 심각해졌다는 것을 알 수 있습니다.

마이크 헌의 이른바 “분노의 탈퇴”는 많은 언론 매체에서 소개되었고, 비트코인 가격이 US$432에서 약 US$388로 10퍼센트 폭락한 원인이 된 듯했습니다.

마이크의 발표 며칠 뒤인 2016년 1월 16일, 지한 우는 다음과 같이 트윗했습니다:

마이크 헌 패배자는 중국 비트코인 사용자들에 대해 인종차별적이고 부당한 의견을 많이 표출했습니다. 자신이 충분한 지지를 얻지 못한 이유를 설명하고 있습니다.49

지한 우는 채굴 업계에서 가장 영향력 있고 중요한 인물 중 한 명이었습니다. 그는 채굴기를 생산하고 자체 채굴 농장을 보유하며 채굴 풀을 운영하던 중국 기업 비트메인의 공동 최고경영자이자 공동 창업자였습니다. 지한 우는 마이크의 분노의 탈퇴에 분명히 화가 나 있었습니다. 그러나 지한 우가 곧 큰 블록 지지자들 진영의 주도적 인물로 자리 잡게 된다는 점에서 이 비판은 다소 아이러니합니다. 지한 우의 마이크 인종차별 주장에 대해서는 저에게는 이상하게 느껴졌습니다. 제가 마이크와 교류한 모든 과정에서는 그런 모습이 전혀 드러나지 않았기 때문입니다. 반면에 일부 큰 블록 지지자들은 저에게 직접적으로 반중국적인 발언을 한 적이 있었습니다. 예를 들어 그들은 XT에 대한 지지 부족을 억압적인 현상 유지에 대한 중국의 충성 탓으로 돌리고 중국의 공산당에 대한 넓은 지지와 견주었습니다. XT 지지 부족에 대한 이러한 설명은 제 관점에서는 터무니없고 받아들일 수 없는 주장이며, 이 분야에 만연했던 확증 편향에서 비롯된 것입니다. 마이크가 이러한 견해를 표명했을 가능성은 있지만 가능성이 낮습니다. 다음 날 마이크는 포럼 글에서 중국 채굴자들과 격렬한 전화 통화를 했다고 밝혔습니다. 이러한 통화는 잘 풀리지 않았을 가능성이 크며, 이것이 인종차별 비난을 불러온 원인일 수 있습니다. 그 글은 또한 비트코인 XT의 한도로 8 MB가 원래 선택된 이유도 설명합니다. 8은 중국에서 행운의 숫자입니다.

왜 8입니까? 중국어로 “번영”이나 “부”와 발음이 같기 때문입니다:

중국 비트코인 커뮤니티에서는 이런 말이 항상 등장합니다. 따라서 이 선택은 분명히 어떤 종류의 과학적 분석에 근거한 것이 아니었습니다. 비트코인 프로토콜 상수가 운율에 따라 결정된다는 것은 분명히 창피한 일이었겠지만, 그럼에도 불구하고 우리는 타협하고 그렇게 했습니다.

코어가 이제 수정된 BIP 101을 거부한 뒤, 개빈과 저는 함께 XT를 내놓았습니다. 이 시점에 채굴자들은 태도를 바꾸었습니다. 그들은 코어를 제외한 어떤 것도 절대 실행하지 않겠다고 선언했습니다. 마침표, 이야기는 끝이라는 것이었습니다. 이러한 “요구사항”은 이전에는 명시된 적이 없었습니다. 그들과 직접 대화한 내용(저는 중국 채굴자들을 포함해 전 세계 채굴자들과 여러 차례 전화 통화를 했습니다)과 그들의 공개 성명 모두에서, 그들은 코어에 대한 충성이 절대적이며 우리가 XT에 어떤 변경을 가하더라도 절대 실행하지 않겠다는 점을 분명히 했습니다. 따라서 더 타협하는 것은 무의미했습니다.50

XT의 관에 마지막 못이 박힌 바로 이 시점에, 큰 블록 지지자들은 결집할 새로운 명분이 필요했습니다. 더 큰 블록을 위한 다음 시도는 비트코인 클래식이라고 불렸습니다.51 이는 2 MB 한도로의 단순한 일회성 상향이었으며, 비트코인 XT에 포함된 8,000 MB보다 훨씬 온건하고 합리적인 제안이었습니다. 이번에는 마이크가 아니라 개빈이 주도 개발자가 되었습니다. 제프 가르직도 이제 이 제안을 지지했고 클래식 웹사이트에 개발자로 이름을 올렸습니다. 클래식은 블록 크기에 대한 훨씬 온건한 접근 덕분에 XT보다 성공 가능성이 더 높아 보였습니다.

거의 모든 채굴자와 주요 업계 관계자들이 2 MB로의 일회성 상향에 동의하는 듯했습니다. 반면에 선례가 만들어졌습니다. 비트코인 합의 규칙을 제거하려는 시도가 막 실패했고, 이제 큰 블록 지지자들이 같은 일을 다시 시도하고 있었습니다. 이는 작은 블록 지지자들에게 어느 정도 희망을 주는 듯했습니다. 비트코인 채굴자 조너선 투밈은 스케일링 홍콩에서 2 MB가 안전한 한도라고 주장했고, 그는 비트코인 클래식의 지지자였습니다. 작은 블록 지지자들은 이 코인에 “투밈코인”이라는 별명을 붙였습니다.52 이는 비트코인 XT가 마이크와 연결되었던 것과 같은 방식으로 클래식을 조너선 투밈과 연결하려는 시도의 일부였을 수 있습니다. 비트코인 클래식은 2016년 2월 10일에 공식 출시되었습니다.53

비트코인 클래식의 활성화 방식은 비트코인 XT와 거의 동일했고 개선된 점이 없었습니다. 사용자에게 클라이언트 실행을 권하기 전에 넓은 합의를 얻으려는 노력도 없었습니다. 실제로 큰 블록 지지자들은 그렇게 하기를 원하지 않았습니다. 큰 블록 지지자들은 더 큰 블록을 원했을 뿐만 아니라 작은 블록 지지자들이 주장한 활성화 방식을 경멸하는 듯했습니다. 이는 신뢰 부족 때문이었고, 검열과 작은 블록 지지자들의 다른 공격적 행위라고 여겨진 것에 대한 분노 때문이기도 했습니다. 따라서 비트코인 클래식은 비트코인 XT가 사용했던 75퍼센트 채굴자 활성화 기준을 그대로 유지했습니다. 이는 저에게는 전술적 실수로 보였습니다. 더 나은 안전 기능을 갖춘 더 온건한 활성화 방식을 선택했다면, 큰 블록 지지자들이 작은 블록 진영을 분열시키고 이 갈등에서 승리자로 부상할 기회가 되었을 것입니다.

일반적으로 작은 블록 지지자들은 여러 이유로 75퍼센트 기준을 반대했습니다. 블록 헤더의 깃발은 모두가 업그레이드할 준비가 되었음을 보여주는 안전 신호 장치로 여겨졌습니다. 그들의 생각에 업그레이드 자체는 논란이 되거나 투표에 부쳐질 대상이 아니었습니다. 2012년 4월, P2SH 소프트포크는 55퍼센트 기준으로 활성화되었습니다. 그러나 이 업그레이드가 이루어진 뒤, 업그레이드하지 않은 45퍼센트의 채굴자들이 활성화 이후 몇 개월 동안 유효하지 않은 블록을 만들었습니다. 이는 문제로 여겨졌고 따라서 새로운 95퍼센트 기준이 선택되어 그 이후로 계속 사용되었습니다. 큰 블록 지지자들에게 채굴자의 깃발 표시는 투표나 의사결정 과정이었습니다. 이러한 관점에서는 75퍼센트가 강한 다수처럼 보였고, 95퍼센트는 비현실적인 목표로 보였습니다. 이에 더해 큰 블록 지지자들은 75퍼센트가 더 긴 체인을 만들기에 충분한 해시율이라고 생각했습니다. 그들의 생각에 51퍼센트면 네트워크를 통제하기에 충분했고 75퍼센트는 불필요하게 큰 완충을 의미했습니다.

저는 작은 블록 지지자들이 의견을 파악하기 위해 채굴자 투표를 반대한 것이라고 생각하지 않습니다. 그러나 채굴자들의 의견을 파악하는 것과 합의 규칙 변경을 활성화하는 블록 헤더의 깃발 사이에는 차이가 있습니다. 작은 블록 지지자들은 이러한 깃발을 네트워크 보안의 핵심 부분으로 여겼고, 활성화와 제안에 대한 채굴자 투표를 결합하는 것은 위험하고 부적절하다고 보았습니다.

갈등의 이 시점에 큰 블록 지지자들이 깨닫지 못한 것은 그들이 선택한 활성화 방식이 자신들의 가능성을 크게 떨어뜨리고 있었다는 점입니다. 이는 마치 전투에 나서면서 자신의 한 손을 등 뒤로 묶는 것과 거의 같았습니다. 큰 블록 지지자들은 블록 크기 한도를 높이려 했다는 점을 기억하십시오. 기존 규칙은 블록이 1 MB 이하여야 한다는 것이었고, 그들은 이를 2 MB 이하로 바꾸려 했습니다. 따라서 작은 블록 규칙은 큰 블록 규칙의 부분집합이며, 이는 비대칭을 만들었습니다. 하드포크가 활성화되어 네트워크가 분할되면, 큰 블록 노드들은 작은 블록 체인을 유효하다고 여기겠지만, 작은 블록 노드들은 큰 블록 체인을 유효하지 않다고 여길 것입니다. 논쟁적 분할이 일어나면 이러한 비대칭은 작은 블록 지지자들에게 유리함을 만들었습니다. 이는 작은 블록 체인이 언젠가 작업증명 선두를 차지하면 큰 블록 체인이 존재 자체가 사라질 수 있다는 뜻이며, 이를 소멸이라고 합니다. 특히 큰 블록 체인이 채굴자의 압도적 다수를 가졌다면 큰 위협처럼 들리지 않을 수 있지만, 분할 시점에서 상황을 고려해야 합니다. 우연히 1 MB를 넘는 첫 블록이 만들어질 때 작은 블록 체인이 선두를 차지하면, 큰 블록 체인을 매우 빠르게 존재하지 않게 만들 수 있습니다. 채굴자들이 다시는 큰 블록을 만드는 것을 두려워할 수 있기 때문에 이는 큰 블록 측에 치명적인 영향을 미칠 수 있었습니다.

이를 금융 시장의 관점에서 고려하면 상황의 비대칭은 잠재적으로 훨씬 더 중요해집니다. 이는 금융 투기꾼들이 작은 블록 측의 코인을 지지하고 큰 블록 측의 코인을 공매도할 기회를 만들었습니다. 이는 큰 블록 코인의 가격은 내리고 작은 블록 코인의 가격은 올리는 영향을 미쳐, 채굴자들이 더 높은 채굴 보상을 얻기 위해 작은 블록 체인으로 전환하도록 유도할 것입니다. 이는 결국 큰 블록 체인을 완전히 소멸시키고 파괴하여 투기꾼들에게 큰 이익을 줄 수 있었습니다.

이 문제는 단순한 해결책이 있었습니다. 활성화 방식에서 활성화 시점의 첫 블록이 1 MB보다 크도록 요구하면, 어떤 체인도 소멸에 취약하지 않은 깔끔한 분할이 이루어질 수 있었습니다. 그러나 이를 큰 블록 지지자들과 논의했을 때, 큰 블록 측에 대한 지지가 압도적이므로 문제가 아니라는 말을 들었습니다. 큰 블록 지지자들은 또한 해시율 다수가 비트코인을 정의한다고 믿었고, 이러한 체크포인트를 포함하는 것은 이러한 관점을 훼손한다고 보았습니다. 마치 큰 블록 이념이 그들의 체인을 더 취약하게 만드는 듯했습니다. 그러나 저명한 작은 블록 지지자 한 명은 저와 이 문제를 논의했습니다. 그는 이 문제를 조용히 두는 것이 가장 좋으며, 적이 큰 실수를 저지르고 있을 때는 방해하지 않는 것이 낫다고 설명했습니다. 일부 작은 블록 지지자들은 이러한 약점을 가진 큰 블록 체인이 출시될 경우에 대비한 비상 수단으로 이 잠재적 도구를 남겨 두는 것을 선호했습니다. 전쟁이 진행되면서 큰 블록 지지자들은 결국 이 교훈을 배웠고 체크포인트를 포함한 깔끔한 분할 방식을 채택했습니다. 그러나 이를 이해하는 데 2017년 여름까지 걸렸습니다.

비트코인 클래식(비트코인 XT와 함께)은 스스로 만든 또 다른 불리함을 안고 있었는데, 위에서 언급한 비대칭과 결합되어 상황을 더욱 악화시켰습니다. 바로 75퍼센트 이동식 활성화 구간이었습니다. 앞에서 언급했듯이 비트코인은 소프트포크를 활성화하기 위해 95퍼센트 활성화 기준을 사용했지만, 이는 고정된 2주 기간에 걸쳐 적용되었습니다. 대조적으로 비트코인 클래식 하드포크는 이동식 75퍼센트 구간을 사용했습니다. 이는 연속된 1,000개 블록 기간 중 750개 블록이 클래식에 대한 지지를 표시하면 활성화된다는 뜻이었습니다. 채굴자들이 시간이 지나며 점진적으로 업그레이드한다고 가정해 보겠습니다. 이는 이전 업그레이드에서 확실히 그러했습니다. 유예 기간이 4주에 불과했으므로, 이는 본질적으로 첫 큰 블록이 만들어지는 시점에 약 25퍼센트의 채굴자들이 여전히 작은 블록 체인을 채굴하고 있을 것임을 의미했습니다. 75퍼센트 기준이라도 고정 투표 구간을 사용했다면 적어도 75퍼센트를 넘는 지지가 가능했을 것입니다. 실제로 상황은 더 나빴을 가능성이 큽니다. 느린 도입을 가정하고 채굴자 신호에 대해 통계 분석을 하면, 클래식은 채굴자의 75퍼센트가 업그레이드하기도 전에 이 75퍼센트 기준을 넘을 가능성이 컸습니다. 가장 가능성 큰 시나리오는 29퍼센트 대 71퍼센트 분할이었습니다.54

따라서 이동식 구간은 혼란스러운 분할을 거의 확실하게 일으킬 수밖에 없었습니다. 큰 블록 지지자들은 양손을 등 뒤로 묶고 눈에 안대까지 한 채 전투에 나서겠다고 고집했습니다. 양측의 숫자와 관계없이 가능성 큰 결과는 작은 블록 지지자들의 승리였습니다.

이 이동식 구간은 전혀 불필요해 보였고 일부 비트코인 개발자들이 개빈에게 여러 차례 설명했습니다. 그러나 개빈은 걱정하지 않았습니다. 그의 관점에서는 더 큰 블록에 대한 지지가 압도적이었기 때문입니다. 따라서 이는 중요한 문제가 아니었습니다. 개빈이 이 의견을 듣는 것이 현명했을 수 있습니다. 아주 적은 추가 노력으로도 업그레이드를 최대한 원활하게 만들 가능성을 높이고 더 많은 사람을 자기 편으로 끌어들일 수 있었기 때문입니다. 실제로 개빈은 비트코인 클래식에 대한 지지 수준에 대한 가정에서 틀렸을 수 있었습니다. 저는 조심해서 나쁠 것은 없다고 생각했습니다. 그렇게 하기를 거부하는 모습은 저에게는 예전의 개빈 같지 않았습니다. 예전의 그는 접근 방식에서 더 신중하고 더 열린 마음을 보였습니다. 상황에 대한 좌절감이 어느 정도 그의 판단을 흐리게 했고, 그는 인내심을 잃어가고 있는 듯했습니다. 어쩌면 개빈이 인내심을 잃은 것은 완전히 정당했을 수 있으며, 작은 블록 지지자들의 이러한 우려는 모두 시간 끌기 전술에 불과했을 수 있습니다. 작은 블록 지지자들은 그것에 꽤 능했습니다. 작은 블록 지지자들이 “이 두 가지만 고치면 클래식을 지지하겠다”라고 말한 것도 아니었습니다. 개빈이 이를 고쳤더라도 같은 사람들은 자신들이 찾아낸 클래식의 추가 문제로 넘어갔을 것입니다. 예를 들어 그들은 라이트 클라이언트가 하드포크가 일어났음을 알 수 있도록 블록 헤더를 바꾸라고 요구했을 것인데, 이는 작은 블록 지지자들이 자주 요구한 또 다른 안전 기능이었습니다. 전쟁 중 대부분의 쟁점과 마찬가지로 진실은 아마 중간 어딘가에 있지만, 큰 블록 지지자들이 전쟁 후반에 이러한 우려 중 일부를 마침내 해결했다는 사실은 그들이 이러한 활성화 체계로 자기 편을 해치고 있었다는 주장에 어느 정도 진실이 있음을 시사합니다.

비트코인 Classic의 활성화 방식에 잠재적으로 치명적일 수 있는 이러한 약점들에도 불구하고, Classic은 인기를 얻고 있었습니다. Coinbase와 같은 San Francisco의 Silicon Valley 지원을 받는 벤처 기업들은 거의 모두 Classic을 지지했습니다. 비트코인 Classic의 약점들은 너무 이론적이고 너무 기술적이어서 널리 이해되거나 논의되지 않았습니다. 이 시점에서 큰 블록 지지자들은 기세를 잡고 전쟁에서 승리하고 있었습니다. Bitfury Group과 같은 점점 더 많은 채굴 풀들이 비트코인 Classic을 지지하겠다는 의사를 밝히기 시작했습니다.55 동시에 더 많은 생태계 기업들이 지지를 발표하고 있었습니다. 그러나 실제로 비트코인 Classic 지지를 표시하는 블록 수는 상당히 적었고, Classic 노드를 실행하는 사용자는 많지 않아 보였습니다.

2016년 2월, Satoshi Roundtable이라는 행사가 열렸습니다. 이 행사는 2020년까지 이어진 연례 행사 시리즈 중 두 번째 행사로, 전체장부 분야의 지도자들이 모여 다양한 문제를 논의할 기회를 제공했습니다. 이번 의제는 블록 크기 문제에 의해 지배되었습니다. 저는 이 행사에 참석하지 않았으므로 직접 목격한 설명을 제공할 수 없습니다. 그러나 당시 동료이자 Litecoin 창시자이며 Bobby Lee의 동생인 Charlie Lee와 함께 Brian Armstrong이 참석했습니다. 회의가 끝난 뒤 Brian은 여러 비트코인 Core 개발자들을 비판하고 비트코인 Classic에 대한 지지를 선언하는 블로그 글을 썼습니다. 기억으로는 처음에 그 글은 비트코인 Core에 대해 더욱 신랄했으나, 이는 곧 보다 온건한 글로 수정되었습니다.

제 생각에는, 역설적이게도 현재 비트코인에서 아마도 가장 큰 위험은 과거에 비트코인에 가장 큰 도움이 되었던 것 중 하나입니다. 바로 비트코인 Core 개발자들입니다.

Core 팀에는 지능이 매우 높은 사람들이 있지만, 지난 주말 그들과 함께 시간을 보낸 뒤 팀으로서 매우 우려되는 점들이 있습니다. 그들 중 일부는 의사소통 능력이 매우 부족하거나 성숙하지 못한 모습을 보입니다. 이는 비트코인이 새로운 프로토콜 개발자들을 이 분야로 데려오는 능력을 해쳤습니다. 그들은 ‘충분히 좋은’ 해결책보다 ‘완벽한’ 해결책을 선호합니다. 그리고 완벽한 해결책이 존재하지 않으면, 설령 그것이 비트코인을 위험에 빠뜨리더라도 아무것도 하지 않는 것을 괜찮게 여기는 듯합니다.

우리는 비트코인 프로토콜을 담당할 새로운 팀을 구성해야 합니다. 새로운 개발자들을 커뮤니티에 환영하고, 합리적인 절충을 기꺼이 하며, 프로토콜이 계속 확장되도록 도울 팀입니다. 앞으로 한두 달 안에 이에 대해 더 들으시게 될 것입니다.

비트코인의 성공을 보장하고 싶으시다면, 단기적으로 비트코인 Classic으로 업그레이드하시기를 권합니다

저는 웹 브라우저의 예도 들었습니다. Chrome과 Safari 팀은 치열한 경쟁자이지만, 같은 콘퍼런스에 참석하고 IETF와 표준에 대해 협력합니다. 경쟁하는 많은 기업들도 그 콘퍼런스에 참석했습니다. 그들은 서로 적대적이거나 호전적이지 않았습니다. 우리는 모두 같은 업계에서 일하고 있으며 여러 면에서 친구입니다. 비트코인 프로토콜을 담당하는 여러 팀이 있어도 마찬가지일 것입니다. 시장에서 선택지를 제공하면 진전이 줄어들지 않고 오히려 늘어날 것입니다.56

위 내용은 Brian의 글 중 아마도 가장 논란이 된 부분들을 요약한 것입니다. 이는 일부 비트코인 Core 개발자들에 대한 커져가는 반감과, 비트코인이 그들로부터 벗어나기를 바라는 열망을 분명히 반영했습니다.

Brian은 웹 브라우저에서 경쟁하는 개발 팀의 예, 즉 Chrome 대 Safari를 들었습니다. 물론 작은 블록 지지자들에게 이는 Brian이 상황을 이해하지 못한다는 점을 보여주었습니다. 웹 브라우저에는 전 세계적인 합의 시스템이 없었습니다. 작은 블록 지지자들에게 이 전쟁은 경쟁하는 팀에 관한 것이 아니었습니다. 경쟁하는 네트워크 합의 규칙, 따라서 경쟁하는 코인에 관한 것이었으며, 코인들 사이의 시장 가격과 자금 흐름의 가능성, 그리고 분할이 수반하는 모든 복잡성을 안고 있었습니다. 비트코인 Classic은 사실 경쟁하는 팀조차 아니었습니다. 몇 가지 매개변수만 바뀐, 비트코인 Core와 대체로 같은 코드였습니다. 비트코인을 구현한, 비트코인 Core와는 다른 코드베이스를 가진 경쟁 팀들은 이미 존재했습니다. 이러한 다른 비트코인 클라이언트들은 이를테면 Libbitcoin이나 BTCD처럼 다른 언어로 작성되었습니다. 경쟁하는 코인과 경쟁하는 팀 사이의 구분을 이해하지 못한 것은 큰 블록 지지자들의 결정적인 실수였습니다. 작은 블록 지지자들의 관점에서 큰 블록 지지자들은 더 큰 블록을 원했지만 비트코인이 어떻게 작동하는지나 하드포크를 어떻게 수행하는지 이해하지 못했으므로, 편리한 희생양인 비트코인 Core와 개발 팀에게 좌절감을 표출했습니다.

비트코인 Classic에 대한 채굴자들의 뚜렷한 신호 표시가 부족했음에도 불구하고, 2016년 2월에는 채굴자들이 신호를 보낼 준비를 하고 있는 듯했고 활성화는 실제 가능성으로 보였습니다. 동시에 Classic에 대한 Coinbase의 지지는 이제 확고해 보였습니다. 활성화에 관련된 일부 매개변수와, 큰 블록 지지자들이 제대로 평가하지 못한 작은 블록 지지자들의 결의를 고려할 때, 비트코인은 저에게 중대한 위기와 분할로 향하고 있는 듯했습니다. 전쟁의 이 시점에서 큰 블록 측은 그 어느 때보다 강한 위치에 있었고, 작은 블록 지지자들은 아직 몇 가지 비책을 남겨두고 있었습니다. 비트코인은 파국적인 실패 직전에 있는 듯했습니다.

44

https://www.reddit.com/r/bitcoinxt/comments/3yewit/psa_if_youre_running_an_xt_node_in_stealth_mode/

45

https://blog.coinbase.com/scaling-bitcoin-the-great-block-size-debate-d2cba9021db0

46

https://bitcoin.org/bitcoin.pdf

47

https://github.com/bitcoin-dot-org/Bitcoin.org/commit/7d1cdd94651461ff13ad4ed10b05b2374690fac2

48

https://blog.plan99.net/the-resolution-of-the-bitcoin-experiment-dabb30201f7#.h81ihjioy

49

https://twitter.com/JihanWu/status/688300019003162626

50

https://news.ycombinator.com/item?id=10920902

51

https://archive.is/6QvMJ

52

https://bitcointalk.org/index.php?topic=1330553.0

53

https://github.com/bitcoinclassic/bitcoinclassic/releases/tag/v0.11.2.cl1

54

https://bitcoinmagazine.com/articles/bitcoin-classic-hard-fork-likely-to-activate-at-hashrate-support-1457020892

55

https://twitter.com/valeryvavilov/status/688054411650818048

56

https://blog.coinbase.com/what-happened-at-the-satoshi-roundtable-6c11a10d8cdf

영문 — Chapter 7 – Bitcoin Classic

Chapter 7 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.

Towards the end of 2015, the war was intensifying considerably. There were even waves of distributed denial of service (DDoS) attacks on Bitcoin XT nodes. On December 28, 2015 Reddit user /u/tl212 commented:

I was DDos’d. It was a massive DDoS that took down my entire (rural) ISP. Everyone in five towns lost their internet server for several hours because of these criminals. It definitely discouraged me from hosting nodes.44

This action did seem pretty aggressive and was unjustifiable. It is remarkable that there were reports of attacks so strong that they took down an entire ISP. The attacks did appear to have a material detrimental impact on the Bitcoin XT network and, therefore, to some extent, one could argue they were working. I am not aware of any small blockers with a known identity that supported such unethical behaviour, although some anonymous small blockers appeared to defend the action on BitcoinTalk, referring to it as a “counter attack”. The one thing that the attack did bring to light, however, was the importance of a large, distributed and robust P2P network, something Bitcoin XT had not developed at this point. It was never known who was behind these attacks, although rumours did circulate several months later of a Botnet operator who was paid anonymously in Bitcoin to launch them. The behaviour of the attackers was regarded as unethical even by small blockers, many of whom regarded it as potentially counter-productive, driving people away from their side of the argument. In my view, this is a rare example of a tactical blunder from the small block camp, assuming of course this was a small blocker and not some kind of false flag operation. This war was about persuading people to join one’s chosen side, and such aggressive action was not productive. This form of attack did not prominently feature again in the blocksize war, as far as I am aware.

On January 3, 2016, Brian Armstrong, the CEO of Coinbase (one of the largest spot exchanges in the space and the company with the most impressive VC backing), published a blog in support of larger blocks. Brian also supported Gavin and had controversial views on how to upgrade Bitcoin.

Luckily, bitcoin has a built in upgrade mechanism with an elegant design. If a majority of bitcoin miners “vote” for a particular upgrade then by definition this is the new version of bitcoin. The number of votes each miner gets is proportional to the amount of computational power they are adding to the network (so votes can’t be faked).45

The view that whatever chain had the most hashpower behind it was defined as Bitcoin did not seem to make much sense to the small blockers. To them, Bitcoin nodes did enforce certain rules; a block had to comply with these rules or it would be ignored. To the small blockers, this was a critical part of how Bitcoin worked. If miners just tried to change the rules like that, it would cause a split in the chain and result in a new coin. The coin following the original rules would continue to be Bitcoin.

Small blockers tended to see full validating nodes as important in regards to enforcing protocol rules, while to large blockers this was not the case at all. To the large blockers, most users did not run fully validating nodes, they typically ran light nodes. However, even in this large blocker vision, where users didn’t have full nodes, they still had wallets. All user wallets, even though they don’t enforce all the protocol rules, still enforce some of the rules. Bitcoin had all kinds of rules and conventions, not just the blocksize. For instance, transaction formats, signatures approving spending, a Merkle tree structure, a block header format etc, etc. Surely Brian and the large blockers were not arguing that anything with more computational power behind it, even just a chain of hashes without any other transaction-related data, would or could be defined as Bitcoin? Even in the large blocker world view, where people only ran light nodes, blocks still had to comply with some rules.

Perhaps a more favourable interpretation of Brian’s argument is that miners were free to do as they wished within the protocol, except for the rules imposed on them by the light wallets. In that context, this larger block narrative makes more sense. This may have excluded the blocksize limit from the rules, however different light wallets enforce different subsets of the rules. Therefore, there would have been a grey area in drawing the line between what miners can control and what they cannot. Small blockers disagreed with this. They required strong clarity with respect to what was a network rule and what was not, to ensure there was always little doubt as to which was the longest valid blockchain.

I often tried to explore this topic with some of the large blockers. I asked them questions like: what happens if the miners create new inflation above the 21 million supply limit and gave these coins to themselves; if that chain had more work, would that be Bitcoin? Typically, they responded by saying something like: “Miners would never do that”; or “Bitcoin is about game theory and incentives, if miners were to do that the price would fall”; or “the game theory is structured such that miners would not do that”. If miners did that, all the nodes and wallets would regard that chain as invalid, I proclaimed. If miners breached the supply cap, you would not see those blocks. Large blockers typically responded to this by claiming that “nodes do not matter”; to them Bitcoin is defined at the most work chain, whether their nodes were following it or not. If a user wanted to be part of Bitcoin, they may need to download and install new node software to make sure they followed the most work chain, whether it breached some rules or not.

It was not clear to me who was correct here. It depended on how people behaved. If everyone behaved like the large blockers and downloaded new clients to follow the longest chain, then yes, they were correct. However, if everyone behaved like the small blockers and stubbornly kept their original client, then the small blockers were correct. This was an open question and nobody could be 100 percent certain of the right answer. The extremists on both sides appeared convinced that they were correct, however they were both being closed-minded. Both sides had built a mental model that assumed people would behave just like them. The reality, of course, was that different people had different ideas and visions and would therefore behave differently. The larger blocker visions appeared to rely on almost everyone agreeing with them, while the small blocker vision appeared to require any significant minority to agree with them. From this perspective, it appeared to me as if the small blockers were mostly correct. Some people would upgrade their clients, and some would not, therefore we may have a network split.

This different vision with respect to the role of full nodes in enforcing the rules led to further confusion. Small blockers often said they opposed a blocksize limit increase, as it would make the cost of running a node too high, which could reduce the full node count and cause centralisation. Large blockers wrongly interpreted this to mean that small blockers were concerned that there would be not enough relay nodes, and therefore the peer-to-peer communication network, where transaction data is propagated around, may be too weak. Communication would therefore be centralised around a few large hubs. In general, this was not the type of centralisation that small blockers were concerned about. They were more worried about the idea that not enough end users would be able to run Bitcoin clients which fully validated all the protocol rules, which could undermine the decentralisation of the enforcement of the protocol rules. The large blockers never seemed to even understand this concern and believed that it was not necessary that end users needed the capability to run these full node clients. The risk that larger blocks would therefore make it prohibitively expensive to run full nodes, was not a significant concern to the larger blockers. These different visions essentially meant both sides were talking at each other, rather than building up an understanding of the others’ point of view.

This confusion was often mingled with a similar misconception about how Bitcoin worked. Namely, the popular idea that a 51 percent mining attack could steal user funds, even without a valid signature being provided by the spender. Miners cannot do that, at least in the small block world; all miners can do in a 51 percent attack is double spend transactions where they have a valid signature for two conflicting transactions. This is not to say that all large blockers didn’t understand this; they did to some extent. It is just that this was a new area of science being explored for the first time. There was considerable uncertainty from both sides on this issue, and it takes time to build up an understanding. The lack of clarity in this area reduced the capability of the large blockers to achieve their objectives. Had the larger blockers more succinctly focused on removing the blocksize limit from the protocol rules, rather than creating confusion over whether such rules even existed, they may have been more successful.

Brian’s view, that the hashrate defined the chain, appeared to be reinforced by the last sentence in Bitcoin’s whitepaper, which read as follows:

They vote with their CPU power, expressing their acceptance of valid blocks by working on extending them and rejecting invalid blocks by refusing to work on them. Any needed rules and incentives can be enforced with this consensus mechanism.

This quote was often circulated and repeated by the large blockers. However, it is not clear that Satoshi shared this vision at all. Indeed, the whitepaper also states:

We consider the scenario of an attacker trying to generate an alternate chain faster than the honest chain. Even if this is accomplished, it does not throw the system open to arbitrary changes, such as creating value out of thin air or taking money that never belonged to the attacker. Nodes are not going to accept an invalid transaction as payment, and honest nodes will never accept a block containing them. An attacker can only try to change one of his own transactions to take back money he recently spent.46

Above, Satoshi makes clear that nodes do enforce certain rules. It is important to judge the whitepaper in context: it was primarily about a potential solution to the double spend problem. Users running nodes to enforce the rules was not the key innovation of the system; proof-of-work mining was. Miners decided on the order of transactions. It is in this context, small blockers argued, that one should assess the last line of the whitepaper. However, those two quotes in the whitepaper do seem somewhat contradictory.

To many, it appeared as if there were some fundamentally different visions as to how Bitcoin worked. However, this potential issue did not necessarily have to directly cause problems in this blocksize war. Above all, what the large blockers really wanted was larger blocks. They wanted to give miners free rein with respect to the blocksize, whether that was under a BIP 100-like system where miners vote for the limit, or by removing the blocksize limit altogether from the Bitcoin protocol rules. Instead, there was confusion in the space around this issue, with large blockers often claiming the majority of the hashrate was able to do almost anything, without adding any qualifications. This lack of focus and clarity greatly damaged the large block camp. It made it much harder for them to recruit users to their side. The argument that in the event of a hardfork blocksize limit increase being supported by a majority of miners, users would install a new large blocksize limit client, because it increased the blocksize limit, made a lot of sense to me; the large blockers did have a point here. However, the argument that anyone would download and install a new client to follow a longer chain that stole coins from some users and gave it to the miners made little sense. If that really happened, I had a high degree of confidence that the larger blockers would quickly abandon their claim that there were no network rules. Therefore, perhaps the apparent difference of vision was not as deep as it appeared. Large blockers just wanted larger blocks. They made this argument about the most work chain defining Bitcoin as they thought it helped their cause.

In his blogpost, Brian went on to express Coinbase’s continued support for Bitcoin XT:

I think BitcoinXT is one of several good proposals that we’d be happy with, but people shouldn’t read much into it beyond that (we are running a variety of node types in production including bitcoin core, XT, a custom node we wrote which works at our scale, and we will probably add others in the future like BitcoinUnlimited)

Before this blog and explanation, Brian had put out tweets (now deleted) expressing support for Bitcoin XT. Almost immediately after that, Coinbase was removed as a recommended wallet on the Bitcoin.org website. This website was one of the main information sources on Bitcoin and the website was originally set up by Satoshi.47 This aggressive action was very similar to the moderation policy on the Bitcoin Reddit. It infuriated larger blockers, who believed it was petty, childish and divisive. On the other hand, smaller blockers proclaimed that Coinbase had effectively announced its intention to switch from Bitcoin to an altcoin. Therefore, they believed it should no longer be listed on a Bitcoin website, which would cause confusion. Just like the Reddit censorship, this act appeared to only strengthen the resolve of the larger blockers and further divide the community.

In late December, many appeared surprised by the continued support Brian provided to Bitcoin XT, as the idea seemed almost dead at this point, with most mining pools stating that the increase to 8 MB was too large. In the same blogpost, Brian included a screenshot of an excel spreadsheet from miners, showing their preferences with respect to the blocksize. The screenshot indicated that the top three mining pools all opposed Bitcoin XT. Opinions on the matter had changed in the six months since miners had agreed to 8 MB. A simple, more conservative increase to 2 MB was now on the agenda and appeared to be gathering momentum.

On January 14, 2016 there was another seminal moment in the blocksize war. Mike Hearn, the primary proponent of Bitcoin XT, was so frustrated by the lack of progress on the blocksize issue that he declared Bitcoin a failed experiment and announced he was selling all his coins.48 Mike opined:

The resulting civil war has seen Coinbase — the largest and best known Bitcoin startup in the USA — be erased from the official Bitcoin website for picking the “wrong” side and banned from the community forums. When parts of the community are viciously turning on the people that have introduced millions of users to the currency, you know things have got really crazy.

Mike Hearn’s apparent “ragequit” was featured in many media outlets and appeared to have caused a 10 percent collapse in the Bitcoin price, from US$432 to around US$388.

A couple of days after Mike’s announcement, on January 16, 2016, Jihan Wu tweeted the following:

Mike Hearn Loser expressed lots of racist and unfair opinion against China bitcoiners. Explaining why he could not get enough support.49

Jihan was one of the most influential and significant players in the mining industry. He was the co-CEO and co-founder of Bitmain, a Chinese company that produced mining machines, had its own mining farms and operated mining pools. Jihan was clearly angry at Mike’s ragequit, however the criticism is somewhat ironic as Jihan would soon establish himself as the leading player in the large block camp. As for Jihan’s assertion about Mike’s racism, this seemed strange to me, as in all my interactions with Mike this had not come across at all. On the other hand, some large blockers had expressed some anti-Chinese comments to me directly. For instance, they blamed the lack of support for XT on Chinese loyalty to the oppressive status quo and drew parallels to the widespread support of the communist party in China. This explanation for a lack of XT support was ridiculous and outrageous in my view, and stems from confirmation bias, which was rampant in the space. It is possible Mike may have expressed this kind of view, but unlikely. The following day, Mike indicated in a forum post that he had had heated phone conversations with Chinese miners. These calls are likely not to have gone well, and this may have been what caused the racism accusations. The post also explains why 8 MB was originally chosen as the limit for Bitcoin XT; eight is a lucky number in China.

Why eight? Because it’s a Chinese homonym for “prosper” or “wealth”:

It crops up in the Chinese Bitcoin community all the time. So this choice obviously wasn’t based on any kind of scientific analysis. Having Bitcoin protocol constants be decided by rhymes would obviously have been an embarrassment, but nonetheless, we compromised and did it.

After Core rejected the now-modified BIP 101, Gavin and I released XT together. At this point the miners changed their tune. They announced they would never run anything except Core, period, end of story. This “requirement” had not been specified before. From both speaking to them personally (I have had various phone calls with miners around the world, including miners in China) and their public statements, they made it clear that their loyalty to Core was absolute and no matter what changes we made to XT, they would never run it. Thus compromising further was pointless.50

It is around this point, when the last nail had been put in the XT coffin, that the large blockers needed a new cause to rally around. The next attempt at larger blocks was called Bitcoin Classic.51 This was a simple, one-off jump to a 2 MB limit, a much more moderate and reasonable proposal than the 8,000 MB which was included in Bitcoin XT. This time, Gavin would be the lead developer, rather than Mike. Jeff Garzik now also supported the proposal and was listed on the Classic website as a developer. Classic appeared to have a better chance of success than XT, with its much more moderate approach to the blocksize.

Almost all the miners and major industry players appeared to agree with a one-off jump to 2 MB. On the other hand, a precedent had been set, a campaign to remove a Bitcoin consensus rule had just failed and now the large blockers were trying the same thing again. This appeared to give the small blockers some hope. Bitcoin miner Jonathan Toomim had argued at Scaling Hong Kong that 2 MB was a safe limit, and he was an advocate of Bitcoin Classic. Small blockers nicknamed the coin “ToomimCoin”,52 perhaps as part of an attempt to associate Classic with Jonathan Toomim, in the same way Bitcoin XT had been linked to Mike. Bitcoin Classic was officially released on February 10, 2016.53

Bitcoin Classic’s activation methodology was almost identical to Bitcoin XT, with no improvements. There was also no effort to obtain widespread consensus before encouraging users to run the client. Indeed, the large blockers did not want to do this. Not only did the large blockers want larger blocks, but they also appeared to despise the activation methodology advocated by the smaller blockers. This was down to a lack of trust, as well as anger at the censorship and other perceived aggressive behaviour from the small blockers. Bitcoin Classic therefore kept the 75 percent miner activation threshold which Bitcoin XT has used. This appeared to me to be a tactical blunder. Had they chosen a more moderate activation methodology, with better safety features, it would have been an opportunity for the large blockers to split the small block camp and potentially emerge as victors in this conflict.

In general, the small blockers opposed the 75 percent threshold for several reasons. The flag in the block header was considered a safety signalling mechanism, indicating that everyone was ready to upgrade. In their minds, the upgrade itself is not meant to be controversial or voted on. In April 2012, the P2SH softfork activated with a 55 percent threshold. However, after this upgrade occurred, the 45 percent of miners who had not upgraded produced invalid blocks for several months after the activation. This was considered a problem and therefore a new 95 percent threshold was selected, which has been used ever since. To the large blockers, the miner flagging was a vote or decision-making process. In such a scenario, 75 percent seemed a strong majority, while 95 percent appeared an unrealistic target. In addition to this, the larger blockers thought that 75 percent was easily enough hashrate to build the longer chain. In their mind, 51 percent was enough to control the network and 75 percent represented an unnecessarily large buffer.

I do not think small blockers opposed miner votes in order to gauge their opinion. However, there is a distinction between gauging the opinion of miners and flags in the block header which activate changes to the consensus rules. Small blockers considered these flags as a critical part of network security and combining activation with miner voting over proposals was dangerous and inappropriate.

What the large blockers didn’t realise at this point in the conflict was that their chosen activation methodology was significantly hampering their own chances. It was almost akin to going into battle and tying one’s own hand behind one’s back. Remember, the large blockers were trying to increase the blocksize limit: the prevailing rule was that blocks needed to be 1 MB or smaller, and they wanted this to be 2 MB or smaller. The smaller block rule is therefore a subset of the larger block rule, and this created asymmetry. If the hardfork activated and the network split, the larger block nodes would consider the smaller block chain as valid, while the smaller block nodes would consider the larger block chain as invalid. In the event of a contentious split, this asymmetry created an advantage for the small blockers. What this means is that, if the smaller block chain ever took the proof-of-work lead, the larger block chain could vanish from existence, known as a wipeout. This may not sound like a large threat, especially if the larger block chain has a super majority of miners, but one needs to consider the situation from the point of the split. If, by chance, when the first block over 1 MB is produced, the smaller block chain took the lead, it could wipe the larger block chain out of existence quite quickly. This could have a devastating effect on the larger block side, as miners could be fearful of ever producing a larger block again.

When one considers this from the perspective of financial markets, the asymmetry of the situation becomes potentially even more significant. It created the opportunity for financial speculators to back the coin on the smaller block side and short the coin on the larger block side. This would have the impact of driving the price of the larger block coin down and the smaller block coin up, which would then incentivise miners to switch to the smaller block chain to earn higher mining rewards. This could eventually completely wipeout and destroy the larger block chain, providing the speculators with large profits.

This problem had a simple fix: the activation methodology could require that the first block at the activation point was greater than 1 MB, thereby resulting in a clean split where no chain was vulnerable to a wipeout. However, when discussing this with larger blockers, I was told this wasn’t an issue, since support for the larger block side was overwhelming. Large blockers also believed that the hashrate majority defined Bitcoin, and including such a checkpoint undermines this view. It was almost as if the large block ideology made their chain more vulnerable. A prominent smaller blocker however, did discuss this issue with me. He said that it’s best to keep this issue quiet, better to not interrupt an enemy while they are making a major mistake, he explained. Some small blockers preferred to keep this potential tool in the bag as an emergency mechanism to use in the event that a larger block chain with this weakness was launched. As the war progressed, this lesson was eventually learnt by the larger blockers, and they did adopt the clean split approach with a checkpoint. However, it took them until the summer of 2017 to appreciate this.

Bitcoin Classic (along with Bitcoin XT) had another self-imposed disadvantage, which, combined with the asymmetry mentioned above, made the situation even worse for them: the 75 percent rolling activation windows. As mentioned before, Bitcoin had used a 95 percent activation thresholds to activate softforks, but these were over fixed two-week periods. In contrast, the Bitcoin Classic hardfork had a rolling 75 percent window, meaning that if 750 blocks flagged support for Classic in any consecutive 1,000 block period, it would activate. Let’s assume that miners gradually upgrade over time, which was certainly the case with previous upgrades. Since the grace period was only four weeks this essentially means that, at the time the first large block was produced, approximately 25 percent of the miners would still be mining the smaller block chain. Had fixed voting windows been used, even with a 75 percent threshold, this would have at least allowed the possibility of greater than 75 percent support. Actually, the situation was likely to be even worse. When one did statistical analysis on the miner signalling, assuming slow adoption, Classic was likely to cross this 75 percent threshold before 75 percent of the miners had even upgraded. The most likely scenario was a 29 percent vs 71 percent split.54

The rolling window was therefore almost guaranteed to cause a chaotic split. Large blockers were insisting on going into battle with their hands tied behind their backs and wearing blindfolds too. Regardless of numbers on either side, the likely outcome was a victory for the smaller blockers.

This rolling window seemed entirely unnecessary and was explained to Gavin on numerous occasions by some of the Bitcoin developers. However, Gavin was not concerned by this since, in his view, support for larger blocks was overwhelming. This was therefore not an important problem. It may have been prudent for Gavin to listen to this feedback, since for very little extra effort he could have increased the chances of making the upgrade as smooth as possible and potentially won more people over to his side. Indeed, Gavin could always have been wrong in his assumption of the level of support for Bitcoin Classic. Better safe than sorry, I thought. The refusal to do this did not feel like the old Gavin to me, who appeared more cautious in his approach and more open-minded. It seemed like his frustration with the situation had clouded his judgement to some extent, and he was losing his patience. Perhaps Gavin was totally justified in losing his patience, and perhaps all these concerns from the small blockers were merely stalling tactics. The small blockers were quite good at that. It was not as if the small blockers were saying “just fix these two things and we will support Classic”. Had Gavin fixed this, the same people would have just moved on to additional problems with Classic they had identified. For example, they would have then asked for the block header to change, so that light clients knew the hardfork had occurred, which was another safety feature small blockers often demanded. Like most of these issues in the war, the truth probably lies somewhere in the middle, but the fact that the large blockers finally addressed some of these concerns later on in the war suggests that perhaps there is some truth to the claim that they were damaging their own side with these activation systems.

Despite these potentially disastrous weaknesses in Bitcoin Classic’s activation methodology, Classic was growing in popularity. Almost all the Silicon Valley-backed venture companies in San Francisco, such as Coinbase, backed Classic. The weaknesses in Bitcoin Classic were too theoretical, too technical and not widely understood or discussed. At this point, the larger blockers had the momentum and were winning the war. More and more mining pools, such as Bitfury Group, started to state their intention to support Bitcoin Classic.55 At the same time, more ecosystem companies were announcing their support. However, the number of blocks actually flagging support for Bitcoin Classic was fairly low, and not many users appeared to be running Classic nodes.

In February 2016, an event was held called the Satoshi Roundtable. It was the second in a series of annual events that continued until 2020 which provide an opportunity for leaders in the blockchain space to gather and discuss various issues. The agenda this time was dominated by the blocksize issue. I was not in attendance at this event, so cannot provide a first-hand account. Brian Armstrong did attend, however, along with his colleague at the time, Litecoin founder and brother of Bobby Lee, Charlie Lee. After the conference, Brian wrote a blogpost criticising several Bitcoin Core developers and proclaiming his support for Bitcoin Classic. From memory, initially the post was more scathing against Bitcoin Core, however this was quickly rectified with a more moderate post.

In my opinion, perhaps the biggest risk in bitcoin right now is, ironically, one of the things that has helped it the most in the past: the bitcoin core developers.

The core team contains some very high IQ people, but there are some things which I find very concerning about them as a team after spending some time with them last weekend. Some of them show very poor communication skills or a lack of maturity — this has hurt bitcoin’s ability to bring new protocol developers into the space. They prefer ‘perfect’ solutions to ‘good enough’. And if no perfect solution exists they seem ok with inaction, even if that puts bitcoin at risk.

We need to form a new team to work on the bitcoin protocol. A team that is welcoming of new developers to the community, willing to make reasonable trade offs, and a team that will help the protocol continue to scale. You’ll be hearing more about this over the next month or two.

If you want to ensure Bitcoin’s success, I’d encourage you to upgrade to Bitcoin Classic in the short term

I also gave the example of web browsers. The Chrome and Safari team are fierce competitors, but also attend the same conferences and collaborate with the IETF on standards. Many competing companies were present at the conference as well. They weren’t hostile or combative between each other. We are all working in the same industry and are friends in many ways. It would be the same with multiple teams working on the bitcoin protocol. By providing choice in the market you will get more progress, not less.56

The above is a summary of perhaps the most controversial parts of Brian’s post. It clearly reflected a growing resentment towards some of the Bitcoin Core developers and a desire for Bitcoin to break free from them.

Brian brought up the example of competing developer teams in web browsers, Chrome vs Safari. Of course, to the small blockers this illustrated that Brian did not understand the situation. Web browsers did not have a global consensus system. To small blockers, this war was not about competing teams; it was about competing network consensus rules and therefore competing coins, with the potential of market prices and financial flow between the coins, and all the complexity that a split entails. Bitcoin Classic wasn’t even really a competing team at all. It was largely the same code as Bitcoin Core, with a few parameters changed. There were already competing teams, with a different codebase to Bitcoin Core, that implemented Bitcoin. These other Bitcoin clients were written in different languages, for instance Libbitcoin or BTCD. The failure to appreciate the distinction between competing coins and competing teams was a pivotal mistake from the large blockers. From the small blocker perspective, the large blockers wanted larger blocks but didn’t understand how Bitcoin worked or how to conduct a hardfork, so they let their frustration out on Bitcoin Core and the development team, a convenient scapegoat.

Despite the lack of significant miner signalling for Bitcoin Classic, in February 2016 it felt like miners would be getting ready to signal, and activation looked like a real possibility. At the same time, Coinbase’s support for Classic now looked resounding. Given some of the parameters involved in the activation and the resolve of the smaller blockers, which the larger blockers failed to appreciate, Bitcoin appeared to me to be heading into a major crisis and split. At this point in the war, the larger block side were in a stronger position than they had ever been, while the smaller blockers still had some tricks left up their sleeves. Bitcoin felt on the brink of a catastrophic failure.

44

https://www.reddit.com/r/bitcoinxt/comments/3yewit/psa_if_youre_running_an_xt_node_in_stealth_mode/

45

https://blog.coinbase.com/scaling-bitcoin-the-great-block-size-debate-d2cba9021db0

46

https://bitcoin.org/bitcoin.pdf

47

https://github.com/bitcoin-dot-org/Bitcoin.org/commit/7d1cdd94651461ff13ad4ed10b05b2374690fac2

48

https://blog.plan99.net/the-resolution-of-the-bitcoin-experiment-dabb30201f7#.h81ihjioy

49

https://twitter.com/JihanWu/status/688300019003162626

50

https://news.ycombinator.com/item?id=10920902

51

https://archive.is/6QvMJ

52

https://bitcointalk.org/index.php?topic=1330553.0

53

https://github.com/bitcoinclassic/bitcoinclassic/releases/tag/v0.11.2.cl1

54

https://bitcoinmagazine.com/articles/bitcoin-classic-hard-fork-likely-to-activate-at-hashrate-support-1457020892

55

https://twitter.com/valeryvavilov/status/688054411650818048

56

https://blog.coinbase.com/what-happened-at-the-satoshi-roundtable-6c11a10d8cdf

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