ソフトフォークとは?ブロックチェーンのアップグレードについて解説
ソフトフォークが発生すると、ブロックチェーンのルールは緩くなるのではなく、より厳しくなります。アップグレードをスキップした古いノードは、引き続き新しいブロックを追跡します。何の問題もなく、チェーンが分裂することもありません。SegWitやTaprootなどのビットコインのアップグレードでこの用語を目にしたことがあるかもしれませんが、ハードフォークと何が違うのか疑問に思ったことがあるかもしれません。
専門用語は省いて、分かりやすく説明しましょう。暗号通貨を保有している方、ノードを運用している方、あるいはなぜ一部のアップグレードは混乱を招き、他のアップグレードは気づかれずに済むのか疑問に思っている方はいませんか?大抵の場合、その違いはたった一つの点に集約されます。
ブロックチェーンにおけるソフトフォークとは何ですか?
ソフトフォークはブロックチェーンのルールを厳格化するものであり、決して緩めるものではありません。以前のルールでは承認されていたブロックが、今では拒否される可能性があります。しかし、新しい、より厳格なルールに従うブロックは、古いソフトウェアでも有効なものとして承認されてしまいます。
この一方通行の互換性こそが、ここでの重要なポイントです。古いノードは新しいルールを詳細に理解する必要はありませんし、正直なところ、理解する必要もありません。有効に見えるブロックだけを見て、これまで問題なく処理されていたものがもはや通用しなくなっていることに気づかずに、処理を続行するだけです。
ハードフォークはこの状況を逆転させます。古いノードでは到底検証できない方法でルールを緩和したり、完全に書き換えたりするのです。ルールを厳格化するか緩和するか、このたった一つの違いが、アップグレードによって全員が同じチェーン上に留まるか、ネットワークが二分されるかを決定づけるのです。
より分かりやすいイメージとしては、ルールブックが書き換えられるのではなく、縮小していくというものです。フォーク前は、一定範囲のブロックが有効とみなされていました。フォーク後は、その範囲が少し縮小します。以前は有効だったブロックの中には、アップグレードされたノードによって拒否されるものもあります。しかし重要なのは、新しいルールで受け入れられるブロックはすべて、以前のルールでも問題なかったということです。新しいものは何も追加されず、古いものが排除されるだけです。パッチが適用されていないソフトウェアが何事もなかったかのように動作し続けるのは、まさにこのためです。
ソフトフォークは実際どのように機能するのでしょうか?
仕組みはノードの動作とルールの検証に集約されます。おおまかに言うと、以下のようになります。
- 開発者は、有効なトランザクションまたはブロックのセットを絞り込む変更を提案します。これは通常、制限を修正したり、新しい機能を追加したりするために行われます。
- コミュニティとノードオペレーターは、ビットコイン改善提案(BIP)のような正式なプロセスを通じて、提案内容を検討、テスト、議論する。
- マイナーやバリデーターは、多くの場合、自身が生成するブロックに組み込まれた仕組みを通じて、新しいルールへの支持を表明し始める。
- シグナリングが活性化閾値(一般的には直近のブロックの90~95%程度)に達すると、アップグレードされたノードによって新しいルールが適用されるようになる。
- アップグレードされていないノードは、既存のロジックを使用してブロックの検証を継続します。新しいルールは古いルールのサブセットであるため、新しいルールを満たすブロックは古いルールも満たすため、アップグレードされていないノードは問題なくそれらを受け入れます。
- ネットワークは単一のチェーンとして動作し続け、アップグレードされたノードはより厳格なルールを適用し、アップグレードされていないノードは技術的にはルールを適用することなく、その恩恵を静かに受けている。
その結果、参加者全員が同時に行動する必要のない、リアルタイムのアップグレードが実現します。まさにこれが、ソフトフォークがほとんどの日常的なブロックチェーン改善において最適なツールとなっている理由です。強調しておきたいのは、アップグレードされていないノードは、新しいルールを自ら積極的に適用しているわけではないということです。ネットワークのハッシュパワーの大部分が、すべてのノードに対してこれらのルールを適用しているという事実に、ノードはただ乗っているだけなのです。これが、ソフトフォークが実際にどれだけ速く、どれだけ安全に普及するかに、マイナーの採用が非常に重要となる理由の一つです。

