合意メカニズム
合意メカニズムという用語は、「プルーフ・オブ・ステーク」、「プルーフ・オブ・ワーク」、「プルーフ・オブ・オーソリティ」といったプロトコルを指すのに使われることがあります。 しかし、これらは実際にはシビル攻撃を防ぐための合意メカニズムの構成要素に過ぎません。 合意メカニズムは、分散された一連のノードがブロックチェーンの状態に合意できるようにする考え方、プロトコル、およびインセンティブを完全にまとめたメカニズムです。
前提知識
このページの理解を深めるために、まずはイーサリアム入門を読むことをお勧めします。
コンセンサス(合意)とは
コンセンサス(合意)とは、全員が合意に達しているという意味で使われています。 これから映画に見に行くグループで考えてみましょう。 どの映画を鑑賞するかグループ内で意見が一致すれば、コンセンサスが形成されます。 意見が分かれている場合、どの映画にするか決める手段が必要です。 極端な状況では、最終的にグループが分かれてしまうこともあるでしょう。
イーサリアムのブロックチェーンではこのプロセスが形式化されており、コンセンサスに達するとは、ネットワーク上のノードの少なくとも 66%が、ネットワークの全体的な状態に合意することを意味します。
合意メカニズムとは
合意メカニズムという用語は、ノードのネットワークがブロックチェーンの状態に合意することを可能にするプロトコル、インセンティブ 、考え方のすべてを指します。
イーサリアムはプルーフ・オブ・ステークに基づく合意メカニズムを使用しており、一連の報酬に加えて、ペナルティがステーカーが預け入れた資本に適用されることにより、暗号経済的な安全性を得ています。 このインセンティブ構造は個々のステーカーがバリデータを誠実に運用することを奨励し、そうでないステーカーに対してペナルティを与え、ネットワークへの攻撃のコストを非常に高くします。
また、ブロックの提案や検証、トランザクションの処理、チェーン先頭に対する見解の投票などを行う、誠実なバリデータがどのように選ばれるかを規定するプロトコルがあります。 まれに複数のブロックがチェーンの先頭付近の同じ位置にある状況に対しては、「最も重みのある」チェーンを構成するブロックを選択するフォーク・チョイスメカニズムがあります。これはブロックに投票したバリデータ数によって測定され、バリデータがステーキングしたイーサ残高により加重されます。
概念の一部はコードには明示的に定義されていませんが、コンセンサスに重要なものがあります。たとえば、ネットワークへの攻撃に対する最後の防衛線として、帯域外で行われる社会的調整により提供されるセキュリティなどです。
これらの構成要素が一体となって合意メカニズムを形成しています。
合意形成アルゴリズムの種類
プルーフ・オブ・ワーク方式
ビットコインと同様に、イーサリアムもかつてはプルーフ・オブ・ワーク(PoW)に基づいたコンセンサスプロトコルを使用していました。
ブロックの作成
バリデータがブロックを作成します。 各スロットでランダムに 1 つのバリデータがブロック提案者に選ばれます。 コンセンサスクライアントは、ペアの実行クライアントから「実行ペイロード」としてトランザクションの束 (バンドル) を要求します。 これをコンセンサスデータで包んでブロックを形成し、イーサリアムのネットワーク上の他のノードに送ります。 このブロック生成により、ETH で報酬を受け取ることができます。 1 つのスロットに複数の候補ブロックが存在する場合や、ノードが異なる時間にブロックの情報を得た場合、フォーク・チョイス・アルゴリズムがアテステーションの重みが最も大きいチェーンを形成するブロックを選択します(ここでの重みとは、アテステーションしたバリデータの数を彼らが保有している ETH 残高で加重したもの) 。
セキュリティ
チェーンに不正行為を働くには、ネットワークのコンピューティング能力の 51%が必要であるため、ネットワークの安全性が保たれています。 51%を獲得しるには、莫大な設備投資とエネルギーが必要となるため、得るものよりも費やすものの方が多くなってしまいます。
プルーフ・オブ・ワークの詳細
プルーフ・オブ・ステーク方式
イーサリアムは現在、プルーフ・オブ・ステーク(PoS)に基づいたコンセンサスプロトコルを使用しています。
ブロックの作成
プルーフ・オブ・ステークは、システムに参加するために ETH をステーキングしたバリデータによって行われます。 ランダムに選択された 1 つのバリデータが、新しいブロックを作成し、ネットワークと共有し、報酬を獲得します。 苛烈な計算を行うのではなく、ネットワークに ETH をステーキングが必要になり、 これは健全なネットワークの行動を奨励するものです。
セキュリティ
仮にプルーフ・オブ・ステーク・システムでチェーンを支配しようとすると、攻撃者は大量の ETH を破壊しなければならないため、暗号経済的に安全性が保たれています。 報酬システムがステーカーに対して、誠実な行動を取るようにインセンティブを与える一方、ペナルティは悪意のある行動を抑制しています。
プルーフ・オブ・ステーク の詳細
ビジュアルガイド
イーサリアムで使われているさまざまな種類の合意メカニズムについて視聴しましょう。
シビル耐性およびチェーン選択
プルーフ・オブ・ワークとプルーフ・オブ・ステークは、それ自体はコンセンサスプロトコルではありませんが、分かりやすくするためにそのように呼ばれることがよくあります。 これらは実際にはシビル耐性メカニズムであり、誰が最新のブロックを作成するかを決めるものです。 もう一つの重要なコンポーネントは、チェーン・チョイス(別名:フォーク選択)アルゴリズムです。これはチェーンの先頭に複数のブロックが存在する場合、正しいブロックをノードが 1 つ選択するアルゴリズムです。
シビル耐性はシビル攻撃に対するプロトコルの性能を測るものであり、 シビル攻撃とは 1 人のユーザーまたはグループが多くのユーザーであるように装う攻撃です。 この種の攻撃への耐性は、分散型ブロックチェーンには不可欠であり、この耐性があることにより、投入されたリソースに応じてマイナーとバリデータが平等に報酬を得ることができます。 プルーフ・オブ・ワークやプルーフ・オブ・ステークは、ユーザーに多くのエネルギーを消費させたり、多くの担保を入れさせることで、この問題を解決します。 これらは、シビル攻撃に対する経済的な抑止力となります。
チェーン・セレクション・ルールは、どのチェーンが「正しい」チェーンであるかを決定するルールです。 イーサリアムとビットコインは、ブロックチェーンの長さが長い方を、他のノードが有効なものとして受け入れるという「最長のチェーン」ルールを採用しています。 プルーフ・オブ・ワークチェーンの場合、最長のチェーンはチェーンの累積プルーフ・オブ・ワーク難易度によって決定されます。 イーサリアムも以前は「最長チェーン」ルールを採用していましたが、現在のイーサリアムはプルーフ・オブ・ステークで実行されており、チェーンの「重み」を測定する最新のフォーク・チョイス・アルゴリズムを採用しています。 この重みは、バリデータの投票の累計をバリデータがステーキングしたイーサ残高により加重されて決まります。
イーサリアムでは、Casper FFG プルーフ・オブ・ステークとGHOST フォーク・チョイスルールを組み合わせたGasperと呼ばれる合意メカニズムが採用されています。
参考文献
役に立つコミュニティリソースをご存知の場合は、 ページを編集して追加してください。