コンテンツへスキップ
⚡ total 0 sats

フォーク

    Fork

    2,100 sats

    フォークは食器のフォークのことで、フォークの先ように枝分かれした分岐という意味もあります。ソフトウェア開発におけるフォークとは、既存のプロトコルやソースコードの一部を変更して派生版を開発することです。

    フォークは通常、ソフトウェアの更新時に発生します。オープンソースソフトウェアは、不特定多数が異なるタイミングでダウンロードします。最新版が公開されても、必ずしも全員が更新するわけではないため、様々なバージョンが混在します。あるソフトウェアがバージョン1からバージョン2にアップグレードされたとします。バージョン2に更新したユーザーは、バージョン1のフォークを実行することになります。

    ビットコインのように、ユーザーの資産残高についてのネットワークの合意形成が肝となるシステムでは、フォークが問題を引き起こす可能性があります。バージョン間で規則が異なる場合、ノードが実行するソフトウェアのバージョンによって、有効な取引やブロックの条件が違う事態にもなりかねません。こうなると、ビットコインネットワークは機能不全に陥り、ネットワークが合意した究極の真実である分散型台帳も無意味になります。こうした事態を回避するため、ビットコインの開発では慎重かつ保守的なアプローチが採られています。

    フォークにはソフトフォークとハードフォークの2種類があります。ソフトフォークは後方互換性があります。新バージョンと旧バージョンの互換性が維持されるので、全ノードが更新に応じる必要はありません。一方のハードフォークは後方互換性がないため、全ノードに更新が求められます。

    ビットコインコミュニティでは、ハードフォークは何としても回避すべきものとされています。ハードフォークの際、全ノードが更新あるいは更新拒否で一致せず、更新に応じるノードと応じないノードに分かれると、ネットワークが分岐しかねません。実際、ビットコインの合意規則の変更を求めた人たちがビットコインネットワークを分岐したことがあります。分岐したネットワークはビットコインのフォークと呼ばれますが、ビットコインとはもはや何の関係もありません。

    フォークはコミュニティに対立や混乱を引き起こしますが、プロトコルレベルでビットコインネットワークに害を与えることはありません。


    コンテンツの著作権は River Financial に帰属します。二次利用の可否は権利者にご確認ください。 / All rights reserved to River Financial.