最近ビットコインにおいて、昨年末にコード自体はBitcoin Coreに導入されたTaprootのソフトフォークの具体的なアクティベーション方法が議論の的となっています。
今日は過去のソフトフォークのアクティベーション方法の問題点と、その根本的な原因を解決する1つの提案について軽く触れます。ソフトフォークとハードフォークの違いや、Taprootの内容についてはビットコイナー反省会にて近日公開予定のサトシ学園シリーズの動画を収録したので、公開されたらぜひご覧ください。
ソフトフォークのアクティベーション方法
ビットコインは何度かソフトフォークを経験してきましたが、規模が大きくなるにつれ、ソフトフォークの導入により慎重さが求められるようになってきました。前回のソフトフォークである2017年のSegWit導入時は、一定期間内にブロック数の95% (≒ハッシュレートの95%)が導入準備完了をシグナリングしないとアクティベーションされないBIP9という仕組みで行いました。
しかしブロックサイズ論争の真っ只中だったため、マイナーによる投票のように解釈されてしまい、たった5%のブロック数で導入を阻むことができてしまうことから混乱を引き起こしてしまいました。
今回は導入されないまま期限を迎えたときの挙動を指定できるBIP8という仕組みを使って新たな導入方法を試そう、という向きで話が進んでいますが、期限切れ時にデフォルトでアクティベートされてしまう設定(Lock-in On Timeout LOT=true)の是非や、シグナリング期間を複数組み合わせて問題発生のリスクを低減する具体的な手順について意見が割れています。