092015–2017
블록 크기 전쟁: 누가 Bitcoin의 규칙을 바꿀 수 있는가
분쟁은 영웅과 악당이 아니라 가득 찬 블록에서 시작됐다. 여러 체인과 실용적 답으로 끝났다. 해시파워나 기업, 개발자 어느 쪽도 혼자 노드가 받아들일 것을 정하지 못한다.
일 메가바이트는 더 빠른 컴퓨터와 괜찮은 벤치마크 하나로 풀 기술 매개변수처럼 보였다. 2015년에는 돈의 미래 형태와 무엇이 Bitcoin인지 말할 수 있는 사람을 둘러싼 다툼이 됐다. 개빈 안드레센과 마이크 헌은 훨씬 큰 블록을 주장했다. 피터르 바일러와 그레고리 맥스웰 같은 개발자는 노드 운영자가 치를 비용을 경고했다. 채굴자와 거래소, 투자자, 익명 사용자가 각자 압력을 보탰다. 블록 크기 전쟁는 한 번의 논쟁이나 두 진영의 결투가 아니었다. 두 해 동안 제안과 최후통첩, 회의, 소프트웨어 배포, 기한이 이어졌고 모든 집단은 영향력을 행사하는 것과 강제하는 것의 차이를 배웠다.
가득 찬 블록과 서로 다른 두 걱정
사용이 늘며 블록은 한계에 다가가고 수수료가 올랐다. 큰 블록 지지자는 비싼 거래가 일상 결제를 밀어내 부자용 네트워크로 만든다고 했다. 신중론자는 데이터와 요구의 급증이 집에서 Full Node를 돌릴 가능성을 약화해 검증을 데이터센터에 집중시킨다고 했다.
둘 다 탈중앙화를 말했지만 한쪽은 거래를 감당할 사람 수, 다른 쪽은 규칙을 독립 검증할 사람 수로 쟀다. Bitcoin XT, Classic, Unlimited는 직접 증설을 약속했고 SegWit 개발은 거래 형식 변경과 공간의 효율적 사용을 찾았다.
일 메가바이트 제한은 자연법도 원래 목표도 아니었다. 사토시가 너무 큰 블록에서 어린 네트워크를 지키려 넣었다. 신성한 상수를 바꿀 수 있느냐보다, 검증이 가장 빠른 연결과 큰 디스크, 긴 초기 동기화 인내를 가진 사람에게 옮겨가지 않으면서 얼마나 빨리 키울지의 다툼이었다. 작은 기술 변경에도 누가 “규칙을 직접 확인했다”고 말할 수 있을지에 대한 장기상이 담겼다.
안드레센의 BIP101은 팔 메가바이트로 뛰고 이후 예측 가능하게 한계를 키우자고 했다. 헌은 Bitcoin XT 클라이언트에 넣고 채굴자와 사용자에게 공개 지지를 요구했다. 둘에게 가득 찬 거래 대기열은 값싼 전자 현금 약속의 위반이었다. 소액 결제에 높은 수수료로 경쟁해야 하면 일상에 들어가기 전에 카드에 진다고 봤다.
반대편도 Bitcoin을 작게 유지하려 한 것은 아니다. 피터르 바일러는 SegWit를 제안했고 그레고리 맥스웰 등은 두 번째 레이어와 바이트의 효율을 말했다. 오늘 큰 블록은 영원히 연결과 저장, 검증 부담을 높이고 집 노드가 비실용적이면 사용자가 남의 서버를 믿게 된다는 걱정이었다. 두 진영 모두 접근성을 지켰지만 거래의 서로 다른 쪽에서 보았다.
뉴욕 합의
2017년 오월 큰 기업과 채굴자 집단이 뉴욕 합의를 발표했다. SegWit2x는 SegWit의 빠른 활성화와 뒤이은 이 메가바이트 기본 블록 Hard Fork를 묶었다. 서명자는 해시파워와 거래량의 큰 비중을 들며 주요 기업의 조정이 다툼을 끝낼 듯 행동했다.
합의는 다른 소프트웨어를 돌리는 사용자를 묶지 못했다. 비판자는 비공개 회의가 네트워크 이름으로 호환되지 않는 변경을 약속한다는 발상을 거부했다. 채굴자는 블록을 제안하고 기업은 이름을 붙여도 노드는 무효라 판단할 수 있다.
원 발표는 22개국 58개 회사와 해시파워 83.28퍼센트를 말했다. 무게 있는 숫자지만 독립 노드와 서명자 서비스 밖에 Bitcoin을 둔 사람의 동의를 측정하지 않았다. SegWit과 뒤의 하드 포크를 묶어 양쪽이 원하는 일부를 얻는 정치 거래도 만들었다. 첫 부분이 활성화되고 둘째가 논쟁으로 남자 묶음 완료를 강제할 기관이 없음이 드러났다.
Digital Currency Group의 설립자 배리 실버트는 뉴욕에서 열린 Consensus 콘퍼런스 기간에 이 합의를 마련했다. 거래소, 지갑 서비스, 결제 업체와 채굴 기업의 대표들이 자리에 모였고, 제프 가직은 SegWit2x 구현을 이끌었다. 오랜 논쟁에 지친 사업자들에게는 성숙한 타협처럼 보였다. 영향력 있는 사람들이 마침내 일정에 합의하고 회사 이름으로 서명했기 때문이다. 하지만 Bitcoin에는 그 서명만으로 의결에 필요한 특별다수를 이룰 수 있는 회원 명부가 없었다.
비판은 이 메가바이트뿐 아니라 결정 방식도 겨냥했다. 애덤 백, 그레고리 맥스웰 등은 짧은 기한의 비호환 변경이 사용자를 기정사실 앞에 둔다고 했다. 서명자는 많은 사람이 거치는 서비스와 다수 해시파워를 통제했지만 남의 집 노드 검증 규칙을 원격 변경하지 못했다. 큰 기업은 무엇을 Bitcoin이라 부를지 선언할 수 있어도 각 노드 소유자는 거부 버튼을 보유했다.
UASF, BIP91, 갈라지지 않은 체인
BIP148은 사용자 활성화 소프트 포크를 제안했다. 팔월 1일부터 참여 노드는 SegWit 신호 없는 블록을 거부한다. 경제적으로 중요한 부분이 다른 곳에 남으면 경쟁 역사나 혼란스러운 재조직이 생길 위험한 압력이었다.
결정일 전 채굴자는 BIP91로 SegWit 잠금 조건을 신호하기 시작했다. 결과를 한 주체에게 돌릴 수 없다. UASF 위협이 유인을 바꾸고 채굴자가 신호를 조정했으며 기존 노드는 호환되는 소프트 포크 규칙을 집행했다. SegWit은 2017년 팔월 24일 활성화됐다.
BIP148 노드는 직접 SegWit을 채굴하거나 남에게 사용을 강제하지 못했다. 기한 뒤 특정 블록 집단을 받지 않겠다고 미리 약속할 뿐이었다. 힘은 경제적 의미를 주는 코인 보유자와 거래소, 상인, 지갑이 따를지에 달렸다. UASF는 명령이 아니라 불복 체인에 해시파워는 있어도 구매자가 줄 수 있다는 신뢰 가능한 가능성에서 효과를 얻은 조정 게임의 공개 약속이었다.
Shaolinfry라는 가명을 쓰는 개발자가 BIP148을 공개했다. 사람들은 UASF라고 적힌 모자를 쓰고 8월 1일을 독립의 날이라고 부르기 시작했다. 하지만 밈 뒤에는 중대한 위험을 감수하는 선택이 있었다. 채굴자들이 지지 신호를 보내지 않은 채 계속 채굴하고 경제 활동의 상당 부분이 BIP148을 따른다면, 거래 이력이 일시적으로 갈라질 수 있었다. 그러면 사용자들은 들어온 송금 중 어느 것이 계속 유효할지 알기 어려웠을 것이다. 따라서 노드를 운영하는 활동가가 건 것은 단순한 구호가 아니라 자신이 안전하게 돈을 받을 수 있는 능력이었다.
제임스 힐리어드의 BIP91은 기한 전 채굴자가 낮은 임계치에서 조정해 SegWit 신호를 잠금할 길을 줬다. 지지가 급증하자 UASF 측은 사용자 압력이 유인을 바꿨다고, 채굴자는 자기 조정을, 뉴욕 합의 서명자는 타협을 강조했다. 한 집단을 제거한 대조 실험는 없다. 다가온 충돌이 모두를 일찍 움직이게 했다는 것은 확실하다.
Bitcoin Cash는 떠나고 SegWit2x는 물러나다
팔월 1일 더 큰 블록과 자체 규칙을 지닌 Bitcoin Cash가 분리됐다. 기존 노드를 다시 쓴 것이 아니라 분기점까지 역사를 공유한 새 비호환 체인이었다. 시장과 사용자는 두 자산을 따로 평가하고 운영할 수 있었다.
뉴욕 합의의 둘째 부분은 십일월 이 메가바이트 하드 포크를 활성화할 예정이었다. 주최자는 깨끗한 업그레이드에 충분한 합의를 얻지 못했다며 십일월 8일 중단했다. 높은 해시파워 신호가 경제가 새 블록을 Bitcoin으로 받는다는 확실함은 아니었다.
분리 순간 두 체인은 과거 역사와 미사용 코인 그림을 공유했다. 분기 전 키 보유자는 조건에 따라 양쪽 자산을 다룰 수 있었다. 이후 각 체인은 다른 미래 블록을 받고 자체 네트워크 효과를 만들었다. 분리는 옛 노드에 유효 거래 정의를 바꾸라고 하지 않고, 다른 규칙 지지자가 선택의 비용과 결과를 지게 했다.
Bitcoin Cash는 더 큰 블록을 지지하는 사람들에게 끝없는 논쟁으로는 얻을 수 없던 것을 제공했다. 자신들의 규칙에 따라 작동하는 체인이었다. 거래소는 거래 기호를 정해야 했고, 지갑은 한 체인의 거래가 다른 체인에서도 실행되는 일을 막는 보호 조치를 다뤄야 했다. 보유자들은 새 코인을 팔지, 보유할지, 아니면 무시할지 결정해야 했다. 논쟁의 일부는 메일링 리스트에서 시장으로 옮겨 갔다. 두 체인의 가격과 해시파워, 실제 사용은 단 한 명의 승자를 정하는 일회성 투표가 아니라 계속 이어지는 선택을 드러내기 시작했다.
SegWit2x는 달랐다. 지지자는 이 메가바이트 체인이 BTC 브랜드를 물려받아 곁가지 아닌 연속이길 원했다. 십일월이 오자 클라이언트 지원도 두 체인을 안전히 다룰 계획도 부족했다. 십일월 8일 마이크 벨시, 웬세스 카사레스, 우지한, 제프 가직, 피터 스미스, 에릭 부어히스가 연기를 발표했다. 더 큰 합의 없이 진행하면 통합하려던 공동체를 분열시킨다고 인정했다.
권력은 사라진 것이 아니라 나뉘어 있다
전쟁은 사용자만의 깨끗한 승리로 그려지지만 결론은 복잡하다. 개발자는 관심과 코드 품질, 채굴자는 블록 순서, 기업은 유동성과 브랜드, 사용자는 소프트웨어와 상대방 선택을 쥔다. 어느 집단도 모든 지렛대를 독점하지 않지만 일부는 훨씬 더 많이 가진다.
Bitcoin은 숫자 하나로 투표하지 않았다. 코드와 공개 논쟁, 사업 결정, 기한, 분열을 감수할 의지로 조정됐다. 조용하지도 싸지도 않았다. 규칙이 남은 것은 다툼이 없어서가 아니라 가장 잘 보이는 방 하나를 설득하는 것으로 변경하기에 부족했기 때문이다.
나카모토 합의는 함께 받아들인 규칙 안에서 거래 순서를 정하지 해시파워 투표로 규칙을 다시 쓰는 의회가 아니다. 채굴자가 작업량 큰 블록을 만들어도 노드는 자기 소프트웨어를 어기면 버린다. 규칙 선택은 블록체인 밖의 코드와 클라이언트 버전, 가격, 계약, 거래 상대 선택에서 이뤄진다. 블록 크기 전쟁는 단순한 헌법을 발견하지 않았다. 변경은 가능하지만 아무도 그것을 합의라 부를 보장된 권리가 없는 체계를 보여 줬다.
모든 편 사람이 개인적 대가를 냈다. 마이크 헌은 2016년 일월 프로젝트를 떠나 실패한 실험이라 했고 개빈 안드레센은 Bitcoin Core에서 예전 지위를 잃었다. 개발자는 캠페인, 기업은 보이콧, 개인은 기술 이견을 인격 시험으로 만든 공격을 겪었다. 승리 이야기는 배신자와 영웅으로 납작하게 만들지만 많은 이가 같은 목표의 다른 상을 지키고 필요하다고 본 압력을 썼음을 인정하는 편이 정확하다.
전쟁 뒤 합의라는 말은 더 조심스러워졌다. 채굴 신호 수나 기업 목록, 주요 개발자 동의만 뜻하지 않았다. 충분한 행위자가 분열보다 변경이 안전하다고 보고 나머지는 경쟁 규칙을 유지할 의지나 힘이 없는 상태였다. 우아한 투표가 아니라 떠날 가능성이 직함 없는 사람에게도 무게를 주면서, 그 체인에 가격과 사용자, 보안이 있을지는 보장하지 않는 지속적 협상이다.
아틀라스의 인물과 개념
출처와 이야기의 한계
- 01BIP 101 — Increase maximum block size
자동 한계 증가를 위한 주요 공식 제안 중 하나.
- 02BIP 141 — Segregated Witness
SegWit과 블록 가중치의 기술 사양.
- 03Digital Currency Group — Bitcoin Scaling Agreement at Consensus 2017
뉴욕 합의 원문과 서명자 목록.
- 04SegWit2x Working Group — archived repository
SegWit2x 목표와 구현의 당시 문서.
- 05
- 06BIP 91 — Reduced threshold SegWit MASF
팔월 1일 전 신호를 잠금한 채굴자 조정 장치.
- 07Bitcoin ABC — UAHF technical specification
Bitcoin Cash 분리의 당시 사양.
- 08SegWit2x mailing list — Onwards
하드 포크에 충분한 합의가 없다는 2017년 십일월 8일 공지.