Fork Feature
Pocket

ブロックチェーンとはその名の通り、取引データが詰まったブロックが、チェーン(鎖)状に繋がることで形成されていることからそのように呼ばれています。このようにデータを積み上げていくデータベースとなっているのですが、ブロックは時に分岐してしまうケースが存在します。そのような状況を「ブロックがフォーク(分岐)する」と言います。フォークにはソフトフォークとハードフォークと呼ばれる分岐があり、今回はこれら2つのフォークについて紹介します。

 

ハードフォーク・ソフトフォーク

元々ハードフォークやソフトフォークといった言葉はソフトウェア開発において汎用的に使われていた用語ですが、ブロックチェーンにおいては固有名詞的に用いられています。ブロックチェーンにおいては、ブロックチェーンが分岐することが「フォーク」と定義され、分岐が合流することなく永久に続くものをハードフォーク、一時的な分岐をソフトフォークと言います。

 

ハードフォーク

フォークはもともとソフトウェア開発関係の用語として使われており、ハードフォークは後方互換性・前方互換性のないアップデートのことを指します。ブロックチェーンにおけるハードフォークは、旧バージョンで有効だったルールを新バージョンで無効とし、旧バージョンで無効だったルールを新バージョンで有効とすることです。

ハードフォークの際は、旧バージョンと新バージョンとでルールが異なるため、ブロックチェーンが再び合流することがなく、永続的な分岐となります。旧バージョンでのルールが新バージョンで無効になってしまうので、この変更は慎重に行う必要があります。

 

基本的に分岐は開発コミュニティーを中心として該当ブロックチェーンの問題解決を目指すために行われますが、コミュニティー内で分裂が起こることでもハードフォークが実行されます。ビットコインやイーサリアムでそのような動きが実際に起っており、旧バージョンのブロックチェーンを利用した仮想通貨とは別の仮想通貨を作る、すなわち2つの通貨に分裂する現象が起こります。

旧バージョンから新バージョンに移行することで以前のバージョンとは互換性がなくなり、これは仮想通貨では以前までの残高を共有することができなくなることを意味するので、分岐後にどちらのブロックチェーンを使用していくのかという選択を全利用者はしなくてはなりません。

 

ソフトフォーク

ソフトフォークとは、旧バージョンのルールをより厳密なものに変更する(有効だったものを無効化する)、またはルールを新たに追加する(無効だったものを有効化する)ことによって発生するブロックチェーンの分岐のことです。
ハードフォークの大きな違いとして、ソフトフォークでは新たなルールにより生成された新バージョンのブロックは旧バージョンでも有効なブロックとなることから、それは一時的なフォークであるということです。従って過半数のマイナーと検証ノードが新しいルールを採用するならば、いずれ新しいルールのブロックチェーンへと収束します。一方で、もし旧バージョンルールを再び採用するという逆のことが起きれば旧バージョンのルールへと戻る可能性もあります。すなわちソフトフォークは将来に対して互換性があるということです。

ソフトフォークは、ハードフォークとは異なり永続的な分岐ではないことから、ハードフォークより大きな影響はないとして、例えばビットコインでも過去に何回か実施されています。

 

 

ハードフォーク事例

イーサリアム

イーサリアムは2016年ハードフォークを行い、イーサリアム(Ethereum:ETH)とイーサリアムクラシック(Ethereum Classic:ETC)に分岐しました。このハードフォークの原因はThe DAOと呼ばれるハッキング事件です。

The DAOとは、ドイツ企業のSlock.itが中心となり始動したファンドのプラットフォームです。巨額の出資を集め注目されていましたが、スマートコントラクトのプログラムの不備をつかれ、当時の価格で数十億円相当の資金が流出するという大きな事件も起きてしまいました。このとき、The DAOの救済措置として、2016年7月にハードフォークが敢行されています。

現行のイーサリアムは、ハードフォークをしてブロックサイズを大きくしており、多数派で規模も大きくなっています。一方でこの時にハードフォークをしなかったのがイーサリアムクラシックであり、拡張性を制限し、安定性やセキュリティを重視しています。少数派で規模が小さいが、現行のイーサリアムに比べ、より非中央集権型となっています。

イーサリアムはThe DAOによるハードフォークの後にも、DDoS攻撃を受けてハードフォークを繰り返しており、ハードフォークを何度も実行したブロックチェーンとなりました。

画像:Ethereum , Ethereum Classic

 

ビットコイン

ビットコインでは過去にハードフォークしたことはありませんが、現在その懸念が高まっています。ビットコインのコミュニティではここ数年スケーラビリティ問題が取り上げられており、この問題によって幾つかの仕様が提唱されており、これが複数の仕様変更がバラバラに実施されることにより分離するとの懸念が高まっています。

2017年3月にはビットコイン取引所18社が連名で共同声明を発表しており、ビットコインの分裂が起こった場合には現在の本流であるビットコイン・コアをビットコイン(BTC,XBT)と認めると宣言しています。取引所にとっては、イーサリアムのように通貨が分裂することによる混乱は避けたいでしょう。この問題に関しては今後も注目が必要です。

 

ソフトフォーク事例

Pay to script hash(P2SH)

ビットコインにおいて、Pay to script hash(P2SH)によるトランザクションは、ソフトフォークによって実現されました。P2SHは当時、賛否両論であったが、現在では完全に定着しています。

P2SHとはビットコイントランザクションスクリプトです。ビットコインを送金する際に、相手の公開鍵のハッシュ値を使用するP2PKH(Pay to Public Key Hash)に対して、P2SHではスクリプトのハッシュ値を利用します。P2SHアドレスに対してビットコインを送金する時には、送金者は通常の送金と同じように3から始まるP2SHアドレスに対して送金できます。受け取り側はビットコインを消費するために何人かのデジタル署名が必要になることから、特にマルチシグネチャに使われます。

 

Segwit

Segwitなどもソフトフォークの一例です。Segwitとはビットコインに含まれている署名データを分離して別の領域に格納することで、ブロックサイズの上昇やトランザクション展性の解決といったビットコインブロックチェーンの問題を解決する方法です。

Segwitでは、旧バージョンのルールは無効にはならず、動作に影響がないようにブロックからWitness(署名)領域を分離させるという新ルールを追加していることから、ソフトフォークに当たります。

2017年7月の現状では、ビットコインでは実行されていませんが、Segwitが実行されたアルトコインが存在するなど、度々議論となっています。Segwitに関する詳細な記事は以下をご覧下さい。

ビットコインのブロックチェーンをスケールさせる「Segwit」

 

 

 

ブロックチェーンの仕様を大きく変更するために利用されるハードフォーク・ソフトフォークは、ブロックチェーンにおいて大きな出来事となるターニングポイントです。ブロックチェーンの歴史を学ぶ上では避けて通れない概念であり、今後も幾度とフォークに関する話題は登場することからも、よく理解しておきましょう。

Pocket

Aram Mine

Gaiax技術マネージャ。研究開発チーム「さきがけ」リーダー。新たな事業のシーズ探しを牽引。2015年11月『イーサリアム(Ethereum)』 デベロッパーカンファレンス in ロンドンに参加しブロックチェーンの持つ可能性に魅入られる。以降ブロックチェーン分野について集中的に取り組む。

Search