ブロックチェーンの分岐・分裂

仮想通貨の分岐

仮想通貨の取引が記録されていくブロックチェーンは,前の取引を記録したブロックに後の取引を記録したブロックが次々と接続され,鎖のように伸びていきます。

前のブロックに新しいブロックをつなげることができるのは,マイニング競争に勝利したノード(PC)であり,その勝利したノードが記録した取引が正しいものとされてブロックが作成され,そこにさらにブロックがつながっていくわけです。

では,マイニング競争に勝利したノードが複数出てきた場合にはどうなるでしょうか?

peer-to-peerネットワークでは,あるノードから別のノードへの情報の伝播には時間がかかるため,マイニング競争に勝利したPCが複数出てくる可能性があります。

その場合には,各PCが記録した取引内容は異なっていますから,異なる取引を記録したブロックが2つできてしまうわけです。

この場合には,両方のブロックが正しいものとされ,とりあえずは2本の異なるブロックチェーンが伸びてゆくことになります。

とはいえ,最終的には勝敗が決することになり,マイニング競争に勝利した対価であるビットコインは勝利したチェーンにブロックをつなげたマイナーのものとなります。

そして,この勝敗を決するルールは「ブロックチェーンが長く伸びたほうが勝利」というものです。

分岐した後にブロックを作成したマイナーは,分岐した2つのブロックチェーンのどちらに自分の作成したブロックをつなげるかを選択せねばなりません。

ただ,どちらのブロックチェーンが長く続くのかを判断する方法はありません。

一方のブロックチェーンが長くなっていき,もう一方のブロックチェーンの成長が止まったときに勝敗が確定します。

勝敗の確定により,敗者となったブロックチェーン(伸長が止まってしまったブロックチェーン)に記録された取引は,勝者となったブロックチェーンに取り込まれることになります。

また,敗者となったブロックチェーンは抹消されますので,そのブロックをマイニングしたマイナーはビットコインを得られないことになります。

仮想通貨の分裂

上記のとおりブロックチェーンは一旦分岐しても最終的に一本のチェーンに統合されるようなシステムになっています。

この分岐に対して,ブロックチェーンが「分裂」することもあります。

仮想通貨の分裂が発生するのは,プロトコルの変更をめぐって意見が対立し,2つのプロトコルが別々の仮想通貨に別れたときです。

このプロトコルというのは,コンピューター同士のやりとりに関する取り決めで,仮想通貨の動作のルールを決めるものです。

以下では分かりやすいように「プロトコル」ではなく「ルール」という言葉を使います。

ビットコイン等の仮想通貨においても,その動作を規律するルールは常に改良を続けられており,これは普通のソフトウェアと同様です。

しかし,システムの中心となって全体を仕切る権力者がいない仮想通貨のシステムでは,更新内容が受けいれられず,技術者同士でその更新をするかどうか意見が対立することがあります。

このような事態になると,意見の対立からルールが2つに別れるリスクが生じ,最悪の場合仮想通貨が,新しいルールで動く通貨と従来のルールで動く通貨の2つに分裂します。

ソフトフォーク

ソフトフォークとは,新ルール導入による通貨の分裂のうち,古いルールのままで動くコンピューターが新ルールに対応できるものをいいます。

つまり,取引が記録されたブロックチェーンが互換性を保ったまま分岐することがソフトフォークです。

このように新しいルールが導入され,それが旧ルールとの間で不整合を起こさない場合には,最終的にどちらのルールが支持されるかでルールが導入されるかどうかが決まります。

ソフトフォークでは一旦は新旧ルールという形で分裂しつつも,最終的にどちらかのルールに一本化されます。

永続的な分裂ではないため,比較的安全なルール変更方法であるとされています。

ソフトフォークの事例

実際のソフトフォークの事例としては,Pay to script hash(P2SH)やSegwitがあります。

Pay to script hash(P2SH)

Pay to script hash(P2SH)はマルチシグネチャのための方法の1つです。

マルチシグネチャ取引とは複数の署名が可能な取引のことです。

