オープンソースのソフトウェア開発に詳しい方なら、フォークと 呼ばれるものを聞いたことがあるかもしれません。しかし、この概念は暗号空間においてより専門的な意味を持っています。
暗号におけるフォークとは、ブロックチェーンのコンセンサスプロトコルを変更することです。 ノードが起点となるチェーンとは別のチェーンでブロックの確認を開始する変化である。
例えば、ある開発者がGitHubのような一般に公開されているプラットフォームでコードを公開しているとします。 それがオープンソースと呼ばれるものです。
つまり、ユーザーは自分用にソースコードのコピーを作成することができるのです。 自分でコンパイルするつもりでやっているのかもしれません。 ソフトウェアの原作者が追加しなかった機能、あるいは原作者が拒否した機能を追加するために、このようなことを行うことがあります。
このソースコードを取り出して、独自に構築することをフォークと呼びます。 それがオープンソースの活力の源となる。
暗号ソフトのニュアンスはコンセンサスにある。 これは、機能するブロックチェーンプロトコルの主要な特性である。 ネットワーク上で動作するすべてのノードは、他のすべてのノードと同じソフトウェアを使用しなければならず、そうでなければペナルティや排除のリスクを負うことになります。
では、既存の暗号ソフトをフォークしたいとしましょう。 この合意形成の必要性から、ブロックチェーン全体をフォークする必要があります。 つまり、既存のノードの大半に、あなたのソフトウェアに置き換えてもらうことができれば別ですが、それは必ずしも容易ではありません。
フォークはさまざまな理由で発生します。
暗号空間では、合意形成のルールが変更されるフォークには2つのタイプがある。 どちらも、高齢者ノードの参加を含むか排除するかの、異なる結果に従わなければなりません。
ハードフォークは、ネットワークの特定の変更に対応するためにコンセンサスルールが緩和されたときに発生します。 これらの変更により、ブロック確認動作の機能性が向上しています。 これらの変更は、古いソフトウェアを実行しているノードに対して後方互換性がなく、起点となるブロックチェーンで新しいブランチを開始することになります。
ネットワークの資産の広範な機能に変化が生じると、資産の経済的特性も変化する。 これらの変化には、以下のようなものがあります。
数え上げればきりがないが、ひとつだけ確かなことは、新しいブロックチェーンで取引するためには、新しい資産が必要だということだ。
例えば、以下のような場合です。例えば、古いソフトウェアを実行しているノードが、1MBのブロックを期待していたのに、2MBのブロックを受信したとします。 その2MBのブロックは、古いネットワークのルールが許す範囲を超えているため、無効となるのです。 2MBのブロックは、別のネットワークで送る必要がある。
ソフトフォークは、ネットワークの特定の変更に対応するためにコンセンサスルールを厳格化する場合に発生する。 この変更により、ブロックの確認やコンセンサスの動作に一定の機能を持たせることができる。 このタイプのフォークは、古いソフトウェアを実行しているノードに対して後方互換性があり、ノードは更新された参加方法を見送ることができます。
先ほどの例で言うとあるノードが1MBのブロックを期待し、0.8MBのブロックを受け取ったとします。 この場合、この小さなブロックはフルブロックより小さいとみなされますが、それでも受け入れられます。
これらのフォークを実際に使っている例を見てみましょう。 ここでは、最も人気のある2つの暗号ネットワークについて、成長の痛みを経て現在に至っていることを紹介します。
2010年代半ばから後半にかけて、ビットコイン(BTC / USDT)はスケーラビリティの問題に直面し、ビットコイン利用者の2つの派閥の間でその進路が争われることになりました。
ビットコインのソフトウェアに分離型証人(SegWit)機能を実装することが提案された。 SegWitは、Bitcoinの取引アーキテクチャの変更として提案されました。 この変更により、署名データはトランザクションに付属するデータツリーとして格納され、トランザクションIDにカウントされなくなります。 SegWitは、オプトインの選択肢として提案されました。 これはソフトフォークの一例でしょう。
ビットコインアドレスで実際にその違いを確認することができます。1で始まるアドレスはレガシートランザクション構造を使用し、bc1や3で始まるアドレスはそれぞれネイティブSegWitとネストされたSegWitを使用します。
そのため、ビットコイナーは、より多くのトランザクションを1MBのブロックに収められるようにトランザクションに必要なデータを減らすか、ブロックサイズを8MBに増やすかで迷ったのです。 より大きなブロックに対するSegWitの拒否は、ネットワークのハードフォークを必要とします。 2017年8月、ビットコインはハードフォークされ、ビットコインキャッシュが誕生した。
2016年6月、イーサリアムネットワーク上のプロジェクトに投資を提供する手段として作られた大規模な国庫「The DAO」に、ハッカーが侵入した。 ハッカーは、約5500万米ドルを盗みました。
ハッキングされる前、The DAOの国庫には約2億5,000万米ドルがあった。 その仕組みはこうだ。
各メンバーは、国庫に1ETH入金されるごとに100DAOトークンを受け取ることになる。 このトークンは、ある投資案件が利益を生む可能性があるかどうかを投票するために使用されました。 提案が通れば、国庫は提案されたETHの投資先を、プロジェクトを代表するスマートコントラクトに自動的に移管することになる。
発想としては、ヘッジファンドに近いものがあった。 プロジェクトが投資額以上の収益を上げた場合、その利益はDAOの国庫に戻され、DAOトークンの価値を高めることになります。
しかし、このスマートコントラクトには脆弱性があり、これを悪用されると、攻撃者は国庫が空になるまで無限に引き出しができるようになります。
もちろん、この話にはいろいろなディテールがあるのだが、ここでは重要な出来事に限って話を進めよう。 攻撃側のハッカーはできるだけ多くの資金を引き出そうと戦い、コミュニティのホワイトハットハッカーは同じ悪用法を使って国庫の資金を救おうと必死になった。
結局、両陣営とも持てる力を出し切ったものの、ダメージは大きかった。 この攻撃を完全に軽減するために、ブロックチェーンのハードフォークが提案された。 ブロックチェーンはハッキングされる前から再開され、何事もなかったかのように継続されます。 これが現在のイーサリアム(ETH / USDT)のカノンブロックチェーンであり、私たちが知っているものです。
しかし、一部のユーザーは、これは悪い前例であり、ハッキングが発生したブロックチェーン(現在はイーサリアムクラシックとして知られている)にとどまるだろうと考えたのです。
フォークとは、一般的にプロトコルを改良するために行われるものです。 その変更が良いか悪いかは、変更を行うコミュニティ次第です。
フォークネットワークは技術的・経済的に異なる性質を持つので、根本的に異なる資産である。 これらの要素は、資産の価値が上がるかどうかに影響します。
フォークするのに最適な暗号はなく、どんなオープンソースプロジェクトもフォークされる可能性があります。
Ethereum 2.0は、ユーザーがソフトウェアのアップグレードにおいてProof-of-Stakeモデルを遵守する場合、ハードフォークとはみなされない。 ETHのProof-of-Work版では、新しいブロックチェーンが誕生します。
ビットコインは一般的にスケーラビリティの問題を解決するためにハードフォークを実装しています。 問題は、通常、1秒あたりのトランザクションとブロックサイズです。
VasilはCardano(ADA/USDT)のハードフォークです。
ハードフォークは新しいブロックチェーンを必要とする後方互換性がないのに対し、ソフトフォークは古いブロックチェーンと後方互換性がある。 より詳細な説明は上記記事をご覧ください。