ブロックチェーン/レベル III · ネットワーク/3.3 コンセンサスとガバナンス/レッスン 6
SegWitの有効化とUASF
ハッシュパワーと経済的利害の対立
用意するもの過去のデータを備えたブロックエクスプローラー(例:blockchain.comやmempool.space)GitHub上のBIPリポジトリバージョンビットとロックイン高さを記録するためのノート
問い
- 幅広いユーザーの支持を得ていたソフトフォークが、1年近くも有効化されないままだったのはなぜか?
- ユーザー主導のソフトフォーク(UASF)は、どのようにして力の均衡をマイナーからフルノード運営者へと移すのか?
- 2017年8月1日のBIP148(UASF)によるチェーン分裂を防いだのは何か?
探究
- BIP141、すなわちSegregated Witnessは、2,016ブロックの期間内で95%のブロックが準備完了をシグナルする必要があるBIP9のシグナリングを採用していた。2016年から2017年初頭にかけて、マイナーの支持はネットワークのハッシュパワーの約3分の1で停滞した。標準的なアクティベーションの仕組みが、新しいコンセンサスルールを適用する準備ができたことをマイナーが自発的に示すことに依存していたため、この膠着状態は緊張を生んだ。
- 匿名の開発者Shaolin Fryは2017年3月、ユーザー主導のソフトフォーク(UASF)としてBIP148を提案した。2017年8月1日以降、参加するノードはSegWitをシグナルしないブロックをすべて拒否するというものである。大半のマイナーが無視すればチェーンが分裂するおそれがあったが、期限を設定する側をマイナーからユーザーのノードへと変えた。
- 2017年5月のニューヨーク合意は、企業とマイナーの間の対立を解決しようとするものだった。署名者は、まずSegWitを有効化し、その後SegWit2xと呼ばれる2MBのハードフォークを行うことを約束した。Bitcoin Coreのコントリビューターの大半はハードフォーク部分に反対し、合意には加わらなかった。
- 8月の分裂を避けるため、2017年7月にBIP91が採用された。これは、ビット4で80%のブロックがシグナルするとロックインされる別個のデプロイメントだった。有効化後、BIP91ノードはSegWitをシグナルしないブロックを拒否した。これによってSegWit自体の95%のシグナリングが基準を超え、チェーンはBIP148ノードとの互換性も保たれた。
- SegWitは2017年8月9日(ブロック479,808)にロックインされ、2017年8月24日にブロック481,824で有効化された。2017年8月1日には、SegWitによるアプローチを拒み、より大きなブロックを支持した人々によって、別の出来事としてビットコインキャッシュのハードフォークが起きた。元のチェーンはSegWitとともに続き、ビットコインキャッシュは独自のスケーリング戦略で分岐した。
- 2017年11月に予定されていたハードフォークSegWit2xは、恒久的な分裂を恐れる取引所やユーザーの強い反対により中止された。その教訓については意見が分かれている。UASFの支持者は、ユーザーのノードがこの結果を強いたと評価する一方、マイナーと企業がニューヨーク合意とBIP91を通じてSegWitの有効化を選んだのだと主張する人々もいる。いずれにせよ、論争のある変更には、マイナー、企業、ノード運営者の支持が同時に必要であることが証明された。
重要な事実
- Shaolin Fryが2017年3月に提案したBIP148(UASF)により、ノードは2017年8月1日以降、SegWitをシグナルしないブロックを拒否するようになった。
- SegWitは、マイナーがBIP91を通じてシグナルした後、2017年8月9日(ブロック479,808)にロックインされ、2017年8月24日にブロック481,824で有効化された。
- ビットコインキャッシュは2017年8月1日にビットコインから分岐し、より大きなブロックを持つハードフォークとなった。一方、元のチェーンではSegWitが有効化された。
- ニューヨーク合意(2017年5月)には、ハッシュパワーの約83%を代表する企業が署名した。その2MBのハードフォーク部分であるSegWit2xは、2017年11月に中止された。
- SegWitのBIP9シグナリングは2016年11月に始まったが、幅広いユーザーの支持にもかかわらず停滞し、その対抗策としてUASFが開発されるきっかけとなった。
- BIP91は80%のシグナリングでロックインされ、その後SegWitのシグナリングを強制することで、BIP148によるチェーン分裂を回避した。
演習 九・六・三・一
9集めるSegWitのアクティベーションプロセスに関連する、2016年11月から2017年11月までの重要な日付を9つ挙げてください。
6まとめるこれら9つの日付を、「初期の停滞」「UASFの提案」「ニューヨーク合意」「BIP91の採用」「SegWitのロックイン/有効化」「フォーク後の決着」の6つの段階に分類してください。
3絞り込む6つの段階を、アクティベーションプロセスの結果を決定づけた3つの核心的な力学に絞り込んでください。
1結晶化するフルノード運営者が、マイニングハードウェアを支配していないにもかかわらず、ビットコインのプロトコル変更に大きな影響力を持つ理由を1文で説明してください。
事実確認
日付、数字、主張は、下記に記載された公表資料と照合して確認しました。
- BIP141: Segregated Witness (Consensus layer)
- BIP148: Mandatory activation of segwit deployment
- BIP91: Reduced threshold Segwit MASF
- J. Bier, The Blocksize War (2021)