ブロックチェーンのフォークについて解説-2
前回の記事の続きです。フォークには、「ブロックが同時に生成されて起こるもの」と「仕様変更のために起こるもの」の2種類があり、今回は後者についてまとめていきたいと思います。
仕様変更とは、ブロックチェーンのルールを変更するもので、「ソフトフォーク」と「ハードフォーク」の2つに大別されます。
ソフトフォーク
ソフトフォークとは、仕様変更の中でも変更前後で互換性を持つものを言います。
従来のルールに追加アップデートを行うイメージで、あくまで元のルールをベースにしていいます。そのため、分岐後に生成されるトランザクションやブロックは新旧両方どちらのルールを採用しているノードからも有効だとみなされます。
また仕様変更は基本的に事前にアナウンスされ、過半数のマイナーが新ルールに賛成すると最終的には自然に新しいルールに基づいたチェーン1本に収束していきます。
ハードフォーク
ハードフォークとは、仕様変更の中でも変更前後で互換性を持たないものを言います。
変更前のルールとは異なるルールを適用しアップデートを行う仕様変更で、新ルールの下で生成されたトランザクションやブロックは旧ルールを適用しているノードからは無効なものと認識されます。
そのため、分岐したチェーンは一つに収束することはなく、それぞれのチェーンが別のものとして続いていきます。
また、ハードフォークが起こる際、基本的にリプレイプロテクションという機能を実装します。これに関してはまた別の機会に書きたいと思います。
まとめ
今回は仕様変更のフォークの中でも仕様変更のために行われるものについて書いてみました。
Bitcoinは特に2017年多くのハードフォークが行われました。機会があれば、それぞれのハードフォークについても調べてみたいと思います。