今回は仮想通貨専門用語の勉強です。
だいたい意味はわかるけど、もうちょっと掘り下げて勉強してみるCrypto Currency(仮想通貨)の専門用語のコーナー。
Bitcoinで一躍有名になったハードフォーク(Hard Fork)と言うワード。これと近しい言葉としてソフトフォーク(Soft Fork)という言葉もありますが、これらはいったいどんな違いがあるのか?
そもそも何がどうなるとそれが起きるのか?
その辺を詳しく調べてみます。
なお、他のサイトではこのForkの事をわかりやすくざっくりと解説しているので、ここではあえてちょっと深掘りして詳しく解説してみます。
目次
フォーク(Hard Fork)の定義
以下の時点でフォークが発生します。
①悪意ある介入などで、2つの異なるデータが作られることでブロックが二つ作られます。
②プロトコルのアップグレードがあった時点で、異なるバージョンのソフトウェアを使用している人は、古いバージョンと新しいバージョンの2つの異なる元帳を作成する場合があります。
前者の方では、通常は分岐したブロックが続かずに消滅します。
後者ではプロトコルの種類によって、いわゆるハードフォークが起きる可能性があります。
とりあえず、主にブロックチェーンのルールを変更した時はこのフォークが起きると思ってもらっていいです。
ハードフォーク(Hard Fork)の定義
(wiki/Hardforkより、解釈して和訳)
ノードとはマイニングに使うPCなどのこと。
マイニングがないとブロックは生成されず、生成されないとブロックチェーンが成り立たなくなってしまいます。結果その仮想通貨(暗号通貨またはトークン)は使えなくなるわけです。
で、ハードフォークが起きると、今までのノードはアップグレードしない限り、新しいプロトコルで認識されなくなります。つまりそのままだと、新しいプロトコルではブロック生成ができなくなり、今までの仮想通貨は使えなくなるわけです。
ただし、ブロックチェーンの特性上、今までの古いデータ(履歴)、つまり過去のブロックはすべて保存されているため、引き続きそのまま古いブロックチェーンでマイニングができます。
ということで、結果古いノードと新しいノードそれぞれで別々のブロックチェーンができてしまい、いわゆる分岐が起きてしまうのです。
一般的にはユーザーが改善されたブロックチェーンへ流れていき、古いチェーンはそこでストップしますが、今は分岐による通貨をタダで獲得するためにわざと分岐させるようなことが多いみたいです。
これはどちらともマイニングをやめない限りそのまま分岐した状態で進み続けますが、もちろん相互性はないので実質、別の仮想通貨として2つ存在することになります。
ソフトフォーク(Soft Fork)の定義
過半数のマイナーおよびノードが新しいプロトコルをそのまま採用するのであれば、分岐の可能性はありません。
(wiki/Softforkより、解釈して和訳)
ソフトフォークでは、新しいルールを受け入れるだけで全てのノードはそのまま移行できます。なお、これを半数以上のユーザー(ノード)が拒否すると元のフォーク前の状態に戻ります。
つまり多数決によって、新しくなるか元のままかのどちらかに落ち着くということです。分岐はしません。
フォーク(Hard Fork)のデメリット
フォークが起きると、ブロックチェーンが分岐する可能性がありますが、その時に片方のブロックがストップすると、最悪それまでの記録が失われる可能性があります。また、この時にいわゆるリプレイアタック(Replay Attack)の対象になる恐れもあります。
これらのことから、一般的には取引所などではフォーク中の仮想通貨は取り扱いできないようにします。
「The DAO」のハッキングからEthereum Classicの誕生まで
以前起こった「The DAO」のハッキング事件は仮想通貨界で最も有名な事件だと思います。
2016年に発足したベンチャーキャピタルファンド(投資ファンド)「The DAO」ではEthereumブロックチェーンのシステムを運営のコアとして扱っていましたが、2016年6月にDAO自体のコードの脆弱性(Split機能というもの)を利用されてハッキングされます。
この際にハードフォークの特性を利用して、ハッキングに対抗しました。
具体的には、強制的にプロトコルを変更させてハッキングで使用した古いノードでの認証を無効にする方法をとりました。
※この時点で盗まれた側はそれがなかったことになります。
ただし一部のユーザーはこれに反対したため、この時点で分岐が起きて、元のブロックチェーンの方は「イーサリアムクラシック」として今尚ブロックの生成を続けています。
なお、盗まれた資金は無くなることなくハッカーの元へと流れているそうです。