【そふとふぉーく】

ソフトフォーク とは?

最終更新:
💡 新ルールで合格するブロックは、旧ルールでも合格

ブロックチェーンで、有効と認める範囲を狭めるルール変更。新ルールで有効なブロックは旧ルールでも有効となるため、旧ノードとの後方互換性がある。

📌 このページのポイント
ソフトフォーク:有効な範囲を狭める 旧ルールで有効なブロック 新ルールでも有効 A 旧・新とも受け入れる B 旧のみ有効 A:新しい条件も満たす B:追加された条件に違反 旧ノードは追加条件を検証できない
変更が有効になった後の、ブロックの判定範囲の模式図。新ルールで有効なAは旧ルールでも有効だが、旧ルールだけを満たすBは新ルールでは無効になる。
ひよこ ひよこ
ソフトフォークはハードフォークの軽い版なの?
ペンギン先生 ペンギン先生
変更の大きさよりも、互換性の違いに注目しよう。ソフトフォークは有効と認める範囲を狭める変更だよ。新しいルールに従うブロックは、古いルールでも有効と判断されるんだ。
ひよこ ひよこ
範囲を狭めるって、どういうこと?
ペンギン先生 ペンギン先生
仮にブロックサイズの上限を小さくする変更を考えると、新しい上限以内のブロックは古い上限も満たすよね。一方、古い上限以内でも新しい上限を超えるブロックは、新ルールでは無効になる。これは仕組みを説明する仮の例だよ。
ひよこ ひよこ
それなら、古いノードのままで十分?
ペンギン先生 ペンギン先生
古いノードは追加された条件を検証できないよ。旧ルールでは有効でも新ルールには違反するブロックを、自分では見分けられない。後方互換性は、新ルールを自分で検証できることまで保証しないんだ。
ひよこ ひよこ
具体的な例はある?
ペンギン先生 ペンギン先生
ビットコインのSegWitだよ。署名などのwitnessデータを従来部分から分離して扱う仕組みで、ソフトフォークとして導入された。旧ノードも受け入れられる形を保つ一方、witnessの検証には対応したノードが必要なんだ。
ひよこ ひよこ
互換性があれば、簡単に導入できるの?
ペンギン先生 ペンギン先生
導入方法や支持の集め方は別に考える必要があるよ。ビットコインのPoWで採掘側の支持を論じるときも、マイナーの人数と計算能力の割合は違う。ソフトフォークという分類だけで、常に51%なら十分、あるいは分裂しないと決められるわけではないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ソフトフォーク」って出てきたら「旧ルールで有効な範囲を狭める変更」と思えればだいたいOK!
📖 おまけ:英語の意味
「Soft Fork」 = ソフトフォーク(互換性を保つルール変更)
💬 Softはここでは旧ルールとの互換性を保つ変更の区別に使われるよ。「穏やかで、導入も簡単」という保証ではないんだ。

参考資料

← 用語集にもどる