This article has been translated from English to Japanese.
ブロックチェーン技術において、ソフトフォークとは、ブロックチェーンの基盤となるプロトコルやソフトウェアに、本質的に軽微な変更を導入することを指す。
プログラミング用語におけるフォークとは、単にコードの変更を指す。
こうしたソフトウェアの更新は、新たなブロックチェーン機能の追加、ネットワーク性能の向上、セキュリティ問題の修正、さらにはブロックの生成と検証方法を規定するコンセンサスルールの変更といった形で現れる。
ブロックチェーンの開発や進化の全側面を統括する中央機関が存在しないため、分散型ブロックチェーンに変更を加える手段としてフォークは必要不可欠だ。
ソフトウェアの変更は、範囲が軽微なものから、ブロックチェーンの動作を規定する元のルールセットを劇的に変えるものまで様々だ。
ソフトフォークとは、フォーク以前に存在した古いルールに影響を与えたり変更したりすることなく、既存のブロックチェーンに容易に実装できる、ブロックチェーンソフトウェアへの軽微な変更である。
これによりソフトフォークは後方互換性を持つ。つまり、ソフトウェアをアップグレードしないノード運営者も、アップグレードした運営者と同じブロックチェーン上で相互にやり取りできる。
開発者、マイナー、その他のノード運営者といったネットワーク参加者は、アップグレードを行わなくても、フォーク後に生成された新しいブロックを有効なものとして認識する。
ソフトフォークは軽微な変更のみを対象とするため、ネットワーク上の全マイナーやノード運営者が新フォークの実行に合意する必要はない。
過半数の合意さえ得られればよく、ノードコミュニティ全体に重大な問題を引き起こすことなく、ソフトフォークのアップグレードを迅速に実施できる。
ハードフォーク発生後は、互いに独立して動作する2つの異なるブロックチェーンが存在する。ハードフォークを実行したノードは新規則のブロックチェーン上にあり、実行しなかったノードは旧規則の元のブロックチェーン上に留まる。
ハードフォークを実行したノードと実行しなかったノードの間には、その後一切の通信が行われない。
二つのネットワークは並行して稼働するが、新たに生成されるブロックはそれぞれのブロックチェーン上にのみ存在する。
ビットコインネットワークにおける現実世界のソフトフォークの例として、セグウィット(Segregated Witness)フォークが挙げられる。