Mike Neuder氏、Justin Drake氏、その他の方々のフィードバックとレビューに感謝します。 関連項目: <a href="https://notes.ethereum.org/@mikeneuder/goldilocks">Mike による同様のテーマに関する以前の投稿 Neuder、 Dankrad Feist 、 arixon.eth 。
イーサリアムの現状は、新興の2層ステーキングの大きなシェアを含んでいると言えます。 2層ステーキングとは、ここでは2つのクラスの参加者がいるステーキングモデルを意味します。
この新たな2層ステーキングは、流動性ステーキングトークン(LST)を提供するステーキングプールに参加するステーカーの大部分の行動によって発生します。 ロケットプール と リド。
現状には2つの大きな欠陥があります。
この投稿では、これら両方の問題に対する可能な解決策について説明します。 特に、ほとんどの資本は、現在の形でステーキングノードを個人的に運営することを望まない人々によって保有されており、スロットごとにメッセージに署名し、預金をロックしてスラッシングの対象とすることを前提としていると仮定します。 ネットワークの分散化とセキュリティに有意義に貢献するために、他にどのような役割を果たせるでしょうか?
現在最も人気のある2つの分散型ステーキングプールであるLidoとRocketPoolは、どちらも2層のステーキングエコシステムを構築しています。 Lido の場合、階層は次のとおりです。
Rocket Poolの場合、階層は次のとおりです。
これらのシステム(または 将来のプロトコル変更の可能性によって可能になる新しいシステム)では、プロトコルの観点から、委任者を持つことに何の意味があるのか、という重要な質問があります。
なぜこの質問が意味を持つのかを理解するために、次の世界を考えてみましょう。 この最近の投稿で提案された、スラッシングペナルティを2ETHに制限するプロトコルの変更が実装されました。Rocket Poolは、それに応じてノードオペレーターのデポジットを2ETHに減らします。 Rocket Poolの市場シェアは100%に増加します(ステーカー間だけでなく、ETH保有者の間でも:rETHがリスクフリーになると、ほぼすべてのETH保有者がrETH保有者またはノードオペレーターになります)。
rETH保有者が3%のリターン(プロトコル内報酬と優先手数料+MEVの両方を含む)を受け取り、ノードオペレーターが4%のリターンを得るとします。 また、ETHの総供給量が1億であるとします。
計算方法は次のとおりです。 複利計算を避けるため、年単位ではなく日次リターンに注目し、2次項が無視できるほど小さくなるようにします。
では、別の世界について考えてみましょう。 ロケットプールは存在しません。 各ステーカーの最低入金額は2ETHに引き下げられ、ステーキングされたETHの総量は6.25Mに制限されています。 また、ノードオペレーターのリターンは1%に減少します。 計算してみましょう。
次に、攻撃コストの観点から 2 つの状況について考えてみましょう。 前者の場合、攻撃者はデリゲーターとして登録しません:デリゲーターには権限がないので、意味がありません。 したがって、彼らはすべてのETHをノードオペレーターとしてのサインアップに投入します。 すべての賭け金の1/3を取得するには、2.08M ETHを投入する必要があります(公平を期すために、これはまだかなりの量です。 <a href="https://notes.ethereum.org/@vbuterin/single_slot_finality#Idea-1-super-committees">this を参照 スーパー委員会での議論、攻撃のコストを同様の値に削減するステーキングスケーリングの提案)。2番目のケースでは、攻撃者はステークするだけで、すべてのステークの1/3に到達するには、...2.08M イーサリアム
ステーキングの経済性の観点からも、攻撃コストの観点からも、どちらの場合も最終的な結果はまったく同じです。 ノードオペレーターが保有するETH総供給量に占めるシェアは1日あたり0.00256%増加し、非ノードオペレーターが保有するETH総供給量に占めるシェアは1日あたり0.00017%減少します。 攻撃のコストは208万ETHです。 したがって、このモデルでは、デリゲーションは無意味なルーブ・ゴールドバーグ・マシンになるように感じられます:仲介者を排除し、ステーキング報酬を大幅に減らし、ステーキングされたETHの合計を6.25Mに制限した方がいいかもしれません。
この議論の目的は、ステーキング報酬を4倍に減らし、ステーキングされたETHの合計を6.25mに制限することを提唱することではありません。 むしろ、適切に機能するステーキングシステムが持つべき重要な特性、つまり、デリゲーターが実際に重要なことをしている必要があることを指摘することです。 さらに、委任者がコミュニティの圧力と利他主義によって正しく行動するように動機付けられている場合でも問題ありません。結局のところ、これこそが、今日の中央集権的なセキュリティを脅かす(しかし労力の少ない)方法ではなく、分散型のセキュリティ強化(ただし、労力のかかる)方法に人々が取り組む動機となっている主な要因なのです。
私は2つのクラスの答えを見ます:
代理選択権限を拡張するには、次の 3 つの方法があります。
Rocket Poolでは誰でもノードオペレーターになることができ、LidoではETH保有者ではなくLDO保有者が投票します。 Lidoは、 LDO+stETHのデュアルガバナンスを提案しており、stETH保有者は、新しい投票をブロックし、ノードオペレーターの追加や削除をブロックするガジェットを起動できるという意味で、発言権を得ることができます。 とはいえ、これは限られており、はるかに強力になる可能性があります。
現在、プール間の競争は存在しますが、弱いです。 主な課題は、小規模なステーキングプールのステーキングトークンは、(i)流動性が低く、(ii)信頼が難しく、(iii)アプリケーションによるサポートが少ないことです。
最初の2つの問題は、スラッシングペナルティの上限を小さくすることで改善できます。2または4 ETH。 残りの(スラッシュ不可能な)ETHは、安全に入金および即時に引き出すことができ、そのETHに基づくLSTは、最小のプールでもETHで双方向変換可能になります。 3つ目の課題は、ウォレットのERC-4337や ERC-6900 にやや似たLSTの中央発行コントラクトを作成し、そのコントラクトを通じて発行されたステーキングトークンが安全であることを保証できるようにすることで改善することができます。アプリケーション(ステーキングされたETHをサポートする RAI のバージョンなど)は、このレジストリを通じて発行されたすべてのステーキングトークンをサポートすることを強く推奨できます。
現在、祀られている委任はプロトコル内には存在しませんが、導入される可能性があります。 上記のアイデアと同様のロジックが含まれますが、プロトコルレベルで実装されます。 物事を祀ることの長所と短所については 、この投稿 を参照してください。
これらのアイデアはすべて現状を改善されたものですが、提供できる利益には限界があります。 トークン投票のガバナンスは最悪であり、結局のところ、インセンティブのないデリゲート選択の形態はトークン投票の一種にすぎません。これは、委任されたプルーフ・オブ・ステークに対する私の不快感の主な原因でした。したがって、より強力な形のコンセンサス参加を可能にすることも検討する価値があるように思われます。
現在のソロステーキングのアプローチには、リキッドステーキングに関する現在の問題を考慮しなくても限界があります。 単一スロットのファイナリティを仮定すると、スロットごとに処理できる ~100k - 1M BLS 署名の制限が最善の見積もりで示され、スロット時間の大幅な増加を想定しています。 再帰的なSNARKを使用して署名を集約したとしても、署名の説明責任(スラッシングの目的)には、各署名で誰が参加したかのビットフィールドが必要です。 イーサリアムが世界規模のネットワークになれば、ビットフィールドを保存するためにフルダンクシャーディングを使ったとしても十分ではなく、スロットあたり16MBでは~6,400万人のステーカーしかサポートできません。
ここでも、その観点からも、ステーキングを、すべてのスロットで機能するが、おそらく10,000人の参加者しかいない、より複雑なスラッシャブルティアと、たまにしか呼び出されない複雑さの低いティアに分割することに価値があります。 複雑さの低い層は、スラッシングを完全に免除することも、参加者に一時的に(つまり、 いくつかのスロットの場合)を入金し、スラッシングの対象となります。
実際には、これは <a href="https://notes.ethereum.org/@mikeneuder/eip-7251-faq">raising で実装できます。 バリデーターの残高上限、および後で残高しきい値(例:2048 ETH)を使用して、既存のバリデーターのうち、どのバリデータが複雑度の高い層と低い層に入るかを判断します。
ここでは、これらの少額のステーキングの役割がどのように機能するかについて、いくつかのアイデアを紹介します。
これらのスモールステーキングの役割に共通しているのは、各スロットに積極的に参加せず、スラッシュ可能ではなく(したがって、重要な管理リスクが非常に低い)、実行にフルノードを必要としないという意味で非常に「軽量」であるということです。 コンセンサスレイヤーのみを検証するだけで十分です。 したがって、ZK-EVMのような技術的な進歩を前提とすることなく、ほとんどが受動的で、計算オーバーヘッド、ハードウェア要件、または技術的ノウハウ要件が非常に低いアプリやブラウザプラグインを介して実装できます。
また、これらのスモールステーキングの役割には、ノードオペレーターの51%の過半数がトランザクションの検閲に関与するのを防ぐという共通の目標があります。 また、第1と第2は、多数派が終局的な復帰に関与することを妨げます。 3つ目は、より直接的に検閲に焦点を当てていますが、ノードオペレーターの過半数がインクルージョンリストプロバイダーの確認メッセージも検閲する可能性に対してより脆弱です。
これらのアイデアは、プロトコルに実装された2層のステーキングソリューションの観点から書かれていますが、ステーキングプール機能として実装することもできます。 ここでは、具体的な実装のアイデアをいくつか紹介します。
正しく行えば、ステーキングデザインを微調整することで、一石二鳥を解決できる可能性があります。
これらのソリューションの多くでは、問題の解決策となる抽象化のさまざまなレイヤーがあります:ステーキングプールプロトコル内でユーザーに付与された権限、ステーキングプールプロトコル間のユーザー選択、プロトコル内の祀り。 この選択は慎重に検討されるべきであり、望ましい目標を達成しながら、プロトコルの複雑さとプロトコルの経済性に対する変化のレベルの両方を最小限に抑える、 実行可能な最小限の祀りが一般的に最善です。
Mike Neuder氏、Justin Drake氏、その他の方々のフィードバックとレビューに感謝します。 関連項目: <a href="https://notes.ethereum.org/@mikeneuder/goldilocks">Mike による同様のテーマに関する以前の投稿 Neuder、 Dankrad Feist 、 arixon.eth 。
イーサリアムの現状は、新興の2層ステーキングの大きなシェアを含んでいると言えます。 2層ステーキングとは、ここでは2つのクラスの参加者がいるステーキングモデルを意味します。
この新たな2層ステーキングは、流動性ステーキングトークン(LST)を提供するステーキングプールに参加するステーカーの大部分の行動によって発生します。 ロケットプール と リド。
現状には2つの大きな欠陥があります。
この投稿では、これら両方の問題に対する可能な解決策について説明します。 特に、ほとんどの資本は、現在の形でステーキングノードを個人的に運営することを望まない人々によって保有されており、スロットごとにメッセージに署名し、預金をロックしてスラッシングの対象とすることを前提としていると仮定します。 ネットワークの分散化とセキュリティに有意義に貢献するために、他にどのような役割を果たせるでしょうか?
現在最も人気のある2つの分散型ステーキングプールであるLidoとRocketPoolは、どちらも2層のステーキングエコシステムを構築しています。 Lido の場合、階層は次のとおりです。
Rocket Poolの場合、階層は次のとおりです。
これらのシステム(または 将来のプロトコル変更の可能性によって可能になる新しいシステム)では、プロトコルの観点から、委任者を持つことに何の意味があるのか、という重要な質問があります。
なぜこの質問が意味を持つのかを理解するために、次の世界を考えてみましょう。 この最近の投稿で提案された、スラッシングペナルティを2ETHに制限するプロトコルの変更が実装されました。Rocket Poolは、それに応じてノードオペレーターのデポジットを2ETHに減らします。 Rocket Poolの市場シェアは100%に増加します(ステーカー間だけでなく、ETH保有者の間でも:rETHがリスクフリーになると、ほぼすべてのETH保有者がrETH保有者またはノードオペレーターになります)。
rETH保有者が3%のリターン(プロトコル内報酬と優先手数料+MEVの両方を含む)を受け取り、ノードオペレーターが4%のリターンを得るとします。 また、ETHの総供給量が1億であるとします。
計算方法は次のとおりです。 複利計算を避けるため、年単位ではなく日次リターンに注目し、2次項が無視できるほど小さくなるようにします。
では、別の世界について考えてみましょう。 ロケットプールは存在しません。 各ステーカーの最低入金額は2ETHに引き下げられ、ステーキングされたETHの総量は6.25Mに制限されています。 また、ノードオペレーターのリターンは1%に減少します。 計算してみましょう。
次に、攻撃コストの観点から 2 つの状況について考えてみましょう。 前者の場合、攻撃者はデリゲーターとして登録しません:デリゲーターには権限がないので、意味がありません。 したがって、彼らはすべてのETHをノードオペレーターとしてのサインアップに投入します。 すべての賭け金の1/3を取得するには、2.08M ETHを投入する必要があります(公平を期すために、これはまだかなりの量です。 <a href="https://notes.ethereum.org/@vbuterin/single_slot_finality#Idea-1-super-committees">this を参照 スーパー委員会での議論、攻撃のコストを同様の値に削減するステーキングスケーリングの提案)。2番目のケースでは、攻撃者はステークするだけで、すべてのステークの1/3に到達するには、...2.08M イーサリアム
ステーキングの経済性の観点からも、攻撃コストの観点からも、どちらの場合も最終的な結果はまったく同じです。 ノードオペレーターが保有するETH総供給量に占めるシェアは1日あたり0.00256%増加し、非ノードオペレーターが保有するETH総供給量に占めるシェアは1日あたり0.00017%減少します。 攻撃のコストは208万ETHです。 したがって、このモデルでは、デリゲーションは無意味なルーブ・ゴールドバーグ・マシンになるように感じられます:仲介者を排除し、ステーキング報酬を大幅に減らし、ステーキングされたETHの合計を6.25Mに制限した方がいいかもしれません。
この議論の目的は、ステーキング報酬を4倍に減らし、ステーキングされたETHの合計を6.25mに制限することを提唱することではありません。 むしろ、適切に機能するステーキングシステムが持つべき重要な特性、つまり、デリゲーターが実際に重要なことをしている必要があることを指摘することです。 さらに、委任者がコミュニティの圧力と利他主義によって正しく行動するように動機付けられている場合でも問題ありません。結局のところ、これこそが、今日の中央集権的なセキュリティを脅かす(しかし労力の少ない)方法ではなく、分散型のセキュリティ強化(ただし、労力のかかる)方法に人々が取り組む動機となっている主な要因なのです。
私は2つのクラスの答えを見ます:
代理選択権限を拡張するには、次の 3 つの方法があります。
Rocket Poolでは誰でもノードオペレーターになることができ、LidoではETH保有者ではなくLDO保有者が投票します。 Lidoは、 LDO+stETHのデュアルガバナンスを提案しており、stETH保有者は、新しい投票をブロックし、ノードオペレーターの追加や削除をブロックするガジェットを起動できるという意味で、発言権を得ることができます。 とはいえ、これは限られており、はるかに強力になる可能性があります。
現在、プール間の競争は存在しますが、弱いです。 主な課題は、小規模なステーキングプールのステーキングトークンは、(i)流動性が低く、(ii)信頼が難しく、(iii)アプリケーションによるサポートが少ないことです。
最初の2つの問題は、スラッシングペナルティの上限を小さくすることで改善できます。2または4 ETH。 残りの(スラッシュ不可能な)ETHは、安全に入金および即時に引き出すことができ、そのETHに基づくLSTは、最小のプールでもETHで双方向変換可能になります。 3つ目の課題は、ウォレットのERC-4337や ERC-6900 にやや似たLSTの中央発行コントラクトを作成し、そのコントラクトを通じて発行されたステーキングトークンが安全であることを保証できるようにすることで改善することができます。アプリケーション(ステーキングされたETHをサポートする RAI のバージョンなど)は、このレジストリを通じて発行されたすべてのステーキングトークンをサポートすることを強く推奨できます。
現在、祀られている委任はプロトコル内には存在しませんが、導入される可能性があります。 上記のアイデアと同様のロジックが含まれますが、プロトコルレベルで実装されます。 物事を祀ることの長所と短所については 、この投稿 を参照してください。
これらのアイデアはすべて現状を改善されたものですが、提供できる利益には限界があります。 トークン投票のガバナンスは最悪であり、結局のところ、インセンティブのないデリゲート選択の形態はトークン投票の一種にすぎません。これは、委任されたプルーフ・オブ・ステークに対する私の不快感の主な原因でした。したがって、より強力な形のコンセンサス参加を可能にすることも検討する価値があるように思われます。
現在のソロステーキングのアプローチには、リキッドステーキングに関する現在の問題を考慮しなくても限界があります。 単一スロットのファイナリティを仮定すると、スロットごとに処理できる ~100k - 1M BLS 署名の制限が最善の見積もりで示され、スロット時間の大幅な増加を想定しています。 再帰的なSNARKを使用して署名を集約したとしても、署名の説明責任(スラッシングの目的)には、各署名で誰が参加したかのビットフィールドが必要です。 イーサリアムが世界規模のネットワークになれば、ビットフィールドを保存するためにフルダンクシャーディングを使ったとしても十分ではなく、スロットあたり16MBでは~6,400万人のステーカーしかサポートできません。
ここでも、その観点からも、ステーキングを、すべてのスロットで機能するが、おそらく10,000人の参加者しかいない、より複雑なスラッシャブルティアと、たまにしか呼び出されない複雑さの低いティアに分割することに価値があります。 複雑さの低い層は、スラッシングを完全に免除することも、参加者に一時的に(つまり、 いくつかのスロットの場合)を入金し、スラッシングの対象となります。
実際には、これは <a href="https://notes.ethereum.org/@mikeneuder/eip-7251-faq">raising で実装できます。 バリデーターの残高上限、および後で残高しきい値(例:2048 ETH)を使用して、既存のバリデーターのうち、どのバリデータが複雑度の高い層と低い層に入るかを判断します。
ここでは、これらの少額のステーキングの役割がどのように機能するかについて、いくつかのアイデアを紹介します。
これらのスモールステーキングの役割に共通しているのは、各スロットに積極的に参加せず、スラッシュ可能ではなく(したがって、重要な管理リスクが非常に低い)、実行にフルノードを必要としないという意味で非常に「軽量」であるということです。 コンセンサスレイヤーのみを検証するだけで十分です。 したがって、ZK-EVMのような技術的な進歩を前提とすることなく、ほとんどが受動的で、計算オーバーヘッド、ハードウェア要件、または技術的ノウハウ要件が非常に低いアプリやブラウザプラグインを介して実装できます。
また、これらのスモールステーキングの役割には、ノードオペレーターの51%の過半数がトランザクションの検閲に関与するのを防ぐという共通の目標があります。 また、第1と第2は、多数派が終局的な復帰に関与することを妨げます。 3つ目は、より直接的に検閲に焦点を当てていますが、ノードオペレーターの過半数がインクルージョンリストプロバイダーの確認メッセージも検閲する可能性に対してより脆弱です。
これらのアイデアは、プロトコルに実装された2層のステーキングソリューションの観点から書かれていますが、ステーキングプール機能として実装することもできます。 ここでは、具体的な実装のアイデアをいくつか紹介します。
正しく行えば、ステーキングデザインを微調整することで、一石二鳥を解決できる可能性があります。
これらのソリューションの多くでは、問題の解決策となる抽象化のさまざまなレイヤーがあります:ステーキングプールプロトコル内でユーザーに付与された権限、ステーキングプールプロトコル間のユーザー選択、プロトコル内の祀り。 この選択は慎重に検討されるべきであり、望ましい目標を達成しながら、プロトコルの複雑さとプロトコルの経済性に対する変化のレベルの両方を最小限に抑える、 実行可能な最小限の祀りが一般的に最善です。