비트코인의 오랜 스케일링 논쟁은 최근 두 가지 제안이 상당한 주목을 받으면서 절정에 이르는 것처럼 보입니다. 한쪽에는 가명 개발자 “shaolinfry”가 처음 제안한 사용자 활성화 소프트 포크(BIP148)가 있습니다. 다른 한쪽에는 많은 비트코인 기업과 채굴자들 간의 합의인 SegWit2x가 있습니다.
좋은 소식은 이 두 제안이 공통으로 단기 해결책을 가지고 있다는 것입니다: 두 제안 모두 이번 여름에 분리된 증인(SegWit)을 활성화할 계획입니다. 나쁜 소식은 두 제안의 활성화 방법이 다르다는 점으로, 이는 코인 분할로 이어질 수 있습니다.
오늘 현재로서는 이 분열이 피할 수 있을 것 같습니다 — 적어도 초기에는. SegWit2x 개발 팀은 Bitmain Warranty 엔지니어 James Hilliard의 제안인 BIP91을 구현할 계획입니다. 이는 두 가지 상충하는 활성화 방법을 호환 가능하게 만드는 방법입니다.
방법은 다음과 같습니다.
BIP141
현재 분리된 증인의 구현은 BIP141에 의해 정의됩니다. 이 버전은 최신 비트코인 코어 릴리스에 포함되어 있으며, 비트코인 네트워크에서 널리 배포되고 있습니다. BIP141은 BIP9에 의해 정의된 활성화 방법을 통해 활성화됩니다. 이는 2주 기간 내에 모든 블록의 95%가 “비트 1”이라는 데이터를 포함해야 함을 의미합니다. 이는 채굴자가 업그레이드 준비가 되었음을 나타냅니다. 따라서 대다수의 채굴자가 준비가 되어 있다면 SegWit이 활성화됩니다.
그것이 의도였습니다. 지금까지는 약 30%의 해시 파워만이 업그레이드에 대한 지원을 신호하고 있습니다. 왜 이런 일이 발생했는지에 대한 많은 추측이 있지만, 이는 거의 확실히 준비 부족과는 관련이 없습니다.
그래서 다른 활성화 방법이 점점 더 고려되고 있습니다.
BIP148
BIP148은 BIP141을 트리거하기 위해 특별히 설계된 사용자 활성화 소프트 포크(UASF)입니다.
8월 1일부터 BIP148을 구현한 비트코인 소프트웨어를 실행하는 모든 사용자는 비트 1, 즉 SegWit 신호 데이터를 포함하지 않은 모든 블록을 거부하기 시작합니다.
이는 채굴자의 단순한 다수가(해시 파워 기준) 이 소프트웨어를 실행하면, 그들이 실행하지 않는 소수의 채굴자들로부터 모든 블록을 거부하게 됨을 의미합니다. 결과적으로, 이 다수의 채굴자는 네트워크의 모든 비트코인 노드에 따라 항상 가장 긴 유효 체인을 보유하게 됩니다. 따라서 모든 배포된 BIP141 노드는 95% 이상의 비트 1 블록을 포함하는 체인을 보게 되며, 이는 네트워크에서 SegWit이 활성화됨을 의미합니다.
하지만 BIP148이 다수의 채굴자(해시 파워 기준)에 의해 지원되지 않으면, 비트코인의 블록체인이 두 개로 나뉘게 될 수 있습니다. 그런 경우, BIP148을 활성화한 비트코인과 그렇지 않은 비트코인이 존재하게 됩니다. 이는 시간이 지나면서 해결될 수 있지만, 아닐 수도 있습니다.
SegWit2x
SegWit2x(또는 “SegWit2MB” 또는 “실버트 합의”라고도 불림)는 여러 비트코인 기업과 80% 이상의 채굴자(해시 파워 기준) 간에 도달한 스케일링 합의로, Consensus 2017 회의 직전에 작성되었습니다.
한동안 SegWit2x에 대한 세부 사항은 그리 구체적이지 않았습니다. 이름이 암시하듯이, SegWit이 합의에 포함되었다는 것과 비트코인의 “기본 블록 크기”를 두 메가바이트로 두 배로 늘리기 위한 하드 포크가 포함되었다는 것 외에는 알려진 것이 거의 없었습니다.
물론 SegWit은 다른 활성화 방법을 사용하여 구현될 예정이었습니다. 원래 BIP141 제안과 마찬가지로 SegWit2x는 채굴자들에 의해 해시 파워를 통해 활성화될 예정이었습니다. 그러나 BIP141이 95%의 해시 파워 지원을 요구하는 반면, SegWit2x는 80%만 요구합니다. 게다가 SegWit2x의 준비 상태는 다른 활성화 데이터인 “비트 4”를 사용하여 신호됩니다.
이로 인해 SegWit2x는 BIP141과 크게 호환되지 않으며, 특히 BIP148과도 호환되지 않습니다: 서로 다른 노드가 서로 다른 활성화 비트를 보고 있어, 서로 다른 상황과 시점에서 SegWit을 활성화할 수 있으며, 이는 노드 간의 SegWit 특정 블록 릴레이 정책을 혼란스럽게 하여 네트워크를 분열시킬 수 있습니다.
BIP91
이제 BIP91이 해결책을 제공한 것 같습니다.
BIP91은 SegWit2x와 BIP148을 호환 가능하게 만들어 코인 분할을 방지하기 위해 특별히 설계된 Bitmain Warranty(비트메인과 혼동하지 마십시오) 엔지니어 James Hilliard의 제안입니다.
이 제안은 어느 정도 BIP148과 유사합니다. BIP91이 활성화되면, 모든 BIP91 노드는 비트 1을 통해 SegWit 지원 신호를 보내지 않는 모든 블록을 거부합니다. 따라서 다수의 채굴자(해시 파워 기준)가 BIP91을 실행하면, 가장 긴 유효 비트코인 체인은 SegWit 신호 블록만으로 구성되며, 모든 일반 BIP141 SegWit 노드는 프로토콜 업그레이드를 활성화합니다.
BIP91이 BIP148과 다른 점은 설정된 활성화 날짜가 없고, 대신 해시 파워에 의해 트리거된다는 것입니다. BIP91 노드는 80%의 블록이 먼저 이 작업을 수행할 것이라고 2일 이내에 신호하는 경우에만 비-SegWit 신호 블록을 거부합니다.
이 신호는 비트 4로 이루어집니다. 따라서 실버트 합의는 기술적으로 유지될 수 있으며 — 비트 4로 80% 해시 파워 활성화 — 동시에 기존 SegWit 제안을 활성화할 수 있습니다. 그리고 이것이 8월 1일 이전에 이루어지면, BIP148과도 호환됩니다, 왜냐하면 BIP148 노드도 비트 1 블록을 거부할 것이기 때문입니다.
이 제안은 채굴자들에게 코인 분할을 피할 수 있는 약 6주를 제공하며, 그들의 합의된 조건에 따라 진행됩니다. SegWit2x 출시일이 7월 21일로 예정되어 있으므로, 이는 문제가 되지 않을 것입니다… 채굴자들이 실제로 이행한다면 말입니다.