コンセンサス・メカニズム
「コンセンサス・メカニズム」という用語は、口語的に「プルーフ・オブ・ステーク (PoS)」、「プルーフ・オブ・ワーク (PoW)」、または「プルーフ・オブ・オーソリティ」のプロトコルを指すためによく使用されます。しかし、これらはから保護するためのコンセンサス・メカニズムの構成要素にすぎません。コンセンサス・メカニズムとは、分散されたノードの集合がブロックチェーンの状態について合意できるようにするための、アイデア、プロトコル、およびインセンティブの完全なスタックです。
前提条件
このページをよりよく理解するために、まずはイーサリアムの概要を読むことをお勧めします。
コンセンサスとは?
コンセンサスとは、一般的な合意に達したことを意味します。映画館に行くグループを想像してみてください。提案された映画の選択について意見の相違がなければ、コンセンサスが達成されたことになります。意見の相違がある場合、グループはどの映画を見るかを決定する手段を持たなければなりません。極端な場合、グループは最終的に分裂することになります。
イーサリアムのブロックチェーンに関して言えば、このプロセスは形式化されており、コンセンサスに達するとは、ネットワーク上の少なくとも66%のノードがネットワークのグローバルな状態について合意することを意味します。
コンセンサス・メカニズムとは?
コンセンサス・メカニズムという用語は、ノードのネットワークがブロックチェーンの状態について合意できるようにする、プロトコル、インセンティブ、およびアイデアのスタック全体を指します。
イーサリアムは、ステーカーによってロックされた資本に適用される一連の報酬とペナルティから暗号経済的なセキュリティを引き出す、プルーフ・オブ・ステーク (PoS) ベースのコンセンサス・メカニズムを使用しています。このインセンティブ構造は、個々のステーカーが誠実なバリデータとして機能することを奨励し、そうでない者を罰し、ネットワークを攻撃するためのコストを極めて高くします。
さらに、誠実なバリデータがどのように選ばれてブロックを提案または検証し、トランザクションを処理し、チェーンの先頭に対する自身の見解に投票するかを管理するプロトコルがあります。チェーンの先頭付近の同じ位置に複数のブロックが存在するというまれな状況では、ステークされたイーサの残高で重み付けされた、ブロックに投票したバリデータの数によって測定される「最も重い」チェーンを構成するブロックを選択するフォーク選択メカニズムがあります。
ネットワークへの攻撃に対する最後の防衛線として、潜在的な帯域外の社会的調整によって提供される追加のセキュリティなど、コードで明示的に定義されていなくてもコンセンサスにとって重要な概念もあります。
これらのコンポーネントが組み合わさって、コンセンサス・メカニズムを形成します。
コンセンサス・メカニズムの種類
プルーフ・オブ・ワークベース
ビットコインと同様に、イーサリアムもかつてはプルーフ・オブ・ワーク (PoW) ベースのコンセンサス・プロトコルを使用していました。
ブロックの作成
マイナーは、処理されたトランザクションで満たされた新しいブロックを作成するために競争します。勝者は新しいブロックをネットワークの残りの部分と共有し、新しく発行されたETHを獲得します。この競争は、数学のパズルを最も早く解くことができたコンピュータが勝ちます。これにより、現在のブロックと前のブロックとの間に暗号化されたリンクが生成されます。このパズルを解くことが、「プルーフ・オブ・ワーク」における作業です。その後、マイニングに最も多くの作業が費やされたブロックのセットを選択するフォーク選択ルールによって、正規のチェーンが決定されます。
セキュリティ
チェーンを不正に操作するにはネットワークの計算能力の51%が必要になるという事実によって、ネットワークのセキュリティは保たれています。これには機器とエネルギーへの莫大な投資が必要となり、得られる利益よりも多くの費用を費やす可能性が高くなります。
プルーフ・オブ・ステークベース
現在、イーサリアムはプルーフ・オブ・ステーク (PoS) ベースのコンセンサス・プロトコルを使用しています。
ブロックの作成
バリデータがブロックを作成します。各スロットで1つのバリデータがランダムに選ばれ、ブロック・プロポーザーになります。彼らのコンセンサス・クライアントは、ペアになっている実行クライアントに「実行ペイロード」としてトランザクションのバンドルを要求します。これをコンセンサスデータでラップしてブロックを形成し、イーサリアム・ネットワーク上の他のノードに送信します。このブロック生成にはETHで報酬が支払われます。1つのスロットに複数の可能なブロックが存在する場合、またはノードが異なるタイミングでブロックについて知るというまれなケースでは、フォーク選択アルゴリズムが、アテステーションの重みが最も大きいチェーンを形成するブロックを選択します (重みとは、アテステーションを行うバリデータの数にETH残高を掛けたものです)。
セキュリティ
プルーフ・オブ・ステーク (PoS) システムは、チェーンの制御を奪おうとする攻撃者が大量のETHを破壊しなければならないため、暗号経済的に安全です。報酬システムは個々のステーカーが誠実に振る舞うようにインセンティブを与え、ペナルティはステーカーが悪意を持って行動するのを思いとどまらせます。
ビジュアルガイド
イーサリアムで使用されているさまざまな種類のコンセンサス・メカニズムについて、詳しくは以下をご覧ください。
シビル耐性とチェーン選択
プルーフ・オブ・ワーク (PoW) とプルーフ・オブ・ステーク (PoS) だけではコンセンサス・プロトコルではありませんが、わかりやすくするためにそのように呼ばれることがよくあります。これらは実際にはシビル耐性メカニズムであり、ブロック作成者のセレクターです。つまり、最新のブロックの作成者を決定する方法です。もう1つの重要なコンポーネントは、同じ位置に複数のブロックが存在するシナリオで、ノードがチェーンの先頭にある単一の正しいブロックを選択できるようにするチェーン選択 (別名フォーク選択) アルゴリズムです。
シビル耐性は、プロトコルがシビル攻撃に対してどのように機能するかを測定します。この種の攻撃に対する耐性は、分散型ブロックチェーンにとって不可欠であり、マイナーとバリデータが投入したリソースに基づいて平等に報酬を受け取ることを可能にします。プルーフ・オブ・ワーク (PoW) とプルーフ・オブ・ステーク (PoS) は、ユーザーに大量のエネルギーを消費させるか、多額の担保を差し出させることで、これに対する保護を提供します。これらの保護は、シビル攻撃に対する経済的な抑止力となります。
チェーン選択ルールは、どのチェーンが「正しい」チェーンであるかを決定するために使用されます。ビットコインは「最長チェーン」ルールを使用しています。これは、最も長いブロックチェーンが、残りのノードによって有効であると受け入れられ、作業の対象となることを意味します。プルーフ・オブ・ワーク (PoW) チェーンの場合、最長チェーンは、チェーンの累積プルーフ・オブ・ワーク難易度の合計によって決定されます。イーサリアムもかつては最長チェーンルールを使用していました。しかし、現在イーサリアムはプルーフ・オブ・ステーク (PoS) で稼働しているため、チェーンの「重み」を測定する更新されたフォーク選択アルゴリズムを採用しています。重みとは、バリデータのステークされたイーサ残高によって重み付けされた、バリデータの投票の累積合計です。
イーサリアムは、キャスパー・FFGのプルーフ・オブ・ステーク (PoS) (opens in a new tab)とGHOSTフォーク選択ルール (opens in a new tab)を組み合わせた、Gasperとして知られるコンセンサス・メカニズムを使用しています。
参考文献
- ブロックチェーンのコンセンサス・アルゴリズムとは? (opens in a new tab)
- ナカモト・コンセンサスとは?完全初心者向けガイド (opens in a new tab)
- Casperはどのように機能するのか? (opens in a new tab)
- プルーフ・オブ・ワーク・ブロックチェーンのセキュリティとパフォーマンスについて (opens in a new tab)
- ビザンチン障害 (opens in a new tab)
役に立ったコミュニティリソースをご存知ですか?このページを編集して追加してください!