ブロックチェーン テクノロジーでは、ハード フォーク と ソフト フォーク は、ネットワーク プロトコルをアップグレードおよび更新する 2 つの異なる方法です。これらは実装方法が大きく異なり、これらの違いはブロックチェーン ネットワークの構造と運用に直接影響を与える可能性があります。
ハードフォーク
ハード フォーク は、ネットワークの新しいバージョンが古いバージョンと互換性がなくなるルール変更です。その結果、ブロックチェーンは並行して実行され、互いに影響を及ぼさない 2 つの別々のブランチに分割されます。
ソフトフォーク
ソフト フォーク は、新しいルールを採用したノードがアップグレードされていないノードと引き続き対話できるルール変更です。この場合、ネットワークの新しいバージョンは古いバージョンとの互換性を維持します。
比較
ハードフォーク
例: 2016 DAO
古いバージョンは新しいネットワークと互換性がありません
異なるプロトコルで実行されます
ソフトフォーク
例: 2017 SegWit
新しいネットワークは古いバージョンと互換性を維持します
同じ全体的なプロトコル フレームワークの下で動作します
状況分析
ハードフォーク
たとえば、ネットワーク ノードの半分がブロック サイズを 2MB から 3MB に増加したいと考えているとします。 3MB ブロック が古いバージョンのノードに送信された場合、それらのノードはルールで最大ブロック サイズとして 2MB を定義しているため、それを拒否します。この場合、ネットワークは 2 つの別個のプロトコルに分割され、各ブランチは異なる通貨を使用する可能性があります。すべての口座残高が元のチェーンから新しいチェーンにコピーされます。たとえば、ユーザーがフォーク前に 20 BTC を保持していた場合、そのユーザーは、元のチェーンに 20 BTC、新しいチェーンに 20 BTC を保持することになります。
ソフトフォーク
たとえば、元のブロック サイズが 2MB で、ネットワーク ノードの半数がブロック サイズを 1MB に制限するより厳格なルールを導入した場合、1MB を超えるブロックはアップグレードされたノードによって無効として扱われます。ただし、古いバージョンのノードは引き続きブロックを受信およびブロードキャストできます。この状況でも、新しいネットワークは、さまざまなルール バージョンによる制限を受けることなく、すべてのノードをカバーできます。ビットコインの Segregated Witness (SegWit) は、ソフト フォークの典型的な例です。このアップグレードでは、新しいブロックとトランザクションの形式が賢明な方法で導入されました。アップグレードされていないノードでもブロック情報を受信できますが、新しいトランザクション形式の検証には参加しません。
