暗号資産(仮想通貨)の基礎

ブロックチェーンで発生する3種類のフォーク状態について詳しく解説


15:ブロックチェーンにフォーク状態が発生する3つのケース

第13回の「コンセンサスアルゴリズム」の説明で、本来1本の線のようにつながった「チェーン」であるべきブロックチェーンが枝分かれする「フォーク」状態になることがあるという説明をしました。
それを解決するのがコンセンサスアルゴリズムです。
フォーク状態はこのような場合のほかにも発生するので、もう少し詳しく見てみましょう。

一時的フォーク状態

ブロックチェーンのコンセプトは新しいトランザクションを時系列で追加していくことなので、普通は新しいブロックが今までのブロックに1個だけ追加されていきます。
ですから1本の線のようにつながるブロックのチェーンの形になるのです。
しかし、集中した権限を持つ管理者がいないので、複数のマイナーがほぼ同時に新ブロックの生成に成功してそれぞれがブロックチェーンネットワーク全体にブロードキャストすると、各マイナーにほぼ同時に新ブロック候補が到着してしまいます。

例えば、3つのマイナーがほぼ同時に新ブロックの生成に成功したとすると、図1のように、1本のチェーンの先にマイナー①、マイナー②、マイナー③各々が生成した新ブロック候補が存在します。
1本が3本に別れるのでフォークのような形です。

各マイナーで作成したブロックを統合したイメージ

このような状態が現れた場合、さらに次の新ブロックの生成を待ちます。
例えばマイナー④がブロック③の後ろにつなぐ前提で新ブロック④の生成に成功すると、ブロック③、ブロック④のチェーンだけが長くなります。
他のマイナーの動きも監視するので、いったんフォークが発生すると以後6ブロックの状態を見て、一番長いチェーンを「正式に合意を得たチェーン」として採用します。

新ブロックを生成するのに必要となるPoW(Proof of Work)という計算(後の回で具体的に説明します)は運を天に任せて多くの計算をした結果成功するという性質なので、複数のマイナーがほぼ同時に新ブロックの生成に成功するという事象はめったに発生しません。
したがって6ブロックも様子を見れば主流となるチェーンは1本に絞られています。

このように、コンセンサスアルゴリズムにより解決される(1本の線のようなチェーンに戻る)フォークは「一時的なフォーク」です。
フォーク状態にはこのほかにもソフトフォークとハードフォークというものがあります。
次にこれらについて説明します。

3種類のフォーク

ブロックチェーンの仕様変更で生じるソフトフォーク

1本のチェーンを維持したままブロック生成に関する仕様変更が行われた場合にはソフトフォークという状態が発生します。

ある仮想通貨に関するブロックチェーン制御のブロックの仕様は、その仮想通貨について話し合うコミュニティにより定義され、基本となるソフトウェアがオープンソースとして公開されています。
例えばビットコインではbitcoin.orgからコミュニティの情報を得て、ブロックチェーンを制御するソフトウェアはGitHub上で公開されています。
このようなコミュニティの議論の中で、セキュリティ対策などにまれにブロックの仕様変更が決定されることがあります。

ブロックの仕様変更はソフトウェアの変更を意味しているので、変更日時を決めて世界中のマイナーが一斉に変更を実行します。
しかし、マイナーによっては変更後のソフトウェア開発の変更タイミングに間に合わなかったりして変更前の旧仕様のまま新ブロックを生成してしまう可能性があり、同様に変更が間に合っていないマイナーは旧仕様の新ブロック生成を受け入れてしまいます。
つまり旧仕様のチェーンも伸びる可能性があります。

こういう状況が発生すると、新仕様で生成されたブロックによるチェーンと旧仕様で生成されたチェーンの2本が存在するフォーク状態です。(図2の中段)
これをソフトフォークと呼んでいます。

世界中のマイナーは時間の経過とともにいずれはすべて新仕様のブロックを生成するソフトウェアを使うことになるので、旧仕様のチェーンは成長しなくなり新仕様のチェーンだけが早く成長し正式なチェーンとして採用されます。

2種類の仮想通貨に別れてしまうハードフォーク

さらにまれなことですが、1つの仮想通貨の仕様が議論される中で、2つの方式が提案、検討された結果、コミュニティ内の合意がとれなくなり両方の仕様の仮想通貨が併存する場合があります。(図2の下段)
これをハードフォークと呼んでいます。

例えばビットコイン(BTC)では2017年にビットコインキャッシュ(BCH)のハードフォークが発生しました。ハードフォークでは両方の仕様が生き続けるので現在でもBTCとBCHの両方が使用可能です。

興味深いポイントは、ハードフォークで二つに分かれたブロックチェーンは、ハードフォーク時点以前のブロックについては同じものを参照しているという点です。
2017年より前にビットコインを持っていた人は、ハードフォークにより元の仮想通貨(X)と新仮想通貨(Y)を同額持っているという形で両方の新ブロックが生成されます。
ビットコインで言えば、もともと1BTCを持っていた人はハードフォークにより、1BTC+1BCHを持つことになり得をした気分になります。
原理的には両者合わせて旧仕様の1BTCの価値しかないはずなのですが、仮想通貨取引上の心理的な効果からいくらか得をすることが多いようです。

今回は3種類のフォークについてまとめてみました。
仮想通貨の取引をするだけの一般人には無関係と思われるかもしれませんが、自分が持っている仮想通貨でハードフォークが発生する場合には価値の上下や新通貨保有などで関連が生じます。
ときどきは注意して情報を集めておいた方が良いかもしれません。

Provided by
上野 仁(Hitoshi Ueno)

1984年山梨大学大学院修士課程(計算機科学専攻)修了後、株式会社日立製作所入社。
システム開発研究所、エンタープライズサーバ事業部などで主としてコンピュータアーキテクチャおよび基本ソフトウェアの研究開発に従事。
2015年より第一工科大学東京上野キャンパス情報電子システム工学科教授に就任。
2023年より東京情報デザイン専門職大学教授。
生体信号処理に関するプログラム開発や種々の先端ソフトウェアついての調査研究に興味を持つ。
技術士(情報工学)。
博士(工学)。

>上野 仁氏監修の「ビットコイン(暗号通貨)」に関する記事一覧はこちら


本ホームページに掲載されている事項は、投資判断の参考となる情報の提供を目的としたものであり、投資の勧誘を目的としたものではありません。投資方針、投資タイミング等は、ご自身の責任において判断してください。本サービスの情報に基づいて行った取引のいかなる損失についても、当社は一切の責を負いかねますのでご了承ください。また、当社は、当該情報の正確性および完全性を保証または約束するものでなく、今後、予告なしに内容を変更または廃止する場合があります。なお、当該情報の欠落・誤謬等につきましてもその責を負いかねますのでご了承ください。

この記事をシェアする

ホーム » 暗号資産(仮想通貨)の基礎 » ブロックチェーンで発生する3種類のフォーク状態について詳しく解説