これにより、テクノロジーの実装者だけでなく、ライト クライアントなどのサポート インフラストラクチャの構築者も楽になります。
執筆者: Vitalik Buterin、ethresearch
編集者: Songxue、Golden Finance
イーサリアムと他のほとんどの (ファイナリティ) プルーフ オブ ステーク システムの主な違いは、イーサリアムが非常に多数のバリデーター オブジェクトをサポートしようとしている点です。現在、895,000 個のバリデーター オブジェクトがあり、単純な Zipf の法則分析では、これが数十個に相当することが示されています。何千ものバリデーターオブジェクトは一意の個人/エンティティです。この目的は、分散化をサポートし、各人が自らの権限を放棄して少数のステーキング プールの 1 つに制御を与える必要なく、一般の個人がステーキングに参加できるようにすることです。
ただし、このアプローチでは、イーサリアム チェーンがスロットごとに多数の署名 (現在では約 28,000、SSF 後は 1,790,000) を処理する必要があり、非常に高い負荷がかかります。この負荷をサポートするには、大幅な技術的犠牲が必要です。
署名集約システムは一見合理的であるように見えますが、実際にはあらゆる側面に浸透するシステムの複雑さを生み出します。
さらに言えば、その目的さえ果たせません。ステーキングの最低要件は依然として 32 ETH ですが、多くの人にとっては手が届きません。論理的に分析してみると、長期的には、全員がサインインするシステムで一般の人々に本当にステーキングを提供することは実現不可能であるように思えます。イーサリアムに 5 億人のユーザーがいて、その 10% が誓約している場合、これは 1 億人がいることを意味します。スロットごとの署名。情報理論の用語では、この設計での処理の削減には、スロットごとに少なくとも 12.5 MB のデータ空きスペースが必要で、これは完全なダクシャーディングの目標 (!!!) とほぼ同じ量です。おそらく実行可能ですが、ステーキング自体がデータの可用性サンプリングに依存することを要求すると、たとえそれが世界人口のステーキングのわずか約 0.6% であり、検証の計算上の問題にさえ入り込まないとしても、大幅な複雑さの増加が伴います。とてもたくさんの署名。
したがって、各時間枠で増え続ける署名を可能にする魔法の弾丸 (または魔法の防弾チョッキ) を作成するために暗号学者に依存する代わりに、哲学的な転換を行うことをお勧めします。最初の場所 。これにより、PoS の設計領域が大幅に拡張され、多くの技術的簡素化が可能になり、Helios がイーサリアムのコンセンサスに直接 SNARK できるようになり、Winternitz のような退屈な長年の署名スキームさえも作成できるようになり、安全性が高まります。量子抵抗の問題を解決します。
まさにこの問題に直面している非イーサリアム ブロックチェーンの多くは、セキュリティに対して委員会ベースのアプローチを採用しています。各タイム スロットで、N 個のバリデーターがランダムに選択され (たとえば、N は約 1000 に等しい)、これらのバリデーターがそのタイム スロットを完了する責任を負います。このアプローチが不十分である理由を思い出してみる価値があります。説明責任が欠けているからです。
その理由を理解するには、51% 攻撃を想像してください。これは最終的な反転攻撃または検閲攻撃である可能性があります。攻撃を開始するには、ステークの大部分を支配する経済主体が、最終的に委員会に選出されたすべてのバリデーターとともに、攻撃の実行、つまり攻撃に参加するソフトウェアの実行に同意する必要があります。ランダムサンプリングの数学はこれを保証します。ただし、攻撃に同意したバリデーターのほとんどは、委員会に選出されなかったために最終的には見られないことになるため、このような攻撃に対して彼らが負うペナルティは小さいです。
現在、イーサリアムはその対極をとります。 51% の攻撃が発生した場合、攻撃しているバリデータ セット全体の大部分のステークが削減されます。現在の攻撃コストは約 900 万 ETH (約 200 億ドル) ですが、これは攻撃者の利益を最大化する方法でネットワーク同期が中断されたことを前提としています。
これは高いコストであり、高すぎるコストであり、この問題についてはある程度の犠牲を払ってもよいと思います。攻撃コストが100~200万ETHでも全然十分です。さらに、現在イーサリアムに存在する集中化の主なリスクはまったく別の場所にあります。最小ステーキング量がゼロ近くまで削減された場合、大規模なステーキングプールの強さの差はそれほど大きくなくなります。
だからこそ、私は控えめな解決策を提唱しています。バリデーターの責任においてある程度の犠牲を払いながらも、スラッシュ可能なETHの総量をかなり高く保ち、その代わりに、より小さなバリデーターセットでほとんどのメリットを得ることができます。
従来の 2 ラウンドのコンセンサス プロトコル (Tendermint で使用されるものと同様で、必然的に SSF で使用される) を想定すると、参加する各バリデーターはタイムスロットごとに 2 つの署名を必要とします。私たちはこの現実を回避する必要があります。これを実現するには主に 3 つの方法があると考えています。
Python には非常に重要な言葉があります。
これを行う明白な方法は 1 つ、できれば 1 つだけである必要があります。
ステーキングの均等化の問題に関しては、イーサリアムは現在、この目標を達成するために 2 つの異なる戦略を同時に実装しているため、このルールに違反しています: (i) 小規模の個別ステーキング、および (ii) 分散バリデーター技術 (DVT) 分散ステーキング プールの使用。上記の理由により、(i) サポートできるのは一部の個人ステーカーのみであり、最低入金額が大きすぎる人々が常に多く存在します。ただし、イーサリアムは (i) をサポートするために非常に高い技術的負荷コストを支払っています。
考えられる解決策の 1 つは、(i) を放棄して (ii) に全力を尽くすことです。最小ステーク額を 4096 ETH に増やし、合計上限を 4096 バリデーター (約 1670 万 ETH) に設定できます。小規模なステーカーは、資金を提供するかノードオペレーターになることで DVT プールに参加することが期待されています。攻撃者による悪用を防ぐには、ノード オペレータの役割を何らかの方法で評判によって制限する必要があり、この点でさまざまなオプションを提供することでプールが互いに競合します。資金提供は許可なしになります。
たとえば、罰則を制限することで、このモデルでの集団ステーキングをより「寛容」にすることができます。提供された誓約総額の1/8まで。これにより、ノード オペレーターに対する信頼が低下しますが、ここで概説した問題があるため、慎重に対処する価値があります。
私たちはステーカーの 2 つの層を作成します。ファイナライズに参加するには 4096 ETH が必要な「ヘビー」層と、最低ステーキング要件がない (入出金の遅延がなく、スラッシュのリスクもない) 「ライト」層です。これにより、別のセキュリティ層が追加されます。ブロックが最終的なものであるためには、ヘビーレイヤーがそれをファイナライズする必要があり、ライトレイヤーはそれを証明するためにオンラインライトバリデーターの>= 50%を必要とします。
攻撃が成功するには重層と軽層の両方が破損する必要があるため、この異質性は検閲耐性と攻撃耐性にとって有益です。 1 つのレイヤーが破損していて、もう 1 つのレイヤーが破損していない場合、チェーンは停止します。重いレイヤーが破損している場合は、罰せられる可能性があります。
このアプローチのもう 1 つの利点は、軽量レイヤーにアプリ内担保としても使用される ETH を含めることができることです。主な欠点は、小規模なステーカーと大規模なステーカーの間に格差が生じるため、ステーキングの平等性が低下することです。
私たちが採用するアプローチは、ここで提案されているスーパー委員会の設計に似ています。タイムスロットごとに、現在アクティブな 4096 人のバリデーターを選択し、各タイムスロットでこのセットを慎重に調整して安全を確保します。
ただし、このフレームワーク内で「最大のメリット」を得るために、いくつかの異なるパラメーターを選択しました。特に、バリデーターが任意の高残高で参加することを許可しており、バリデーターが一定量 M を超える ETH (変動している必要があります) を所有している場合、彼らはエポックごとに委員会に参加します。検証者が N を持っている場合<M ETH,那么他们有 N/M 在任何给定时间段内进入委员会的概率。
ここでの興味深い手段は、インセンティブ目的の「重み」をコンセンサス目的の「重み」から切り離すことです。委員会内のすべてのバリデーターへの報酬は同じである必要があります (少なくとも ≤M ETH のバリデーターについては)。平均報酬は比例します。 ETH を重みとして使用して、委員会内のバリデーターのコンセンサス カウントを実行することもできます。これにより、ファイナリティを突破するには、委員会内の ETH 総量の 3 分の 1 以上の量の ETH が必要となることが保証されます。
Zipf の法則分析により、ETH の量は次のように計算されます。
合計バランスの各 2 次レベルでは、バリデーターの数はそのバランス レベルに反比例し、これらのバリデーターの合計バランスは同じになります。
したがって、委員会には、バリア M より上のレベルを除くすべての残高レベルから同量の ETH が参加することになります (検証者は常に委員会に参加しています)。
したがって、上記レベルの K バリデータごとに Log2(M) レベルがあり、K+K/2+…=2K 上のレベル バリデータがあります。したがって、K=4096/Log2(M)+2となります。
最大のバリデーターには M*k ETH があります。逆算して考えることができます。最大のバリデーターが 2^18=262144 ETH を持つ場合、これは (おおよそ) M = 1024 および k = 256 を意味します。
担保されたETHの合計額は次のとおりです。
上位 512 人のバリデーターのすべての権利と利益 (2^18*1+2^17*2+……+2^10*2^8=2359296)
さらに、ランダム サンプリングからのより小さなベット (2^8*(2^9+2^8+2^7…) は 2^8*2^10=2^18 にほぼ等しい)
合計 2621,440 ETH を獲得しました。つまり、攻撃コストは約 900,000 ETH でした。
このアプローチの主な欠点は、委員会が変わった場合でもコンセンサスセキュリティを達成できる方法でバリデータをランダムに選択するため、プロトコル内に複雑さが生じることです。
その主な利点は、独立したステーキングの認識可能な形式を維持し、単一システムを維持し、最小ステーキング量を非常に低いレベル (例: 1 ETH) に減らすこともできることです。
SSF プロトコルの背後にあると判断した場合は、8192 シグネチャを使用することを希望します。これにより、技術実装者だけでなく、ライト クライアントなどのサポート インフラストラクチャの構築者も楽になります。誰でもコンセンサスクライアントを実行することが簡単になり、ユーザー、ステーキング愛好家などがこの前提に基づいてすぐに作業できるようになります。イーサリアム プロトコルの将来の負荷はもはや不明ではありません。将来、ハード フォークを通じて改善される可能性がありますが、開発者がテクノロジーが十分に改善され、タイム スロットごとにより多くの署名を同じ簡単に処理できると確信した場合に限ります。
残りは、上記の 3 つのアプローチのどれを採用するか、あるいはまったく異なるアプローチを採用するかを決定することになります。それは、私たちがどのようなトレードオフに満足できるか、特に流動性ステーキングなどの関連する問題をどのように解決するかという問題になるでしょう。これはおそらく現在容易になりつつある技術的な問題とは別に解決できるでしょう。