ソフトフォークとハードフォーク:本当の違いは何?
ソフトフォークとハードフォークのどちらが良いかという議論はよく持ち上がりますが、簡単に言えば互換性の方向性です。ソフトフォークは、古いソフトウェアでも受け入れられる範囲でルールを狭めます。一方、ハードフォークは、古いソフトウェアが真っ向から拒否するような形でルールを変更します。
| 側面 | ソフトフォーク | ハードフォーク |
|---|---|---|
| 規則の指示 | より厳格で、有効なブロックを狭める | 緩い、あるいは根本的に変わった |
| 後方互換性がありますか? | はい、古いノードは新しいブロックを受け入れます | いいえ、古いノードは新しいブロックを拒否します |
| 全面的なアップグレードが必要ですか? | いいえ | はい、またはチェーンが分岐します |
| 連鎖分裂のリスク | 低い | 全員一致の合意が得られない場合は高い |
| 調整が必要 | マイナー/バリデーターのシグナリング | 完全なネットワーク契約 |
| 例 | SegWit、Taproot | ビットコインキャッシュはビットコインから分離した |
ソフトフォークは、ネットワーク全体が即座に合意する必要がないため、比較的混乱の少ない選択肢となる傾向があります。一方、ハードフォークは、期限内にアップグレードしないユーザーは事実上、互換性のない別のブロックチェーンを使い続けることになるため、本質的に大きな混乱を招きます。
ハードフォークがニュースの見出しを飾る一方で、ソフトフォークがほとんど取り上げられないのもそのためです。ハードフォークでは、新しいティッカーシンボル、新しい取引所への上場、そしてどちらのチェーンが「真の」プロジェクトを代表しているかについての議論が巻き起こることがよくあります。一方、ソフトフォークは通常、ウォレットソフトウェアのバージョン番号が上がるだけで、ほとんどのユーザーは内部ルールが変更されたことに全く気づきません。
ビットコインおよびそれ以外の分野におけるソフトフォークの実例
ソフトフォークは理論上の概念ではありません。ビットコインはこれまで何度もソフトフォークを用いて、ネットワークを強制的に分割することなく機能を追加してきました。
- SegWit(2017年): Segregated Witnessは、トランザクションデータがブロックサイズにカウントされる方法を再構築し、トランザクションの可塑性と呼ばれるバグを修正し、ライトニングネットワークの基礎を築きました。これは、ビットコインの歴史上、最も多く引用されているソフトフォークの事例です。
- Taproot(2021): Schnorr署名を導入し、複雑なトランザクションのプライバシーと効率性を向上させると同時に、アップグレードしていないノードとの互換性を維持しました。
- P2SH (2012): Pay-to-Script-Hashは、マルチシグネチャウォレットやスマートコントラクトのようなスクリプトをオンチェーンで表現する方法を簡素化し、ネットワークの分裂を引き起こすこともありませんでした。
- BIP66(2015):デジタル署名に厳格なDERエンコーディングを強制し、検証の不整合を引き起こす可能性があった技術的な抜け穴を塞いだ。
これらはそれぞれ、特定の意図的な方法でビットコインのルールを強化したものであり、いずれもコミュニティを2つの競合するコインに分裂させることなく実施された。
開発者がハードフォークよりもソフトフォークを選ぶ理由
選択肢がある場合、ほとんどのビットコインとイーサリアムのコア開発者は、技術的な好みだけでなく、まずソフトフォークを選択する。その理由は非常に実用的だ。
まず、誰も同じ日にアップグレードを強制されることはありません。ウォレット、取引所、マイニングプールなどは、厳しい期限に追われることなく、それぞれ独自のスケジュールで移行できます。大規模な場合、この柔軟性は非常に重要になります。なぜなら、何千もの独立した事業者が同時にアップグレードを調整するのは本当に難しいからです。
そして、統一性という点も重要です。ソフトフォークによってネットワークとコインは一体化されます。競合するトークンは出現せず、取引所はどちらのチェーンが「本物」かを判断する必要もありません。コミュニティが正当性を巡って分裂することもありません。特に決済ネットワークにとって、こうした安定性は非常に大きな価値があります。
可逆性も重要です。古いノードは新しいルールを完全に適用することを自ら約束することはないため、ソフトフォークが失敗した場合でも、既に独立した2つ目の取引コインを生み出してしまったハードフォークを元に戻すよりも、はるかに少ない手間で元に戻せる場合があります。
ソフトフォークのリスクと限界
ソフトフォークは一般的に安全な選択肢と考えられているものの、リスクがないわけではありません。いくつかの実際の制約事項を知っておくことは重要です。
- アップグレードされていないノードは、依然として古いルールに基づいてブロックを検証するため、新しいルール固有の条件が実際に正しく適用されているかどうかを独自に検証できず、多数派の判断を信頼することになります。
- マイナーの相当数がアップグレードを拒否し、古いルールに基づいてブロックを生成し続ける場合、紛争が発生する可能性があり、技術的には「ソフトフォーク」であったとしても、事実上の分裂に至る場合がある。
- マイナーのシグナルに大きく依存しているということは、ソフトフォークの有効化がマイニングプールの集中度によって影響を受ける可能性があり、このプロセスが実際にどれほど分散化されているのかという疑問が生じることを意味する。
- ソフトフォークの中には、見た目以上に安全に実装するのが難しいものがある。開発者は、新しいルールが古いルールの厳密な部分集合であることを確実にしなければならないため、そこに少しでも間違いがあると、予期せぬ検証上のギャップが生じる可能性があるからだ。
こうしたことは、ソフトフォークを危険なものにするわけではありません。単に「後方互換性がある」ことが「リスクがない」ことと同じではないということであり、ハードスプリットが選択肢にない場合でも、連携は依然として重要であるということです。

