(英:User Activated Soft Fork)
UASFとはユーザーによるソフトフォークの略です。2017年7月現在ではこの実装方式をBIP148の俗称として呼ばれています。本稿ではBIP148についての記述となります。
BIP148はビットコインコアによるスケーリング問題の解決策として提案されたBIP141のSegWit実装が進まないため、2017年3月12日に提案されました。
BIPナンバー | BIP-148 |
レイヤー | コンセンサス (ソフトフォーク) |
提案者 | Shaolin Fry |
作成日時 | 2017年3月12日 |
目次
1.BIP-148の内容
BIP148はBIP141のオリジナルSegWitの実装を促すためにデザインされています。BIP141はBIP9の定義に沿った”version bits”のbit1を使用し、2016年11月15日から2017年11月15日までにコンセンサスの閾値が95%に達することで実装されます。
1-1.UASFの条件
これはBIP148も同様にBIP141と同じ実装のターゲット期間という後方互換性を持ちます。UASFが実行されるのは2017年8月1日で、もしこの日までにSegWitがビットコインのメインネットにてロックインまたはアクティベートされていない場合実行されます。ですがもし8月1日にSegWitがロックインまたは実装されていた場合にはUASFは起こりません。
2-2.8月1日のUASFノードによるブロック検証開始
8月1日になるとBIP148ノードはSegWitのシグナリングデータであるbit1を含まないブロックを全て拒絶しはじめます。これはハッシュパワーを持つ過半数のマイナーがこのソフトウェアを実行している場合、そうではない少数のマイナーの全てのブロックを拒絶することとなり、その結果この過半数のマイナーは常にビットコインネットワーク上のチェーンで最長 (ビットコインは最長のチェーンを正しいチェーンとする) となります。この結果SegWitのシグナリングであるbit1の比率が100%となり自動的にSegWitがアクティベートされます。
しかしUASFは過半数のマイナーの支持を得ていないため、8月1日にビットコインのブロックチェーンがSegWitを実装したコインとそうではないチェーンの2つが存在することとなります。
2-3.UASFの真の目的
ではUASFはチェーンの分裂を行うことを目的にしているのでしょうか?2016年のSegWitのマイナーによるシグナリング開始からSegWit導入を巡ったマイニングプールによってビットコイン政治が展開されており、ターゲット期間である1年の間硬直状態が続くと考えられていました。UASFの目的と支持するノードやスタートアップにより、マイナーにリスクを認識させることによってSegWitのアクティベートを促進させることを真の目的とし活動してきました。その結果SegWit2xというBIP148との互換性を持つSegWitの実装案が提案され過半数以上のマイナーの支持を得ました。
2.BIP141のデッドライン
SegWitのシグナリングのターゲット期間は2,016ブロック (約2週間) で、そのうち95%がシグナリングする必要があるため、確定するには最低1,916ブロック (13.3日)が必要です。
下記表はターゲット期間と支持率を表しています。
デッドライン日付 | 期間 | ターゲット期間 | SegWit支持率 | SegWit2x支持率 |
---|---|---|---|---|
2017年07月02日 | 期間17 | #471744 - #473760 | 42.31% | 84.03% |
2017年07月14日 | 期間18 | #473760 - #475776 | 45.63% | 86.56% |
2017年07月29日 | 期間19 | #475776 - #477792 | 46.73% (現在) | 86.46% (現在) |
2-1.SegWit2xかUASFという選択肢
現在のターゲット期間は19でBIP141のデッドラインは7月29日ですが現在の支持率は46.73%を推移しています。BIP141でアクティベートするにはブロック #476173 までに95%の閾値である必要がありますが、1916ブロック必要なため最終デッドラインは#475876ブロックです。
Copyright © 2017 BLOCKCHAIN LUXEMBOURG S.A. ALL RIGHTS RESERVED
#475876ブロックは7月15日に既にマイニングされており、この時点で7月31日予定のSegWit2xと8月1日のUASF前にビットコインコアが実装用意したBIP141での実装は不可能となりました。
3.UASFの歴史
ビットコインの歴史上、BIP16のP2SHソフトフォークはノードが新しいルールを強制することを所定のフラグデイで開始し、アクティベートを行いました。非中央集権であるビットコインは、チェーンやノードの強制はなく、常にユーザーの選択であり、ユーザーは自分が検証を行いたいチェーンのクライアントを選択することが重要です。