ソフトウェアは必ずバグなどを修正したり、性能を向上させるために継続的にアップデートを行う必要があります。仮想通貨の分野においては、こういったアップデートは「フォーク」と呼ばれます。
仮想通貨は分散型ネットワークなので、ノードと呼ばれるネットワークの全参加者は適切に協力するために、同じルールをフォローする必要があります。このルールのセットは「プロトコル」と呼ばれます。
ブロックチェーン上のブロックのサイズ、マイナーが新しいブロックをマイニングしたことによる報酬などがこのプロトコルに含まれている典型的なルールです。
仮想通貨において、フォークには2種類あり、ハードフォークとソフトフォークと呼ばれています。しかし、どちらの種類のフォークでも、仮想通貨のプロトコルの仕組みが根本的に変わります。
ソフトフォーク
ソフトフォークは下位互換性のある、仮想通貨プロトコルへの変更です。つまり、アップデートを行わなかったノードでも、新しいプロトコルのルールに違反しない限り、トランザクションを処理して、ブロックチェーンに新しいブロックを追加することができます。
ブロックサイズを3MBから2MBに縮小する新しいルールが設定されたとします。アップデートされていないノードでも、トランザクションを処理して、2MB、もしくはそれ以下の新しいブロックをブロックチェーンに追加し続けることができます。しかし、もしもアップデートされていないノードが2MB以上のブロックをネットワークに追加しようとしたら、アップデートに対応した新しいノードはそのブロックが新しいルールに違反しているため、そのブロックのネットワークへの追加を拒絶します。これによって、アップデートしていないノードはアップデートされたノードよりも非効率なので、新しいプロトコルへのアップデートを推奨します。
ハードフォーク
ハードフォークは以前のバージョンとの下位互換性のない、仮想通貨プロトコルへの変更で、新しいバージョンにアップデートしなかったノードはトランザクションを処理したり、新しいブロックをブロックチェーンに追加したりできなくなります。ハードフォークは既存のプロトコルを変更したり、改善したりするために使うこともでき、さらには新しい、独立したプロトコルとブロックチェーンを作るためにも使えます。
ブロックサイズを2MBから4MBに拡大するプロトコルの変更が行われたとします。もしも、アップデートされたノードがブロックチェーンに3MBのブロックを追加しようとしたら、アップデートされていないノードはそのブロックを有効とはみなしますが、拒絶します。
状況によりますが、ハードフォークには計画されたものと対立によるものがあります。
計画されたフォークでは、参加者は新しいルールに従うためにソフトウェアを自発的んアップグレードし、古いバージョンから新しいバージョンへ移行します。アップデートしなかった場合、ほとんどだれも使わないチェーンでマイニングをすることになります。
しかし、フォークが対立によるもの、つまりアップグレードに関してコミュニティ内での対立による場合、たいていプロトコルは2つの互換性のないブロックチェーンと2つの独立した仮想通貨にフォークします。両方のブロックチェーンが独自のコミュニティを持ち、開発者は自分たちが最適と信じた方向に進んでいきます。
フォークはオリジナルのブロックチェーンに基づいているので、オリジナルのブロックチェーン上の全トランザクションは新しいフォークしたブロックチェーンにもコピーされます。例えば、もしもコインAと呼ばれる仮想通貨を100枚持っていて、この仮想通貨に基づいてフォークが起きて、新しい仮想通貨であるコインBが生まれたら、このコインBも100枚手に入れます。
仮想通貨のオープンソースという性質と個人、組織が様々な目的をもって仮想通貨の分野に参入するので、フォークは仮想通貨の発展に不可欠なものであり続けるでしょう。
Binanceアカデミーはこれからより多くのコンテンツを提供していきます。Binance Academyで他の動画もぜひチェックしてください。