通常,コインの送金は単独で行えますが,取引に複数人からの承認を要求することができ,安全性や利便性がより向上する技術です。

たとえば,会社などがビットコインを保管する場合,一人だけで管理していると,横領などのリスクによってビットコインが流出する危険があります。

このような危険性を避けるために,複数人の署名がないとコインの移動ができないようにするのです。

ビットコインを送金するために複数の署名が必要となることから,ビットコインではPay to script hash(P2SH)を取り入れるソフトフォークを行ったことで送金のセキュリティが高まる結果になりました。

Segwit

Segwitはブロックに格納された記録を圧縮することで,ブロックサイズはそのままに多くのデータを格納することができるようにする技術です。

ブロックチェーンの仕様に変更が加えられていますが,Segwitでは過去のルールは無効にはならず,ブロックから取引データに含まれる署名をWitness領域に分離するという新しいルールを追加するもので,ソフトフォークに該当します。

ハードフォーク

ハードフォークとは,ブロックチェーンが分裂して新しい仮想通貨が誕生することを言います。

それまでのブロックチェーンとは互換性のなりブロックを重ねていくことで,それ以降は以前のブロックチェーンとは別のブロックチェーンが続くコインの分岐を指します。

たとえば,それまで「1ブロックの大きさは1メガバイト」というルールでビットコインが動いていたとします。

その後「1ブロックの大きさを大きくしたほうが有益ではないか」との意見が出て,一定の支持を受けたとします。

これにより議論が沸き,最終的には「1ブロックは2メガバイトに変更する」という意見と,「1ブロックは1メガバイトのままでいい」という意見が対立し,その一致が見られない状態となったとします。

この状況で「2メガバイト」派が,この新ルールを導入した場合,そのルールに従わないコンピューターは従来のルールの「1ブロック1メガバイト」で動いていますので,新ルールで作られた2メガバイトのブロックに対応することができません。

このような場合には,「従来ルールの仮想通貨」と「新ルールの仮想通貨」が独立して存在することになり,それぞれが別の仮想通貨としてブロックチェーンが伸びていくことになります。

ハードフォークの事例

実際のハードフォークの事例としては,2016年7月に行われたイーサリアムとイーサリアムクラシックの分裂や,2017年8月に行われたビットコインとビットコインキャッシュの分裂などがあります。

イーサリアムとイーサリアムクラシック

イーサリアムのハードフォークの原因はThe DAO事件と呼ばれるハッキング事件です。

このハッキング事件により数十億円相当のイーサリアムが盗まれており,これに対する休載措置としてハードフォークが行われたのです。

このハードフォークによりイーサリアムはブロックサイズを大きくし規模も大きくなりましたが,一方でイーサリアムの仕組み自体に問題はなく取引を無かったことにしてまうほうが問題であると考えるメンバーによって元のイーサリアムも利用し続けられました。

この元のイーサリアムは,イーサリアムクラシックというイーサリアムとは別の通貨として存続しています。

ビットコインとビットコインキャッシュ

ビットコインとビットコインキャッシュのハードフォークは,スケーラビリティ問題が原因となって発生しました。

仮想通貨はブロックチェーンで管理されていますが,このブロックの中に記録されるデータの容量が多くなることで処理に支障が出て,送金や決済の遅れの原因となることをスケーラビリティ問題といいます。

ビットコインの場合には,ブロックサイズは1メガバイトで10分間に1回のブロックが生成されると決められているため,ブロック容量がすぐに満杯になってしまし,他の仮想通貨に比べ処理が遅れがちになることがあります。

この問題を解決するために提示された解決方法は2つでした。

ひとつはブロックサイズを拡大して解決する方法であり,もうひとつは取引のデータを圧縮する方法でした。

取引データの圧縮という方法であれば従来のルールとも互換性があったのですが,ブロックサイズの拡大の方法は従来のブロックチェーンのままでは互換性がなくなってしまうのです。

結局この対立により,ビットコインはハードフォークし,ブロックサイズ拡大のルールによるビットコインはビットコインキャッシュとして別の通貨となりました。

上部へスクロール