ビットコインのソフトフォーク・ハードフォークとは?

▼おすすめの取引所ランキング

ビットコインが分裂するというニュースによってよく聞くようになったソフトフォーク・ハードフォークという言葉、何のことだかよくわからない人も多いのではないでしょうか?

本記事では初心者向けにソフトフォーク・ハードフォークの解説を行います。

そもそもフォークって?

ソフトフォーク・ハードフォークの説明に入る前に、まず”フォーク”について説明します。フォークというのは、ビットコインのブロックチェーンの分岐のことです。

ブロックチェーンというのは、取引履歴をブロックと呼ばれる塊にまとめて鎖のように繋いだデータ構造にして保存する技術です。マイナーは定期的に取引履歴をブロックにまとめて、一本の鎖となるように末尾に追加していきます(図1)。

図1 マイニングの様子、新しいブロックが見つかったら末尾に追加する

運よく同時に一つのブロックしか見つからなかった場合は上記でいいのですが、ほぼ同じ時間に複数のブロックが見つかることもあります(図2)。

図2 同意に複数のブロックが見つかった場合分岐が発生する

ブロックチェーンが分岐すると、マイナーはブロックDを伸ばそうとする集団とブロックEを伸ばそうとする集団に分かれます。ブロックチェーンでは長い枝が本物であるというルールがあるため、早く次のブロックを見つけてチェーンを長く育てることが出来た枝が生き残ります。

同じタイミングでブロックが見つかる確率はそれほど高くないので、一定時間後にはブロックDの枝とブロックEの枝のうちどちらか一方が長くなります(図3)。例えば、ブロックDの枝に次のブロックが先に見つかったとすると、ブロックDの枝が本筋のブロックチェーンとなります。

図3 分岐してもすぐに一本になる

このようにブロックチェーンは常に小さな分岐を発生し続けているのですが、一番長く残った枝が本物というルールで結果として一本に収束します。

ソフトフォーク

ソフトフォークやハードフォークは、前述した日常的なフォークとは異なり、ソフトウェアのアップデートなどでブロックチェーンの運用ルール(正しいブロックの作り方等)が変わった時に発生するフォークのことです。

ビットコインは分散ネットワークであり管理者がバラバラであるため、一斉にソフトウェアアップデートを行うことは困難です。バージョンの異なるノードがネットワークに混在することになります。古いルールで動くノードと新しいルールで動くノードが別々のチェーンを育て維持することがあるのです。

ソフトフォークとハードフォークの違いは、古い運用ルールと新しい運用ルールに互換性があるか・ないかです。ソフトフォークは、古い運用ルールと新しい運用ルールに互換性がある場合、ハードフォークは互換性がない場合です。

ソフトフォークはルールに互換性があるため、ソフトウェアアップデートを実施するノードが順調に増えていくならば、大きな問題を起こすことはありません。これまでもビットコインは小さなソフトフォークを繰り返して改善されています。

ハードフォーク

ハードフォークでは、ルールに互換性がないため、全てのノードのソフトウェアがアップデートされないと、チェーンの分岐が永続化してしまう可能性があります(図4)。

図4 ハードフォークによるチェーンの分岐

政治的なハードフォークではコインが分裂する

11月に予定されているsegwit2xのハードフォークのように政治的な理由で実行され、両方のチェーンに一定数のマイナーが残る場合、分岐は永続化することが想定されます。

また、適切なセキュリティ対策等を施さなければ、リプレイプロテクション等の深刻な問題を抱えることになります。リプレイプロテクションは、分岐後における双方のチェーンでビットコインのアドレスやトランザクションが共通であることを利用した攻撃で、片方のチェーンでコインを移動するともう片方のチェーンでもコインが移動するといった問題が生じる場合があります。

実は、segwit2xは上記のような問題を抱えたハードフォークであり、今ビットコインはとても危険な状態であると言えます。

まとめ

  • ビットコインにおいてフォークは日常的に起きているがすぐ解消される
  • ソフトウェアの更新に伴うフォークには後方互換性のあるソフトフォークと後方互換性のないハードフォークがある
  • ソフトフォークは比較的安全
  • ハードフォークは政治的な要因が絡むと危険

ビットコイン (bitcoin) ブロックチェーン 仮想通貨 用語解説