본문으로 건너뛰기
buybitcoinsmart

용어집 / 프로토콜과 업그레이드

Speedy Trial

Speedy Trial이란 무엇입니까?
Speedy Trial은 Taproot에 사용된 활성화 방식입니다. 짧은 채굴업자 신호 기간을 두고 임계값을 90%로 낮추었으며, 적용 시점은 미리 정한 이후 블록 높이로 미뤘습니다.

BIP-341에 명시되어 있습니다.

Speedy Trial은 수정된 BIP-9 버전 비트 배포 방식으로, 별도의 BIP가 아니라 BIP-341 자체에 기록되었습니다. 채굴업자들은 4월 24일부터 2021년 8월 11일까지 109일 동안 2,016블록 중 1,815블록에서 비트 2를 설정할 수 있었고, 적용 시점은 블록 709,632로 고정되었습니다. 그 적용 높이는 신호가 시작되기 전에 정해졌으므로, 보유자들은 규칙이 바뀌는 정확한 블록을 알고 있었습니다.

작동 방식

Speedy Trial은 BIP-9의 집계 방식을 유지하고 그 숫자 두 개를 바꾸며, BIP-9에 없던 매개변수 하나를 추가합니다.

BIP-9는 2,016블록 재조정 기간마다 신호를 보낸 블록을 집계하고, 한 기간에 그 수가 충분히 모이면 배포를 STARTED에서 LOCKED_IN으로 옮깁니다. 임계값은 1,916블록, 즉 한 기간의 95%이며, 기간에 대한 자체 지침은 1년, 시작 시각 이후 31,536,000초입니다. 시작과 타임아웃은 모두 중앙값 과거 시간에서 읽는데, 이는 한 블록과 그 이전 10개 블록의 타임스탬프 중앙값이므로 시계는 누군가의 손목시계가 아니라 체인에 속합니다.

Taproot 배포는 임계값을 1,815블록, 즉 90%로 낮추고 기간을 9,417,600초로 정했으며, 에포크 타임스탬프 1619222400부터 1628640000까지였습니다. 추가된 것은 min_activation_height였습니다. 순수한 BIP-9에서는 잠금된 배포가 다음 재조정 경계에서 ACTIVE가 되므로, 잠금은 적용 높이를 그 뒤의 2,016블록에만 묶습니다. Speedy Trial에서는 LOCKED_IN 상태가 체인이 명시된 높이에 도달할 때까지 반복되고, 그때에야 ACTIVE로 넘어갑니다. 메인넷의 높이는 709,632였는데, 이는 정확히 352번의 재조정 기간이므로 기간 경계입니다. 배포는 실제로 그곳에서 활성화되었습니다.

이 분리가 핵심 아이디어입니다. 신호는 한 가지 질문에 빠르게 답하고, 그 뒤의 긴 간격은 논쟁에 쓰는 시간이 아니라 나머지 모두가 업그레이드할 시간입니다.

확인할 수 있는 곳

Speedy Trial의 매개변수는 2021 신호 기간에 채굴된 모든 블록의 버전 필드에서 확인할 수 있습니다.

신호를 보내는 블록은 상위 비트 001에 해당 배포의 비트를 더하므로, 비트 2의 Taproot 신호는 버전 0x20000004로 읽힙니다. 작업을 요청하는 채굴업자는 getblocktemplate를 통해 같은 배포를 만나는데, 이 명령의 "rules" 키는 이미 활성화된 소프트 포크를 나열하고 "vbavailable" 키는 대기 중인 각 소프트 포크를 해당 비트에 대응시킵니다. BIP-341이 이 배포에 부여한 이름, 따라서 채굴업자가 읽는 문자열은 단순히 "taproot"입니다.

같은 배포의 testnet3 실행은 그 지연이 무엇을 위한 것인지 보여줍니다. 동일한 시작 및 타임아웃 타임스탬프, 75%의 1,512블록 임계값, min_activation_height 0을 사용했으므로 BIP-9 자체의 한 기간 간격을 넘어 미뤄진 것은 없었고, 높이 2,011,968에서 활성화되었습니다. 메인넷은 추가 대기를 가졌지만, 테스트 네트워크에는 보호할 경제가 없었습니다. signet에서는 규칙이 항상 활성이었으므로 그곳에서는 시험이 일어나지 않았습니다.

Speedy Trial vs UASF

사용자 활성화 소프트 포크는 노드 측에서 결과를 강제하며, Speedy Trial은 그 권한을 의도적으로 거부했습니다.

강제 메커니즘은 BIP-8에 lockinontimeout으로 기록되어 있습니다. 이를 true로 설정하면 배포는 타임아웃 전에 MUST_SIGNAL 기간을 얻게 되는데, 이 기간에 신호를 보내지 않는 블록의 허용량이 소진되면 신호를 보내지 않는 블록은 무효가 되므로, 채굴업자가 협조하든 하지 않든 잠금이 보장됩니다. BIP-8은 무시할 수 없는 비율의 채굴업자로부터 정치적 반대에 직면할 것으로 예상되는 모든 소프트 포크에 이 플래그를 권장하며, 같은 문서에서 이를 실행하는 노드가 장기간 더 낮은 작업량의 체인을 따를 수 있고 서로 우선적으로 연결할 필요가 있을 수 있다고 경고합니다.

Speedy Trial에는 그러한 플래그가 없었습니다. 타임아웃 전에 임계값을 놓치면 배포는 FAILED가 되고 그 외에는 아무 일도 일어나지 않았으며, 이것이 이 방식이 택한 거래였습니다. 활성화 보장도 없고, 체인 분열 위험도 없고, 어느 경우든 값싼 답이었습니다.

혼동하기 쉬운 용어

자주 묻는 질문

Speedy Trial에 관한 BIP가 있습니까?

아닙니다. Speedy Trial은 자체 BIP 번호가 없습니다. 그 매개변수와 수정된 상태 기계는 Taproot 명세인 BIP-341의 Deployment 절에 기록되어 있으며, 그곳에서 더 낮은 임계값을 사용하도록 수정된 BIP-9에 추가 매개변수 min_activation_height를 더한 것으로 설명됩니다.

채굴업자들이 제때 신호를 보내지 않았다면 어떻게 되었겠습니까?

배포는 2021년 8월 11일 타임아웃에 FAILED가 되고 네트워크에서는 아무것도 바뀌지 않았을 것입니다. Speedy Trial의 상태 기계에는 BIP-8이 lockinontimeout을 통해 제공하는 것과 같은 강제 활성화 플래그가 없었으므로, 채굴업자들이 임계값에 전혀 도달하지 못했다면 시도는 단순히 끝났을 것입니다.

활성화 방식이 이미 보유한 비트코인에 영향을 줍니까?

활성화된 것 자체를 통해서만 영향을 줍니다. Taproot는 블록 709,632부터 시행 가능해졌고, 소프트 포크로서 이전 소프트웨어를 수정 없이 계속 작동하게 두었으므로 그 이전에 생성된 출력은 계속 사용할 수 있었습니다. 이 방식이 결정한 것은 시점과 분열 위험이며, 규칙 자체가 아닙니다.

다음에 읽을 글

관련 용어

프로토콜과 업그레이드 분야의 다른 용어

이 페이지를 영어로 읽기