導入
スマートフォンでデジタル バンキング アプリを更新するように求められたら、おそらく深く考えずにしまうでしょう。もしかしたら、気づかないうちに携帯電話が自動更新されているかもしれません。結局のところ、これは必要なプロセスです。ソフトウェアの最新バージョンをインストールしないと、そのサービスへのアクセスが拒否される危険があります。
オープンソースの暗号通貨では、状況が大きく異なります。ビットコインを使用するために、その基盤となるコードをすべて読む必要はありませんが、そうする選択肢があることは重要です。ご存知のとおり、ここには階層はなく、更新をプッシュしたり、好きなように物事を変更したりできる銀行もありません。その結果、ブロックチェーン ネットワークに新しい機能を実装することが困難になる可能性があります。
この記事では、中央機関が存在しないにもかかわらず、暗号通貨ネットワークをアップグレードする方法について説明します。そのためには、ハードフォークとソフトフォークという 2 つの異なるメカニズムが使用されます。
ブロックチェーンネットワークでは誰が決定を下すのでしょうか?
フォークの仕組みを理解するには、まずネットワークの意思決定プロセス(またはガバナンス)に関与する参加者を理解することが重要です。
ビットコインでは、参加者を大まかに 3 つのサブセットに分けることができます。開発者、マイナー、フルノード ユーザーです。これらは、実際にネットワークに貢献する当事者です。ライト ノード (つまり、携帯電話やラップトップなどのウォレット) は広く使用されていますが、ネットワークに関する限り、実際には「参加者」ではありません。
開発者
開発者はコードの作成と更新の責任を負います。一般的なコインの場合、誰でもこのプロセスに貢献できます。コードは公開されているため、開発者は変更を送信して他の開発者にレビューしてもらえます。
鉱夫
マイナーはネットワークのセキュリティを確保する役割を担っています。マイナーは暗号通貨のコードを実行し、ブロックチェーンに新しいブロックを追加するためにリソースを投入します。たとえば、ビットコイン ネットワークでは、マイナーはプルーフ オブ ワークを通じてこれを行います。マイナーは、その努力に対してブロック報酬という形で報酬を受け取ります。
フルノードユーザー
フルノードは暗号通貨ネットワークのバックボーンです。ブロックとトランザクションを検証、送信、受信し、ブロックチェーンのコピーを維持します。
これらのカテゴリには重複する部分が多くあります。たとえば、開発者でありフルノード ユーザーである場合や、マイナーでありフルノード ユーザーである場合もあります。3 つのすべてに該当する場合もあれば、いずれにも該当しない場合もあります。実際、暗号通貨ユーザーとみなされる人の多くは、これらの役割のいずれも担っていません。代わりに、ライト ノードまたは集中型サービスを使用することを選択します。
上記の説明を見ると、開発者とマイナーがネットワークに関する決定を下すという強い主張が成り立つことがわかります。開発者はコードを作成します。開発者がいなければ、実行するソフトウェアがなく、バグを修正したり新しい機能を追加したりする人もいません。マイナーはネットワークを保護します。健全なマイニング競争がなければ、チェーンが乗っ取られたり、停止したりする可能性があります。
しかし、これら 2 つのカテゴリがネットワークの残りの部分を強制的に自分たちの意志に従わせようとした場合、あまり良い結果にはならないでしょう。多くの人にとって、実際の力はフルノードに集中しています。これは主に、ネットワークがオプトインであるための機能であり、つまり、ユーザーは実行するソフトウェアを選択できます。
開発者はあなたの家に押し入って、銃を突きつけて Bitcoin Core バイナリをダウンロードするよう強要しているわけではありません。マイナーが「私のやり方か、そうでなければ何もしない」という態度でユーザーに望まない変更を強制した場合、ユーザーはただ単にその道を進むでしょう。
これらの当事者は全能の支配者ではなく、サービス プロバイダーです。人々がネットワークを使用しないと決めた場合、コインの価値は下がります。価値の低下はマイナーに直接影響します (マイナーの報酬はドル建ての場合、価値が低くなります)。開発者に関しては、ユーザーは無視できます。
ご存知のとおり、ソフトウェアは独占的ではありません。好きなように編集することができ、変更したソフトウェアを他の人が実行すれば、全員が通信できます。その場合、ソフトウェアをフォークして、その過程で新しいネットワークを作成します。
フォークとは何ですか?
ソフトウェア フォークは、ソフトウェアがコピーされ、変更された時点で発生します。元のプロジェクトは存続しますが、新しいプロジェクトとは別になり、方向性が異なります。お気に入りの暗号通貨コンテンツ Web サイトのチームで、今後の進め方について大きな意見の相違があったとします。チームの一部が別のドメインにサイトを複製するかもしれません。しかし、今後は元のサイトとは異なる種類のコンテンツを投稿することになります。
これらのプロジェクトは共通の基盤の上に成り立っており、歴史を共有しています。1 本の道が後に 2 つに分かれるのと同じように、これらのプロジェクトの進路には永久的な分岐が生じています。
この種のことはオープンソース プロジェクトで頻繁に発生しており、ビットコインやイーサリアムが登場するずっと前から発生していたことに注意してください。ただし、ハード フォークとソフト フォークの区別は、ブロックチェーンの分野にほぼ限定されています。これについてもう少し詳しく説明しましょう。
➠ 暗号通貨を始めようと考えていますか? Binance でビットコインを購入しましょう!
ハードフォークとソフトフォーク
名前が似ていて、最終的には同じ目的を果たしますが、ハードフォークとソフトフォークは大きく異なります。それぞれを見てみましょう。
ハードフォークとは何ですか?
ハードフォークは、下位互換性のないソフトウェア アップデートです。通常、ノードが新しいルールを追加したときに、古いノードのルールと競合します。新しいノードは、新しいバージョンを実行する他のノードとのみ通信できます。その結果、ブロックチェーンが分割され、古いルールと新しいルールの 2 つのネットワークが作成されます。
ノードは更新されると青色に変わります。古い黄色のノードは更新を拒否し、青いノードは相互に接続します。
つまり、2 つのネットワークが並行して実行されていることになります。どちらもブロックとトランザクションを伝播し続けますが、同じブロックチェーン上で動作しているわけではありません。分岐の時点まではすべてのノードが同一のブロックチェーンを持っていましたが (その履歴は残ります)、分岐後は異なるブロックとトランザクションを持つことになります。
共通の歴史があるため、フォーク前にコインを保有していた場合、両方のネットワークにコインが残ることになります。ブロック 600,000 でフォークが発生したときに 5 BTC を持っていたとします。その 5 BTC をブロック 600,001 の古いチェーンで使うことはできますが、新しいブロックチェーンのブロック 600,001 では使われていません。暗号化が変更されていないと仮定すると、秘密鍵にはフォークされたネットワーク上の 5 つのコインが保持されたままになります。
ハードフォークの一例としては、2017 年のフォークが挙げられます。このフォークでは、ビットコインが 2 つの別々のチェーンに分裂しました。元のチェーンはビットコイン (BTC) で、新しいチェーンはビットコイン キャッシュ (BCH) です。このフォークは、スケーリングに対する最善のアプローチをめぐる多くの議論の末に発生しました。ビットコイン キャッシュの支持者はブロック サイズの増加を望みましたが、ビットコインの支持者はその変更に反対しました。
ブロック サイズを増やすには、ルールの変更が必要です。これは SegWit ソフト フォーク (後ほど詳しく説明します) 以前のことなので、ノードは 1 MB 未満のブロックのみを受け入れます。それ以外は有効な 2 MB のブロックを作成しても、他のノードはそれを拒否します。
1MB を超えるサイズのブロックを許可するようにソフトウェアを変更したノードだけが、それらのブロックを受け入れることができます。もちろん、そうすると以前のバージョンとの互換性がなくなるため、同じプロトコル変更を行ったノードだけが通信できるようになります。
ソフトフォークとは何ですか?
ソフトフォークは下位互換性のあるアップグレードです。つまり、アップグレードされたノードはアップグレードされていないノードと引き続き通信できます。ソフトフォークでよく見られるのは、古いルールと衝突しない新しいルールの追加です。
たとえば、ブロック サイズの縮小はソフト フォークによって実現できます。この点を説明するために、もう一度ビットコインを例に挙げてみましょう。ブロックのサイズには制限がありますが、ブロックのサイズには制限がありません。特定のサイズ以下のブロックのみを受け入れたい場合は、それより大きいブロックを拒否するだけで済みます。
ただし、そうすることで自動的にネットワークから切断されるわけではありません。これらのルールを実装していないノードとの通信は継続しますが、ノードから渡される情報の一部はフィルタリングされます。
ソフトフォークの実例としては、前述の Segregated Witness (SegWit) フォークが挙げられます。これは、ビットコインとビットコインキャッシュの分裂直後に発生しました。SegWit は、ブロックとトランザクションのフォーマットを変更するアップデートでしたが、巧妙に作成されていました。古いノードは、ブロックとトランザクションを検証することはできましたが (フォーマットはルールに違反していませんでした)、それらを理解できませんでした。一部のフィールドは、ノードが新しいソフトウェアに切り替えて、追加データを解析できるようになったときにのみ読み取り可能になります。
SegWit が有効化されてから 2 年が経過しましたが、すべてのノードがアップグレードされたわけではありません。アップグレードすることには利点もありますが、ネットワークを破壊するような変更はないため、緊急性はありません。
ハードフォークとソフトフォーク – どちらが良いのでしょうか?
基本的に、上記の 2 つのタイプのフォークは目的が異なります。論争の多いハードフォークはコミュニティを分裂させる可能性がありますが、計画的なハードフォークでは、全員が同意したソフトウェアを自由に変更できます。
ソフトフォークはより穏やかなオプションです。一般的に言えば、新しい変更が古いルールと衝突することはないため、できることはより制限されます。とはいえ、互換性が維持されるようにアップデートを作成できる場合は、ネットワークの断片化を心配する必要はありません。
最後に
ハードフォークとソフトフォークは、ブロックチェーン ネットワークの長期的な成功に不可欠です。これにより、中央機関がなくても、分散型システムに変更やアップグレードを加えることができます。
フォークにより、ブロックチェーンや暗号通貨は開発されるにつれて新しい機能を統合できるようになります。これらのメカニズムがなければ、トップダウン制御の中央集権型システムが必要になります。そうしないと、プロトコルの存続期間中、まったく同じルールに縛られてしまいます。