Vitalikの最新研究:LSDFiプロトコルと流動性は、どのように変わるべきか、分散化を高め、コンセンサスの過負荷を減らすために?
原文タイトル:《分散化を改善し、コンセンサスのオーバーヘッドを削減する可能性のあるプロトコルとステーキングプールの変更》
著者:Vitalik Buterin
編纂:bayemon.eth, ChainCatcher
特別感謝 Mike Neuder、Justin Drake およびその他のフィードバックとレビュー。さらに、Mike Neuder、Dankrad Feist および arixon.eth が以前に発表した類似のテーマに関する記事も参照してください。
現在のイーサリアムの発展状況は、大量の二重ステーキング(two-tiered staking)を含んでいると言えます。ここで言う二重ステーキングとは、2種類の参加者によるステーキングモデルを指します。
- ノードオペレーター Node Operator:ノードを運営し、自らの評判と一定額の自己資本を担保として提供します。
- デリゲーター Delegator:デリゲーターは一定量のイーサリアムをステーキングし、最低額はなく、担保以外の他の参加方法にも追加の制限はありません。
この新興の二重ステーキングは、大量の参加者によって提供される流動性ステーキングトークン(LST)のステーキングプールによって生じています。(Rocket Pool と Lido はこのモデルの例です)。
しかし、現在の二重ステーキングには2つの欠陥があります:
- ノードオペレーターの中央集権リスク:現在、すべてのステーキングプールにおけるノードオペレーターの選定メカニズムは依然として過度に中央集権的です。
- 不必要なコンセンサス負担:イーサリアム L1 は、各エポックで約800,000の署名を検証する必要があり、これは単一のスロットにとって非常に大きな負荷です。さらに、流動性ステーキングプールが必要とする資金が多いため、ネットワーク自体はこの負荷から十分に利益を得ていません。したがって、イーサリアムネットワークが合理的な分散性と安全性を実現できるなら、各ステーキング者が時間ごとに署名する必要がなくなり、コミュニティはこのような解決策を採用することで、各時間の署名数を効果的に削減できるでしょう。
この記事では、上記の2つの問題を解決するための提案を説明します。まず仮定しますが、大多数の資本が現在の形式でステーキングノードを自ら管理し、各スロットで情報に署名し、預金をロックし、資金が削減された者に再分配することを望まない人々の手に握られている場合、これらの人々はどのような役割を果たし、ネットワークの分散化と安全性に意味のある貢献をすることができるのでしょうか?
現在の二重ステーキングはどのように機能しているのか?
現在最も人気のある2つのステーキングプールはLidoとRocket Poolです。Lidoの場合、参加する2つの側は次の通りです:
- ノードオペレーター: Lido DAOによって投票で選出されます。これは実質的にLDO保有者によって選ばれることを意味します。誰かがETHをLidoのスマートコントラクトシステムに預けると、stETHが作成され、ノードオペレーターはそれをステーキングプールに投入できます(ただし、引き出し証明書がスマートコントラクトアドレスにバインドされているため、オペレーターは自由に引き出すことはできません)。
- デリゲーター: 誰かがETHをLidoのスマートコントラクトシステムに預けると、stETHが生成され、ノードオペレーターはそれをステーキングとして使用できます(同様に、引き出し証明書がスマートコントラクトアドレスにバインドされているため、オペレーターは自由に引き出すことはできません)。
Rocket Poolの場合は次の通りです:
- ノードオペレーター: 誰でもノードオペレーターになれます。8 ETHと一定量のRPLトークンを提出するだけです。
- デリゲーター: 誰かがETHをRocket Poolのスマートコントラクトシステムに預けると、rETHが生成され、ノードオペレーターはそれをステーキングとして使用できます(同様に、引き出し証明書がスマートコントラクトアドレスにバインドされているため、オペレーターは自由に引き出すことはできません)。
デリゲーターの役割
これらのシステム(または将来の潜在的なプロトコル変更によって有効化される新しいシステム)において、提起すべき重要な問題は:プロトコルの観点から、デリゲーターを設立する意義は何か?
この問題の深い意味を理解するために、まず、投稿で言及されたプロトコル変更、すなわち罰則を2ETHに制限することを考えます。Rocket Poolもノードオペレーターのステーキング額を2ETHに引き下げ、Rocket Poolの市場シェアは100%/(ステーキング者とETH保有者にとって、rETHが無リスクになるにつれて、ほぼすべてのETH保有者がrETH保有者またはノードオペレーターになるでしょう)。
rETH保有者のリターン率が3%(プロトコル内の報酬と優先権手数料 + MEVを含む)で、ノードオペレーターのリターン率が4%であると仮定します。また、ETHの総供給量が1億個であると仮定します。
計算結果は次の通りです。複利計算を避けるために、日単位で利益を計算します:
さて、Rocket Poolが存在しないと仮定すると、各ステーキング者の最低預金額は2 ETHに引き下げられ、流動性の総量上限は625万ETHとなり、ノードオペレーターのリターン率は1%に低下します。再度計算します:
攻撃コストの観点からこの2つの状況を考慮します。最初の状況では、攻撃者はデリゲーターとして登録しません。なぜなら、デリゲーターは本質的に引き出し権を持っていないため、意味がないからです。したがって、彼らはすべてのETHをステーキングに使用し、ノードオペレーターになります。ステーキング総量の1/3に達するには、208万ETHを投入する必要があります(公平に言えば、これは依然としてかなりの数字です)。第二の状況では、攻撃者は資金を投入するだけで、ステーキングプールの総量の1/3に達するには、依然として208万ETHを投入する必要があります。
ステーキング経済学と攻撃コストの観点から見ると、2つの状況の最終結果は完全に同じです。 ノードオペレーターが保有するETHの総供給量シェアは毎日0.00256%増加し、非ノードオペレーターが保有するETHの総供給量シェアは毎日0.00017%減少します。攻撃コストは208万ETHです。したがって、このモデルでは、デリゲーターは無意味なルーブ・ゴールドバーグ機械のように見え、理性的なコミュニティは中間者を排除し、ステーキング報酬を大幅に削減し、ステーキングのETH総量を625万に制限する傾向があります。
もちろん、この記事はステーキング報酬を4倍に減少させ、ステーキング総量を625万に固定することを主張しているわけではありません。むしろ、この記事の見解は、機能する良好なステーキングシステムは、デリゲーターがシステム全体で重要な責任を負うべきという重要な特性を持つべきだということです。 さらに、デリゲーターがコミュニティの圧力や利他主義の動機によって正しい行動をとることができるのであれば、それも問題ありません。結局のところ、これこそが今日、人々が分散化と高い安全性を持つステーキングソリューションを推進する主な力なのです。
デリゲーターの責任
もしデリゲーターがステーキングシステムの中で意味のある役割を果たすことができるなら、その役割は何でしょうか?
私は2つのタイプの答えがあると考えています:
- デリゲーターの選択: デリゲーターは、自身の利害関係をどのノードオペレーターに委託するかを選択できます。ノードオペレーターのコンセンサスメカニズムにおける「重み」は、彼らに委託された総ステーキングに比例します。現在、デリゲーターの選択メカニズムは依然として限られており、rETHまたはstETH保有者はETHを引き出し、異なるプールに切り替えることができますが、デリゲーターの選択の実際の可用性は大幅に向上させることができます。
- コンセンサスメカニズムへの参加: デリゲーターは、コンセンサスメカニズムにおいて一定の役割を果たすことを選択でき、全額引き受けるよりも「軽い」責任を持ち、長い退出期間や削減リスクもなく、ノードオペレーターに対する抑制の役割を果たすことができます。
デリゲーターの選択権を強化する
デリゲーターの選択権を強化する方法は3つあります:
- プール内の投票ツールを改善する
- プール間の競争を増やす
- 代表権を固定化する
現在、プール内での投票は実際には実用的ではありません:Rocket Poolでは誰でもノードオペレーターになれ、Lidoでは投票はLDO保有者によって決定され、ETH保有者によってではありません。LidoはLDO + stETHの二重ガバナンスに関する提案を行い、彼らは新しい投票を阻止する保護メカニズムを有効化することができ、これによりノードオペレーターの追加または削除を阻止します。これはある程度、stETH保有者に発言権を与えます。それにもかかわらず、この権力は依然として限られており、より強力にすることができます。
プール間の競争は今日存在していますが、相対的には弱いです。主な課題は、小規模なステーキングプールのステーキングトークンが流動性が低く、信頼を得るのが難しく、アプリケーションのサポートも少ないことです。
私たちは、罰金額を小さな数(例えば2または4 ETH)に制限することで、最初の2つの問題を改善できます。 その後、残りのETHは安全に預け入れ、即座に引き出すことができるため、小規模なステーキングプールでも双方向の交換が成立します。私たちは、LSTを管理するための総発行契約を作成することで、3つ目の問題を改善できます(ERC-4337やERC-6900がウォレットに使用される契約に類似)。
現在、プロトコル内には固定化された代表権は存在しませんが、このような状況が将来存在する可能性もあります。それは、上記のアイデアに類似した論理を含むことになりますが、プロトコルレベルで実施されます。固定化に関する利点と欠点については、この記事を参照してください。
これらのアイデアは現状の改善を目指していますが、提供できる利点は限られています。トークン投票ガバナンスには問題があり、最終的にあらゆる形式の非インセンティブデリゲーター選択はトークン投票の一形態に過ぎません;これは私が委託証明に対して抱いている主な不満です。 したがって、より強力なコンセンサス参加方法の実現を考慮することも価値があります。
コンセンサス参加
流動性ステーキングの現在の問題を考慮しなくても、現在の独立したステーキング方法にも制限があります。single-slot finalityを使用すると仮定した場合、理想的には各スロットで約100,000から1,000,000のBLS署名を処理できます。たとえ私たちが再帰的SNARKを使用して署名を集約しても、署名の追跡性のために、各署名に参加者のビットフィールドを付与する必要があります。 イーサリアムがグローバル規模のネットワークになる場合、完全に分散化されたビットフィールドの保存は不十分です:各スロットの16 MBは約6400万のステーキング者をサポートすることしかできません。
この観点から、ステーキングをより高い複雑性の可減持層と低い複雑性の層に分けることは価値があります。高複雑性の層は各スロットで有効になりますが、参加者は10,000人しかいないかもしれません。一方、低複雑性の層は、時折呼び出されて参加するだけです。低複雑性の層は完全に減持を免れるか、ランダムに参加者に機会を与えて、いくつかのスロット内で預金し、減持対象となることができます。
実際、これは検証者の残高上限を引き上げ、その後残高閾値(例えば2048 ETH)を増加させることで、どの既存の検証者がより高い複雑性または低い複雑性の層に入るかを決定できます。
以下は、これらの小額ステーキング役割がどのように機能するかに関するいくつかの提案です:
- 各スロットで、ランダムに10,000人の小額ステーキング者が選ばれ、彼らはそのスロットを代表する内容に署名できます。小額ステーキング者を入力として使用してLMD GHOST分岐選択ルールを実行します。もし小額ステーキング者によって駆動される分岐選択とノードオペレーターによって駆動される分岐選択に一定の相違がある場合、ユーザーのクライアントは最終確認としていかなるブロックも受け入れず、エラーを表示します。これにより、コミュニティが介入して状況を解決することを強制します。
- デリゲーターはトランザクションを送信し、ネットワークにオンラインであり、次の1時間内に小額ステーキング者として活動する意志があることを宣言できます。ノードが送信するメッセージ(ブロックまたは証明)は計算され、ノードとランダムに選ばれたデリゲーターの両方がノードの確認情報に署名する必要があります。
- デリゲーターはトランザクションを送信し、ネットワークにオンラインであり、次の1時間内に小額ステーキング者として活動する意志があることを宣言できます。各期間で、10人のランダムなデリゲーターが包含リスト提供者(inclusion list provider)として選ばれ、さらに10,000人のデリゲーターが選挙人として選ばれます。これらはkスロットの前に選ばれ、オンラインであることを確認するメッセージをチェーン上に公開するためのkスロットウィンドウが与えられます。選ばれた包含リスト提供者の各確認は、包含リストを公開できます。各包含リストに対して、その包含リスト内のトランザクションを含むか、一般的に選ばれた選挙人の投票を含む必要があります。そうでなければ、ブロックは無効と見なされます。
これらの小型ステーキングノードの共通点は、彼らが各スロットに積極的に参加する必要がなく、軽ノードだけで全ての作業を完了できることです。したがって、ノードの展開はコンセンサス層を検証するだけで済み、ノードオペレーターはアプリケーションやブラウザプラグインを通じて実現でき、これらのアプリケーションやブラウザプラグインはほとんどが受動的で、計算負荷、ハードウェア要件、または技術的な専門知識の要求が非常に低く、ZK-EVMのような高度な技術を必要としません。
これらの「小さな役割」も共通の目標を持っています:51%の多数のノードオペレーターによる取引の検閲を防ぐことです。 最初の2つは、最終的な復元に多数が関与するのを防ぐこともできます。3つ目は、検閲に直接焦点を当てていますが、より多数のノードオペレーターの選択の影響を受けやすくなります。
これらのアイデアは、プロトコル内での二重ステーキングソリューションの実施の観点から書かれていますが、ステーキングプールの機能として実施することもできます。以下は、いくつかの具体的な実施アイデアです:
- プロトコルの観点から、各検証者は2つのステーキングキーを設定できます:1つは持続的ステーキングキーPであり、バインドされた呼び出し可能なイーサリアムアドレスを持ち、もう1つは迅速ステーキングキーQを出力します。ノードの分岐選択に対する署名情報はPで追跡され、署名された情報はQで表されます。もしPQの保存結果が一致しない場合、いかなるブロックの最終確認も受け入れられず、流動性プールがランダムに代表を選出します。
- プロトコルは大体変わらないが、その検証者のその期間の公開鍵はP+Qに設定されます。減持に関しては、2つの可減持メッセージが異なるQキーを持つ可能性がありますが、同じPキーを持つことになります;減持設計はこの状況を処理する必要があります。
- Qキーはプロトコル内でブロック内の包含リストに署名し、検証するためにのみ使用されます。この場合、Qは単一のキーではなくスマートコントラクトである可能性があるため、ステーキングプールはそれを使用してより複雑な投票ロジックを実現し、ランダムに選ばれた提供者からの包含リストや、包含リストが利用できないことを示す十分な投票を受け入れることができます。
結論
正しく実施されれば、ステークホルダー証明設計の微調整は2つの問題を一挙に解決できます:
- 今日、独立したステークホルダー証明を行うリソースや能力がない人々に、権力をより多く手元に残しながら、ステークホルダー証明に参加する機会を提供します:これには(i)どのノードを支持するかを選択する権利と(ii)完全に運営されるステークホルダー証明ノードよりも軽い方法で意味のある形でコンセンサスに積極的に参加することが含まれます。すべての参加者がこれらの選択肢のいずれかまたは両方を選択するわけではありませんが、いずれかまたは両方を選択した参加者は、現状に対して重大な改善をもたらすでしょう。
- イーサリアムのコンセンサス層が各スロットで処理する必要のある署名の数を削減し、単一スロット最終性制度の下でも約10,000のような小さな数に減少させます。これにより、分散化が促進され、誰もが検証ノードを運営しやすくなります。
これらの解決策に関しては、異なる抽象レベルで問題を解決する方法を見つけることができます:ステークホルダー証明プロトコル内でユーザーに与えられる権限、ステークホルダー証明プロトコル間のユーザー選択、そしてプロトコル内での設立。これらの選択を慎重に考慮すべきであり、通常は最小限の実行可能な設立を選択することが最善であり、プロトコルの複雑性とプロトコル経済学への変更の程度を最小限に抑えつつ、期待される目標を達成することが重要です。