비트코인 8/1일에 뭔가 큰일이 난다고 막연하게만 알고 분들이 있는 것 같아서, 당원들의 이해를 돕고자 최근 현황을 정리했습니다.
조금 어려울 내용이어서 최대한 쉽게 써봤는데, 어쨌든 양해 바랍니다. ㅠㅠ
비트코인 네트워크를 실제로 돌리는 Node의 84%를 구성하는 "Bitcoin Core" Client에는 Segwit 코드가 이미 탑재되어 있습니다. 다만, Activation이 아직 안 되었습니다. 분산 네트워크의 특성상 참여 Node가 모두 같은 프로토콜을 사용하는 것이 매우 중요한데, Segwit 처럼 데이터 구조 자체가 바뀌는 중대한 버젼업은 최대한 많은 Node가 예측 가능한 시점에 동시에 업그레이드 해야 혼란을 최소화할 수 있습니다. 때문에 Activate하는 것 자체를 다수가 Agree 하는지, 그리고 Roll-out을 어떻게 할지에 충분한 논의 후 통일된 일정으로 함께 바꾸자는 취지에서 코드만 먼저 탑재하고 Roll-out을 추후 결정사항으로 놔둔 것입니다.
최근 나온 Segwit 관련 BIP들은 Activation을 어떻게 할 것인가에 대한 방안입니다.
일단 BIP148부터 보자면,
- 8/1일 이후 최초 블럭부터
- Segwit이 전체 네트워크에 Activate가 아직 안되어 있다면
- Segwit을 지지한다는 신호조차 없는 블럭은 거부한다
다시 말하자면, BIP148가 적용된 Node를 (참고로 이건 Bitcoin Core의 레퍼런스 버젼이 아닙니다) 운영하는 분들은
"8/1일까지 Segwit에 대해서 적어도 찬반을 밝혀라. 그런데 찬성 신호가 없는 블럭은 거부할거야..."라고 으름장을 놓은 셈입니다.
Segwit "찬반을 밝히는" 방법은 여러가지가 있을 수 있지만, 현재 Github에는 아래 두가지가 BIP가 떠 있습니다.
- BIP141 : 95% 다수가 Bit 1에 신호를 보내면 Activation (배포 버젼)
- Segwit2X: 80% 다수가 Bit 4에 신호를 보내면 Activation (알파 버젼)
어제 있었던 중요한 사건은 Segwit2X의 Activation 로직이 변경되었습니다.
- Bit 1 or Bit 4 신호를 모두 Activation 신호로 인정하고
- 아무 신호가 없는 블럭을 거부한다
다시 말하자면,
"BIP141 블럭까지 합산해서 80%를 계산하는데, 일단 80%가 되면 아무런 신호를 보내지 않는 채굴자랑 결별할거야"라고 하는 셈입니다. 그리고 자기들은 내부적으로는 모두 Segwit 신호를 보내고 있으니 당연히 Activate가 되는 것입니다.
비트코인 전체 채굴의 80%가 Segwit Activate되면 나머지 채굴자들은 울며 겨자먹기로 따라오거나 혼자서 자멸해야 될 것이고,
BIP148의 2번째 조건을 만족하니 BIP148 Node는 아무것도 안하게 된다는 계산입니다.
뭔가 그럴듯한 공격적인 계획이지요?
Segwit2X는 알파버전이라 아직 돌리는 채굴 Node가 없지만, 오늘 블럭의 80%가 "NYA"라는 메세지로 Segwit2X 지지를 표명했습니다.
하지만, 이게 이야기의 끝이 아닙니다.
다음 글에 이어가도록 하겠습니다.