ブロックチェーン上でソフトフォークが有効化される仕組み
新しいコードだけではソフトフォークは稼働しません。ネットワークが実際に準備完了していることを確認する必要があり、それは調整作業です。
ビットコインでは、この目的のためにいくつかの方法が試されてきました。BIP9方式のシグナリングは古典的な方法です。マイナーはマイニングしたブロックに小さなマーカーを挿入し、いわば「準備完了」のサインを送ります。一定期間内に、通常95%近くの最近のブロックがそのサインを送ると、新しいルールが確定します。その後、ルールの適用が開始されます。
Speedy Trialやユーザー主導のソフトフォークなど、より新しいアクティベーション方法が登場したのは、マイニングプールの対応が遅かったり、政治的に消極的だったりすると、純粋なマイナーによるシグナル伝達だけではアップグレードが進まない可能性があるためです。これらの代替メカニズムにより、ノードオペレーターやより広範なコミュニティは、アップグレードの実施について、マイナーだけに決定を委ねるのではなく、より直接的な影響力を持つことができます。
2021年のTaprootのアクティベーションは、これらの手法がどのように連携して機能するかを示す好例です。Taprootは、マイナーが準備完了を通知するための期間を短く明確に定めた「Speedy Trial」と呼ばれる改良されたシグナリングプロセスを採用し、マイナーの完全なサポートがなくてもコミュニティがアップグレードをアクティベートできるフォールバックパスも用意しました。シグナリングは問題なく通過したため、実際にはこのフォールバックはあまり重要ではありませんでしたが、その存在は、ビットコインの初期の、純粋にマイナー主導のソフトフォークからアクティベーション設計がどれほど進歩したかを示しています。
最後に
静かで段階的、そして自己崩壊することなく、ほとんどのブロックチェーンネットワークは実際にこのように進化します。ルールを緩めるのではなく厳格化することで、ネットワークは機能を追加し、バグを修正し、より効率的に動作させることができ、アップグレードする機会がなかったユーザーにとっても引き続き利用可能です。暗号通貨インフラを選択する企業も、同じことを望むはずです。破壊的な変更ではなく、安定した統一された基盤の上に構築された改善です。Plisioもまさにそのような方向性です。安定性、互換性を備え、基盤となるネットワークが変化し続ける中でも、継続的に動作するように構築されています。