MSTR Cat

ブロックチェーン/レベル III · ネットワーク/3.3 コンセンサスとガバナンス/レッスン 3

ソフトフォークとハードフォーク

有効性の非対称性:ルールの厳格化はなぜ安全で、緩和はなぜチェーンを分裂させるのか

用意するもの過去のチェーンデータを備えたブロックエクスプローラー提案のステータスを確認するためのGitHub上のBIPリポジトリ

問い

  1. なぜネットワークは、すべてのノードを同時にアップグレードさせることなく、より厳格なルールを採用できるのか?
  2. 2017年8月、ビットコインキャッシュがビットコインから分裂する原因となった具体的な構造上の変更は何か?
  3. 2013年3月、ソフトウェアのバグはどのようにして、誰も意図しなかった2つの競合するチェーンを生み出したのか?

探究

  1. ソフトフォークはコンセンサスルールを厳格化するものである。新しい厳格なルールの下で有効なブロックやトランザクションは、古い緩やかなルールの下でも引き続き有効である。この後方互換性により、アップグレードしていないノードはそのチェーンを受け入れ続け、アップグレードしたノードは新しい制約を適用する。ハッシュパワーの大半が新ルールを適用している限り、ネットワークは1つのチェーンにとどまる。そうでなければ、2015年7月のように、ソフトフォークであってもネットワークが分裂しうる。
  2. ハードフォークとは、それまで無効だった構造が有効になるようにルールを緩和または変更するものである。たとえば、ブロックサイズの上限を引き上げると、より大きなブロックが受け入れられるようになる。すべてのノードがこうした新しい構造を受け入れるようアップグレードしなければ、ネットワークは互換性のない履歴を持つ2つの競合するチェーンに分断される。この分裂は2017年8月1日、ビットコインキャッシュがビットコインより大きなブロックサイズを採用した際に起きた。
  3. ソフトフォークのアクティベーションには慎重さが求められる。新ルールを適用するマイナーがハッシュパワーの過半数を占めていなければならないからだ。マイナーがシグナルを無視したり、古いルールを適用し続けたりすれば、結局チェーンが分裂するおそれがある。BIP9(2015〜2016年)はマイナーのシグナリングによるアクティベーションを標準化した。2,016ブロックの期間内で95%のブロックが準備完了をシグナルするとソフトフォークはロックインされ、さらに1期間を経た後、アップグレードしたノードがそれを適用した。
  4. 2013年3月の偶発的なフォークは、ある大きなブロックがバージョン0.8では受け入れられたものの、データベースの制限によりバージョン0.7では拒否されたことで発生した。ネットワークは分裂し、この問題は長いチェーンが勝つことによってではなく、マイナーが意図的に0.7へ戻したことによって解決された。その結果、0.7互換のブランチがもう一方を追い越した。この出来事は、バージョン間の意図しない違いがネットワークを分裂させうること、そして緊急時には、その時点でどちらのブランチの作業量が多かったかよりも、人間による協調的な判断が解決策として優先されうることを示した。
  5. 歴史上の事例がこうした仕組みを物語っている。P2SH(Pay-to-Script-Hash)は2012年にソフトフォークとして有効化され、古いノードとの互換性を保ちながら複雑なスクリプトを可能にした。SegWit(Segregated Witness)は2017年8月24日、ブロック481,824で有効化された。署名データをトランザクションIDの計算に使われる部分の外に移すことで、トランザクション展性を解消し、容量を増やした。続いてTaprootが2021年11月、ブロック709,632で有効化された。
  6. ビットコインキャッシュの分裂を2つのブロックエクスプローラーで確認してください。ブロック478,558は、2つのチェーンが共有する最後のブロックである。ブロック478,559をビットコインのエクスプローラーとビットコインキャッシュのエクスプローラーで調べると、両者は異なるブロックであり、ビットコインキャッシュ側のブロックは、旧来のビットコインのルールでは禁止されていた1MBを超えるサイズであることがわかる。この高さ以降、それぞれのチェーンは相手のブロックを無効として扱う。

重要な事実

  • ソフトフォークはルールを厳格化する。新ルールで有効な構造は旧ルールでも有効であり、後方互換性が保たれる。
  • ハードフォークはルールを緩和する。新ルールで有効な構造は旧ルールでは無効だったため、全体で採用されなければネットワークが分断されるおそれがある。
  • ビットコインキャッシュは、ブロックサイズの上限をめぐる意見の対立から、2017年8月1日にビットコインから分岐した。
  • 2013年3月のフォークは、バージョン0.7に存在した文書化されていないデータベースの制限が原因で、Bitcoin-Qt/bitcoindのバージョン0.7と0.8の間に偶発的に生じた分裂である。
  • SegWitは2017年8月24日、ブロック481,824でソフトフォークとして有効化された。
  • BIP9(2015〜2016年)により、マイナーはソフトフォークへの準備完了をシグナルできるようになった。ロックインには、2,016ブロックの期間内で95%のブロックのシグナルが必要だった。

演習 九・六・三・一

9集める2009年から2023年までのビットコイン史における主要なコンセンサス変更を9つ挙げてください。それぞれについて、年と、ソフトフォークかハードフォークかを記載してください。
6まとめるこれら9つの変更を、その影響に基づいて「容量の増加」「セキュリティの強化」「機能の追加」「バグ修正」「偶発的なフォーク」「失敗した提案」の6つのカテゴリーに分類してください。
3絞り込むこれらのグループを、なぜ変更がハードフォークではなくソフトフォークとして実施されるのか、という3つの核心的な理由に絞り込んでください。
1結晶化するソフトフォークとハードフォークの、有効性の集合における根本的な違いを1文で説明してください。

事実確認

日付、数字、主張は、下記に記載された公表資料と照合して確認しました。

インタラクティブ版で開く →

EN PT ES ZH KO RU DE FR MS