メインコンテンツへスキップ

BIP 8

ブロック高によるロックインを伴うバージョンビット

原題: Version bits with lock-in by height

Status
Complete
Type / Layer
Informational
Author
Shaolin Fry, Luke Dashjr
割り当て日
Status 検証日
原文
github.com/bitcoin/bips/blob/master/bip-0008.mediawiki

要約

ソフトフォークをどう有効化するかを定めた提案で、BIP9 の設計上の問題を修正することを目的としている。第一の変更は、開始・終了の判定を POSIX タイムスタンプからブロック高に置き換えたこと。ブロック時刻は意図的にも偶発的にも不正確になりうるうえ、BIP9 は「ある時刻を過ぎた最初の難易度調整」を基準にしていて直感的でなかった。ブロック高は 1 ブロックごとに必ず 1 増えるため、閾値を正確に計算できる。第二の変更は、期限到達時に必ず有効化するパラメータ(lockinontimeout)の導入である。BIP9 では期限内にマイナーの signalling が閾値に達しなければ提案は失効し、少数のハッシュレートが実質的な拒否権を持つ状態になっていた。BIP8 は「多数のハッシュレートが賛成すれば早期に有効化し、そうでなくても一定期間後に旗日(flag day)として有効化する」という二段構えを与える。前提にあるのは、コンセンサスルールを最終的に強制するのはフルノードであるという認識である。

技術的意義

ソフトフォークの有効化を「マイナーの合意待ち」から「利用者側が期限を設定できる仕組み」へ組み替えた点に意義がある。Taproot の有効化方式をめぐる 2021 年の議論では、実際に採用された BIP9 系の Speedy Trial と並ぶ主要な選択肢として参照された。

関連する BIP

関連する解説記事

このページに掲載しているのは原文の翻訳ではなく日本語の要約です。BIP は原文が正であり、Status を含むメタデータは上記の検証日時点で bips リポジトリから転記した値です。実装・検証の際は必ず原文を参照してください。

bitcoin/bips で原文を読む