비트코인의 오랜 확장성 논쟁이 교착 상태에 빠진 것처럼 보일 때, 한 익명의 메일링 리스트 기여자가 탈출구를 제시했을 수 있다.
비트코인 코어 개발 팀이 제안한 비트코인 프로토콜 업그레이드인 세그리게이티드 위트니스(SegWit)는 비트코인의 블록 크기 제한을 대략 두 배로 늘리면서 추가적인 확장 솔루션을 위한 기초를 마련할 것이다. 그러나 95%의 해시 파워 지원이 필요하여 활성화가 느리게 진행되고 있으며, 이러한 상황이 곧 바뀔 것이라는 징후는 거의 없다.
이제 활성화에 대한 대안 경로가 있을 수 있다.
“[T] 신호 방법론은 해시 파워가 제안에 투표하고 있다는 잘못된 해석을 받고 있으며, 이는 더 넓은 커뮤니티에서 이 오해를 바로잡기 어렵다”고 익명의 인물인 “shaolinfry”가 지난 주말 비트코인 개발 메일링 리스트와 비트코인톡 포럼에서 언급했다.
그리고:
“여기서 논의된 대안은 ‘플래그 데이 활성화’로, 노드가 미래의 특정 시간에 시행을 시작하는 것이다.”
이 대안은 “사용자 활성화 소프트 포크” 또는 “UASF”라고 불린다.
해시 파워 활성화 소프트 포크
소프트 포크는 비트코인 프로토콜에 대한 변경으로, 규칙을 강화한다. 이전 규칙에 따라 유효했던 거래 또는 블록이 새로운 규칙에 따라 무효가 된다.
소프트 포크의 흥미로운 특성은 일부 사용자가 새로운 규칙 세트로 업그레이드할 수 있는 반면, 다른 사용자는 그렇지 않거나 적어도 아직 그렇지 않다는 것이다. 그들은 모두 동일한 네트워크의 일원으로 남아 있으며, 동일한 블록체인을 사용하고 동일한 통화로 거래하지만, 일부 사용자는 약간 다른 데이터를 보고 있을 수 있다.
“소프트 포크는 이전 버전과 호환되며 선택적이다”라고 shaolinfry는 후속 이메일에서 주장했다. “잘 작성되고 버그가 없다면, 사용자들은 최악의 경우에도 새로운 기능을 안전하게 사용할지 여부를 선택할 수 있기 때문에, 다른 사람의 기능 사용을 방해하지 않고 무관심할 수 있어야 한다.”
지난 몇 년 동안 소프트 포크는 대부분 해시 파워 활성화에 의해 구현되었다. 이는 채굴자들이 어떤 유효한 거래를 블록에 포함할지를 결정하는 사실을 활용한다. 다수의 채굴자는 새로운 소프트 포크 규칙을 위반하는 특정 유형의 거래와 블록을 블록체인에서 거부할 수 있으며, “구형 노드”가 여전히 유효하다고 간주하는 거래도 포함된다.
비트코인 코어 개발 팀이 제안한 세그리게이티드 위트니스는 소프트 포크이다. 그러나 이 소프트 포크 제안은 해시 파워 활성화가 선거와 유사한 것으로 접근되는 것처럼 보인다.
shaolinfry는 이것이 아니라 주장했다:
“[A] 초다수 해시 파워 신호의 문제는 불필요한 주목을 채굴자에게 끌어들여 불필요하게 정치적이 될 수 있다는 것이다. 이미 투표로 오해받고 있는 채굴자는 커뮤니티를 대신해 ‘결정’을 내려야 한다는 압박을 느낄 수 있다: 누가 신호를 보내고 누가 신호를 보내지 않는지가 큰 공적 초점이 되어 채굴자에게 준비되지 않은 압박을 가할 수 있다.”
따라서 shaolinfry는 UASF를 활성화 방법으로 도입할 것을 제안했다.
UASF
UASF의 개념은 실제로 해시 파워 활성화 소프트 포크보다 훨씬 간단하다.
채굴자가 아닌 비트코인 경제 — 개별 사용자, 상인, 거래소, 지갑 제공자 및 기타 경제 주체 — 가 실행하는 소프트웨어로 소프트 포크를 활성화한다. 특정 시점에서 비트코인 경제는 시스템의 규칙을 강화하여 소프트 포크를 활성화한다. 그 시점 이후로 모든 사람은 새로운 규칙을 위반하는 거래와 블록을 단순히 거부한다.
현실적으로 채굴자들은 새로운 규칙을 따르거나 적어도 무효 블록과 거래를 수용하지 않기 위한 특정 안전 조치를 취해야 한다. 그렇지 않으면 그들은 경제가 무효로 간주하는 블록을 생성할 위험이 있다. 채굴자는 블록 보상으로 얻은 코인을 사용하거나 거래소에 입금할 수 없으며, 다른 방법으로도 사용할 수 없다. 모든 면에서 그들은 비트코인을 전혀 얻지 못한 것이며, 대신 가치 없는 블록을 생성하는 데 자원을 낭비한 것이다.
실제 가치를 가진 블록 보상을 얻기 위해 채굴자는 경제가 원하는 대로 행동해야 한다고 shaolinfry는 주장했다:
“해시 파워의 역할은 유효한 거래를 선택하고 유효한 블록으로 블록체인을 확장하는 것이다. 완전히 유효성을 검증하는 경제 노드는 블록이 유효하다는 것을 보장한다. 따라서 노드는 자신이 실행하는 소프트웨어에 따라 유효성을 정의하지만, 채굴자는 어떤 유효한 거래가 [블록체인]에 포함될지를 결정한다.”
모든 소프트 포크와 마찬가지로 UASF는 일반 사용자에게 선택적 제안이 될 것이며, 활성화가 원활하게 이루어진다고 가정한다. 예를 들어, 일부 사용자가 SegWit을 좋아하지 않는다면, 그들은 업그레이드를 선택하지 않을 수 있다. 한편, 다른 사용자는 SegWit이 제공하는 혜택을 누릴 수 있다.
단점
UASF의 개념은 간단하지만, 그렇다고 해서 실행하기 쉬운 것은 아니다. 해시 파워 활성화 소프트 포크와 비교할 때, UASF는 두 가지 증가된 위험을 도입한다. 그리고 하드 포크와 마찬가지로 상황이 나쁘게 진행되면 비트코인이 두 개의 호환되지 않는 네트워크, 블록체인 및 통화로 분리될 수 있다.
첫 번째 위험은 조정이 어려울 수 있다는 것이다. 가장 중요한 것은, UASF가 정말로 경제에 의해 지지되고 시행될 것인지 확실히 알기 어렵다는 것이다. 중앙 집중식 서비스 — 거래소, 지갑 제공자, 결제 처리업체 — 의 지원은 어느 정도 측정할 수 있지만, 개별 비트코인 노드는 쉽게 스푸핑될 수 있다. 그리고 경제의 소수만이 새로운 규칙을 시행하고 대다수가 원래 규칙을 시행한다면, 비트코인은 둘로 나뉘게 된다.
두 번째로, 경제의 상당한 다수가 소프트 포크를 시행하더라도, 결단력 있는 (또는 매우 게으른) 다수의 채굴자가 여전히 업그레이드를 방해할 수 있다. 이러한 채굴자가 “구형” 체인을 채굴하는 데 에너지를 낭비할 의향이 있다면, 업그레이드되지 않은 사용자는 이 “채굴자 체인”을 따르게 될 것이며, 가치 있는 “경제 체인”을 따르지 않을 것이다. 이 사용자는 적어도 이러한 채굴자가 자원을 낭비할 의향이 있는 한 이중 지불에 취약할 것이다.
그렇다고 해도 이러한 위험은 하드 포크에서 더 크며, 해시 파워 활성화 소프트 포크에서도 유사한 문제가 발생할 수 있다. BIP66 블록체인 분할이 이를 보여주었다.
shaolinfry가 언급한 바와 같이:
“검증은 항상 강력한 요구 사항을 가지고 있다.”
피드백을 제공한 BitGo 엔지니어 Jameson Lopp에게 감사드립니다. UASF 주제에 대한 더 많은 논의는 비트코인 개발 메일링 리스트를 따라주세요.