Segregated Witness (SegWit)는 비트코인 프로토콜 업그레이드로, 비트코인 코어 개발 팀이 제안했습니다. 원래는 비트코인 개선 프로토콜 9(BIP 9) 표준을 통해 활성화되도록 설계되었습니다. 이는 비트코인 생태계가 채굴자 준비 상태를 통해 상대적으로 안전하게 업그레이드를 조정할 수 있도록 합니다.
하지만 SegWit 제안과 관련하여 BIP 9는 더 이상 단순히 준비 상태를 신호하는 역할만 하지 않습니다. 채굴자와 사용자 모두 BIP 9를 프로토콜 업그레이드의 바람직함에 대한 채굴자 투표의 일종으로 보고 있습니다. 일부 채굴자는 프로토콜 개발을 위한 협상 수단으로 활용하는 것처럼 보이기도 합니다.
“Shaolinfry”라는 이름으로 알려진 익명의 개발자는 이를 조정 메커니즘의 남용으로 간주합니다. 따라서 그는 최근 대안 활성화 계획인 사용자 활성화 소프트 포크(UASF)를 제안했습니다.
Shaolinfry는 BIP 148과 BIP 149라는 두 가지 특정 UASF 제안도 작성했습니다. 이 두 가지는 현재 사용자 채택을 위한 경쟁 중입니다. 비트코인 매거진과의 인터뷰에서 Shaolinfry는 적어도 그 중 하나가 네트워크에 의해 수용될 것이라고 확신하는 것 같습니다.
“SegWit가 활성화되지 않는 우주는 없습니다.”
SegWit와 UASF
소프트 포크는 비트코인 프로토콜의 변경으로, 새로운 규칙을 도입하거나 기존 규칙을 강화합니다. 이는 소프트 포크가 이전 버전과 호환되도록 만듭니다: 업그레이드하지 않은 노드도 같은 비트코인 네트워크의 일부로 남아 있어야 합니다.
Segregated Witness는 비트코인의 블록 크기 제한을 늘리고 몇 가지 오래된 프로토콜 문제를 해결하는 소프트 포크입니다. 항상 확실하게 말하기는 어렵지만, 이 제안은 비트코인 생태계 내에서 광범위한 지지를 받고 있는 것 같습니다. 많은 지갑, 거래소 및 이 분야의 다른 기업들이 이를 준비하고 있다고 밝혔으며, 네트워크에서 접근 가능한 노드의 압도적인 비율도 이 솔루션을 구현했습니다.
BIP 9에 따르면, SegWit의 현재 구현은 11월 이전의 2주 간의 난이도 기간 동안 약 95%의 해시 파워가 지원 신호를 보낼 경우 활성화됩니다. 그러나 해시 파워 지원은 현재까지 약 30%에서 정체되어 있습니다.
생태계와 해시 파워 지원 간의 이러한 명백한 불일치는 일부 사람들이 — BIP 9 공동 저자 Rusty Russell과 같은 — 활성화 방법이 실수였다고 점점 더 생각하는 이유입니다.
Shaolinfry도 그렇게 생각합니다.
“BIP 9의 주요 문제는 해시 파워의 약 5%만이 거부권을 가지고 있다는 것입니다.”라고 Shaolinfry는 설명했습니다. “그 거부권은 의도적으로 또는 비의도적으로 발동될 수 있습니다. 의도적으로는 현재 채굴자들이 SegWit 활성화를 차단하는 방식처럼요. 또는 업그레이드에 대한 무관심으로 인해 비의도적으로 발생할 수 있습니다.
“채굴자 활성화는 정치적으로 채굴 풀 운영자에게 주목을 끌기도 합니다. 전 세계가 누가 신호를 보내고 누가 신호를 보내지 않는지 주목하고 있습니다. 이는 바람직하지 않습니다. 그리고 만약 소프트 포크가 정부를 화나게 할 수 있는 것이라면 어떻게 될까요? 우리는 중국에서 익명 기능으로 인해 그런 경우가 있다는 것을 알고 있으며, 미국에서도 점점 더 그러하고 있습니다.”
따라서 Shaolinfry는 UASF를 통해 SegWit를 활성화할 것을 제안했습니다.
UASF의 기본 아이디어는 사용자가 단순히 합의된 시점에 소프트 포크를 활성화하는 것입니다. 이러한 사용자가 비트코인 경제의 대다수를 차지한다면 — 거래소, 상인, 사용자 — 채굴자는 새로운 소프트 포크 규칙을 따르도록 재정적 유인을 받게 됩니다. 그렇지 않으면 그들은 유효하지 않은 블록을 채굴할 수 있으며 (비트코인 경제의 대다수에 따르면) 그들이 얻는 “비트코인”은 가치가 떨어지거나 아예 가치가 없게 됩니다.
해시 파워의 대다수가 이러한 재정적 유인을 따르고 새로운 규칙을 시행하면, 나머지 비트코인 생태계는 다른 소프트 포크와 마찬가지로 자동으로 따르게 될 것입니다.
BIP 148
Shaolinfry가 작성한 첫 번째 UASF 제안은 BIP 148입니다.
BIP 148은 실제로 기존 BIP 9 SegWit 활성화 임계값을 트리거하도록 설계된 UASF에 대한 흥미로운 접근입니다.
“SegWit를 재배포하려면 현재 배포가 올해 11월까지 만료될 때까지 기다려야 합니다. 그렇지 않으면 많은 비트코인 노드가 이를 수용하지 않을 것입니다.”라고 Shaolinfry는 설명했습니다. “BIP 148은 현재 BIP 141 배포가 11월 이전에 활성화되도록 하는 방법입니다. 이는 더 빠르고, 70% 이상의 노드가 이미 업그레이드되었다는 장점이 있습니다.”
특히 8월 1일부터 BIP 148 노드는 BIP 9를 통해 Segregated Witness에 대한 지원 신호를 보내지 않는 비트코인 블록을 거부합니다. 따라서 비트코인 경제의 대다수가 BIP 148을 시행하면, 채굴자는 SegWit에 대한 지원 신호를 보내야 블록이 거부되지 않습니다.
이 채굴자들이 SegWit에 대한 지원 신호를 보내면, 이 신호는 네트워크의 모든 “정상” SegWit 노드를 트리거하게 됩니다. 이 모든 노드는 BIP 148 활성화에 참여하지 않았더라도 SegWit를 시행하게 됩니다.
게임 이론적 관점에서 볼 때, 비트코인 경제의 상대적으로 작은 소수도 BIP 148을 활성화할 수 있을 가능성이 있습니다. 채굴자는 SegWit에 대한 지원 신호를 보내는 데 잃을 것이 거의 없지만, 신호를 보내지 않음으로써 잃을 것이 있습니다: 비트코인을 판매할 수 있는 사용자 수가 줄어듭니다. 따라서 심지어 겸손하지만 헌신적인 BIP 148 사용자 기반도 충분할 수 있습니다.
마지막으로, Shaolinfry는 라이트코인의 SegWit 활성화에 대한 그의 Medium 게시물을 반영하며, 이러한 UASF의 가능성만으로도 채굴자가 지원 신호를 보낼 수 있도록 만들 수 있다고 언급했습니다 — 실제로 이를 시행할 필요 없이.
BIP 148: 위험과 유인
그러나 몇 가지 위험이 있습니다. 이러한 이유로 일부 저명한 비트코인 코어 개발자 — Blockstream CTO Gregory Maxwell 및 Chaincode Labs 공동 창립자 Suhas Daftuar와 같은 — BIP 148을 너무 파괴적이라고 간주합니다.
BIP 148에 따르면, 유효한 블록이라 하더라도 신호를 포함하지 않으면 거부됩니다. 이러한 블록의 거부는 채굴자의 자원을 낭비하고 비트코인의 보안에 부정적인 영향을 미칠 것입니다.
또한 해시 파워의 소수만이 새로운 규칙을 시행하면 — 재정적 유인을 무시하거나 경제의 소수만이 새로운 규칙을 시행하는 경우 — 비트코인 블록체인이 두 개로 나뉠 수 있습니다. “SegWit 체인”과 “비-SegWit 체인”이 생길 것입니다. 이는 체인의 양쪽 끝에서 사용자에게 위험이 동일하지 않은 새로운 문제를 열어줄 것입니다.
“채굴자가 경제를 따르도록 유인하는 것은 분명합니다.”라고 Shaolinfry는 이 비판에 응답했습니다. “하지만, 51% 미만의 채굴자가 BIP 148을 준수하고 실행할 경우 체인 분할 위험이 있습니다. 그러나 이러한 상황에서도 비-BIP 148 체인은 비대칭적으로 불리하며 거의 확실히 완전히 사라질 것입니다. SegWit 체인은 항상 더 가치가 있으며, 채굴자의 대다수가 그 체인으로 전환하면 비-SegWit 체인은 완전히 사라질 것입니다.”
또한 특정 임계값 이상에서 체인 분할의 위험은 더 많은 지원을 받을수록 줄어듭니다. 이러한 이유로 또 다른 저명한 비트코인 코어 개발자인 Luke Dashjr는 이 제안을 지지하고 있습니다.
이러한 위험을 피하기 위해 BIP 148에 또 다른 변수가 있을 수 있다고 Shaolinfry는 지적했습니다:
“BIP 148의 흥미로운 점은 어떤 다수의 채굴자도 이를 트리거할 수 있다는 것입니다 — 반드시 95%일 필요는 없습니다. 해시 파워의 75% 또는 51%가 8월 1일부터 비신호 블록을 거부하기 시작하면, 그들은 항상 가장 긴 체인을 주장할 것입니다. 따라서 이후 모든 채굴자는 SegWit에 대한 지원 신호를 보내고 활성화해야 합니다 — 아니면 그들의 모든 블록이 네트워크에 의해 고아가 될 것입니다.”
마지막으로, Shaolinfry는 채굴자가 BIP 148을 배포할 것인지와 어떤 조건에서 배포할 것인지 신호를 보낼 수 있도록 하는 코드인 “Segsignal”을 출시할 수도 있습니다. 이를 사용하여 채굴자는 예를 들어, 51%가 동의할 경우에만 BIP 148을 통해 SegWit를 활성화하기로 합의할 수 있습니다.
“이는 체인 분할의 위험을 제거해야 합니다. 심지어 단기적인 것이라 하더라도요.”라고 Shaolinfry는 말했습니다.
BIP 149 (및 BIP 8)
Shaolinfry의 대안 UASF 제안은 BIP 149입니다.
BIP 149는 완전히 새로운 소프트 포크 활성화 메커니즘인 BIP 8을 사용합니다. BIP 8은 초기에는 채굴자가 해시 파워를 통해 소프트 포크를 활성화할 수 있도록 허용하는 점에서 BIP 9와 유사합니다. 그러나 BIP 9와는 달리, 소프트 포크 제안은 활성화 기간이 끝날 때 단순히 만료되지 않습니다. 대신 활성화 마감일을 설정합니다. 이 마감일이 도달하면 노드는 해시 파워 지원에 관계없이 소프트 포크를 활성화합니다.
BIP 149는 BIP 148에 비해 특정 기술적 장점이 있습니다: 채굴자에게 덜 침해적입니다. BIP 148은 사실상 채굴자가 신호를 보내도록 강제하지만, BIP 149에서는 채굴자가 그렇게 할 필요가 없습니다. 그들은 원한다면 SegWit를 지원할 수 있습니다. 그렇지 않으면, 활성화 후 유효하지 않은 거래와 블록을 필터링하기 위해 소위 “경계 노드”를 운영할 수 있지만, 그게 전부입니다.
Shaolinfry는 BIP 148이 성공하지 않을 경우 BIP 149를 전용 비트코인 소프트웨어에 구현할 계획이며, 현재 BIP 9 SegWit 제안이 11월 중순까지 만료될 것입니다. BIP 149의 활성화 마감일은 2018년 7월 초로 예정되어 있습니다.
Maxwell과 같은 일부 개발자는 SegWit 활성화에 서두르지 않으며 BIP 149를 선호합니다. 그러나 Dashjr와 같은 다른 사람들은 너무 오랜 시간이 걸릴 것이라고 믿습니다.
Shaolinfry 자신은 다음과 같이 언급했습니다:
“BIP 149는 기술적 관점에서 너무 느리지 않습니다. 하지만 SegWit가 활성화되지 않는 시간이 길어질수록 비트코인을 괴롭힐 더 많은 문제와 장애물이 생길 것이라고 생각합니다. 따라서 생태계가 BIP 148을 지지한다면, 이 악몽을 끝낼 수 있을 것입니다.”