용어집 / 프로토콜과 업그레이드
사용자 활성 소프트 포크
별칭은 UASF입니다.
- 사용자 활성 소프트 포크란 무엇입니까?
- 사용자 활성 소프트 포크는 노드 운영자가 정한 플래그 데이에 새 규칙을 시행하므로, 이를 무시하는 채굴업자는 단순히 표에서 밀리는 것이 아니라 자신이 만든 블록이 거부되는 결과를 맞습니다.
BIP-148에 명시되어 있습니다.
이 발상은 통상적인 절차의 순서를 뒤집습니다. 해시파워가 준비 신호를 보낼 때까지 기다리는 대신, 결제를 받는 노드들이 특정 날짜를 공표하고 그 날짜 이후에는 규칙을 따르지 않는 블록을 일절 거부하겠다고 선언합니다. BIP-148이 그 날짜를 2017년 8월 1일로 정했으며, 이 신뢰할 만한 위협이 2016년 11월부터 이어져 온 신호 표시 교착 상태를 끝낸 것으로 널리 평가받습니다.
작동 방식
규칙이 궁극적으로 시행되는 곳은 채굴이 아니라 검증이며, 사용자 활성 소프트 포크는 바로 그 사실 위에 세워집니다.
노드는 어떤 블록이 유효한지 스스로 판단합니다. 사람들이 실제로 결제를 주고받는 경제의 상당 부분, 즉 거래소와 결제 처리업체와 수탁업체가 규칙을 따르지 않는 블록을 거부하는 소프트웨어를 운영하면, 그런 블록을 생산하는 채굴업자는 아무도 받지 않을 코인으로 보상을 받게 됩니다. 블록 보상은 자신이 올라앉은 체인이 구매자들이 인정하는 체인일 때만 가치가 있으므로, 어떤 투표도 없이 인센티브는 규칙 준수 쪽을 가리킵니다.
이 메커니즘은 임계값이 아니라 날짜입니다. BIP-148은 2017년 8월 1일부터 모든 블록이 SegWit에 대한 준비를 신호할 것을 요구했고, 그렇게 하지 않은 블록은 고아 블록으로 처리하라고 노드에 지시했습니다. 이는 규칙을 강화하는 것이므로, 규칙을 따르는 체인은 한 번도 업그레이드하지 않은 노드에게도 여전히 유효합니다. 다만 체인 분열 위험을 없애지는 못합니다. 대부분의 해시파워가 규칙을 따르지 않는 블록을 계속 채굴하면 시행하는 쪽은 누적 작업량이 더 적고, 두 체인은 한쪽이 물러날 때까지 공존합니다.
BIP-8은 나중에 이 접근법을 일반적인 매개변수 집합으로 만들었습니다. 신호를 세는 방식은 BIP-9와 같지만 lockinontimeout을 추가하며, 보통 LOT로 씁니다. LOT를 false로 두면 채굴업자가 임계값에 도달하지 못할 경우 배포는 그냥 만료됩니다. LOT를 true로 두면 타임아웃 높이에서 그와 무관하게 고정되며, 이는 사용자 활성 소프트 포크를 설정 플래그로 표현한 것입니다.
나타난 사례
2017년의 사례는 비트코인에서 유일하게 완료된 예이며, 순서대로 아는 것이 좋습니다. BIP-148은 2017년 3월에 Shaolin Fry라는 이름을 쓴 개발자가 발표했고, 노드 운영자들이 봄 동안 이를 받아들였습니다. 8월 마감을 앞두고 채굴업자들은 7월에 BIP-91을 채택해 채굴업자들 사이에서 SegWit 신호 표시를 의무화했습니다. 이후 SegWit은 2017년 8월 8일 블록 479,808에서 고정되었고 2017년 8월 24일 블록 481,824부터 시행 가능해졌습니다. 플래그 데이는 그것이 요구한 결과가 이미 확보되어 있었기 때문에 지속되는 분열 없이 지나갔습니다.
이 접근법은 Taproot 이전에 다시 떠올랐습니다. 2020년 말부터 2021년 초까지 논쟁은 전적으로 BIP-8을 LOT true로 배포할지 false로 배포할지에 관한 것이었고, LOT true를 적용한 대체 클라이언트가 발표되었으며, 절충안은 짧은 기간을 정하고 강제 활성화는 두지 않는 Speedy Trial이었습니다. 채굴업자들이 2021년 6월에 임계값에 도달했기 때문에 그 문제는 시험대에 오르지 않았습니다.
비트코인을 보유하고 있다면 관련된 요점은 자신의 노드를 운영하는 것이 이 모든 것에 무게를 실어 준다는 사실입니다. 사용자 활성 소프트 포크는 검증하는 사용자를 세며, 잔액이 전부 거래소에 있는 사람은 자신의 소프트웨어가 아니라 그 거래소의 소프트웨어로 대표됩니다.
사용자 활성 소프트 포크 vs 하드 포크
사용자 활성 소프트 포크는 규칙을 강화하고 하드 포크는 규칙을 완화하며, 2017년의 혼란은 둘 다 분열 위험을 안고 있었다는 점에서 비롯되었습니다. BIP-148 아래에서 예전 지갑은 계속 작동했고 그 결과로 생긴 체인은 소프트웨어의 모든 이전 버전에 여전히 유효했으며, 이는 바로 하드 포크가 약속할 수 없는 것입니다. 분열 위험은 일시적이었고 채굴업자의 행동에 달려 있었던 반면, 하드 포크의 분열은 첫 번째 호환되지 않는 블록부터 설계에 포함되어 있습니다.