Protocol DAO (pDAO)
Rocket Pool Protocol DAO (pDAO) は、プロトコルの方向性を形作る責任を負い、RPL ガバナンスによって運営されています。そのメンバーと投票力は、大小を問わず、プロトコルに直接参加しているノードオペレーターで構成されています。pDAO は、rETH 保有者、ノードオペレーター、RPL 保有者を含む Rocket Pool コミュニティ全体に奉仕します。pDAO は、Rocket Pool プロトコルの安全性と Ethereum ネットワークの健全性を優先します。pDAO が誰で何であるかの明確な定義については、pDAO charter をご覧ください。
Houston における新しい pDAO 機能
pDAO 責任のオンチェーン実行
Houston アップグレードは、pDAO ガバナンスシステムの実行プロセスにオンチェーンの代替を導入します。これは、楽観的不正証明システムを使用し、任意のノードオペレーターが提案を提起し、「pDAO プロトコルパラメータ」を調整し、財務資金を支出する提案に投票できるようにします。pDAO が制御可能なパラメータの包括的なリストについては、こちらをクリックしてください。 Houston 以前は、コアチームがコミュニティガバナンスプロセスの要請に応じて pDAO の義務を実行する責任を負っていました。例えば、チームはガバナンスで投票された支払いスケジュールに従って、毎月の IMC および GMC の支払いを実行します。この権限は、新しい権力構造が設定されてこれらの責任を引き継ぐまで、一時的にチームに委ねられる計画でした。Houston は、チームへのこの依存を取り除き、プロトコルをより分散化し、トラストレスにします。
Security Council
Houston アップグレードには、プロトコルに潜在的な問題が発生した場合に迅速に対応するための新しい Security Council も含まれています。これらのメンバーは pDAO によって選出され、遅延なく変更を提案し実行する能力を持っています。pDAO は、Security Council からメンバーを選出し削除する権限を持っています。これは重要な役割であり、pDAO は強力なエントリー要件と古いメンバーを排除するプロセスを開発する必要があります。Houston の開始時には、pDAO guardian が Security Council の唯一のメンバーになります。
定期的な財務支出
RPL は 5% のインフレ率を持っています。このインフレの 22% は、RPIP-25 で定義されているように pDAO に向けられます。pDAO は、これらの資金をさまざまな目的に使用できます。例えば、流動性プロバイダー (LP) ボーナスなどのインセンティブ、サードパーティの改善やプロジェクトに対する助成金や報奨金、Rocket Pool プロトコルの開発への資金提供などです。Houston アップグレードは、各報酬期間に指定された受益者に対して定期的な財務支払いを可能にする新機能も導入します。
Protocol DAO (pDAO) 提案
ゼロではない投票力を持つ任意のノードは、いつでも pDAO 提案を提起または参加できます。提案は次のタイプのいずれかになります。
- pDAO 設定の変更
- 1 回限りの財務支出
- 定期的な財務支出 (管理委員会)
- Security Council メンバーシップ
詳細と根拠については、提案タイプを参照してください。pDAO 提案は、プロトコルレベルで変更を実行するために存在するオンチェーンエンティティであることを理解することが重要です。
pDAO 提案のライフサイクル
提案は、オンチェーンに到達する前にガバナンスプロセスによって予測されるべきです。これは 4 つの期間で構成され、すべて pDAO の制御可能なパラメータです。
- 投票遅延期間:
proposal.vote.delay.time - 投票フェーズ 1:
proposal.vote.phase1.time - 投票フェーズ 2:
proposal.vote.phase2.time - 実行:
proposal.execute.time
投票遅延期間
提案の結果を決定するために、プロトコルは必要な定足数を知る必要があります。提案者は、この値をオフチェーンで計算し、提案と一緒に提出します。この値は楽観的に受け入れられますが、不正の場合、検証者はチャレンジ/レスポンスプロセスを実行して、値が正しくないことを証明できます。無効な提案は破棄されます。
提案者とチャレンジャーが RPL をロックする必要があるいくつかの理由。
proposal.bondは有効な提案を奨励し、スパムを抑止します。proposal.challenge.bondは無効/悪意のある提案の削除を奨励します。
チャレンジャーは、誤りであると主張する Merkle-sum ツリーへのインデックスを提供します。任意のノードオペレーターは、不正な提案へのチャレンジに参加できます (そしてそうすることで報酬を得ることができます)。興味がある場合は、pDAO チャレンジプロセスについてお読みください。投票遅延期間の終了までにチャレンジで打ち負かされなかった提案は、投票段階に入ります。
proposal.vote.delay.time が期限切れになると、提案はチャレンジされたり打ち負かされたりすることができなくなります。
投票期間 1
投票期間中、ノードオペレーターとデリゲートは、4 つのオプションのいずれかで投票できます。
彼らの投票力は、選択したオプションに含まれます。
これは次のコマンドを使用して行うことができます。
拒否定足数 (proposal.veto.quorum パラメータで定義) に達すると、提案は直ちに打ち負かされ、提案者はボンドを失います。これは、スパム、低品質の提案、またはオフチェーンプロセスを最初に経ていない提案を抑止するためです。smartnode コマンド rocketpool pdao proposals finalize は、提案者のロックされた RPL ボンドを燃やすことによって拒否された提案を確定するために使用されます。
期間 1 の期間は、proposal.vote.phase1.time パラメータによって決定されます。提案は、proposal.quorum に達したかどうかに関係なく、フェーズ 2 に移行します。
投票期間 2
デリゲートは投票期間 2 中に投票できますが、彼らの投票はローカル投票力のみの価値があります。期間 1 で投票しなかった投票者は、期間 2 中に投票をキャストできます。デリゲートの選択に同意しないノードオペレーターは、デリゲートの投票を覆す機会があります。
投票を覆すプロセスは非常に簡単です。投票期間 2 中に rocketpool pdao proposals vote を呼び出し、プロンプトに従うだけです。デリゲートの投票力は、被委任者の投票力によって覆されます。
提案の結果は、投票期間 2 が終了したときに結論付けられます。結果が決定される (そして実行される) ためには、proposal.vote.phase2.time の終了までに proposal.quorum の合計投票力に達する必要があります。定足数に達し、コンセンサスに達すると、提案は投票期間を通過し、成功としてマークされます。
proposal.quorum に達しない場合、これ以上のアクションを取ることはできません。定足数に達しない場合、提案は結論付けられ最終的なものと見なされます。
実行
両方の投票期間が経過し、提案が成功した場合、提案を実行でき、変更 (ペイロードで定義) が Rocket Pool プロトコルに適用されます。提案を実行するには、次のコマンドを使用します。
実行する提案を選択するように求められ、このステップの後、提案がプロトコルに適用されます!
提案が投票期間を通過した後、提案者は、提案がチャレンジによって打ち負かされたり拒否されたりしない限り、ロックされた RPL ボンドを請求できます。
提案を実行できるウィンドウ proposal.execute.time があります。このタイマーが終了に達すると、提案は期限切れになります。
以上です! 上記で言及されたすべての変数は pDAO 制御可能なパラメータであることに留意してください。pDAO がオンチェーン提案を使用して変更する権限を持つすべてのパラメータの包括的なリストについては、こちらをクリックしてください。
チャレンジプロセス
完全なネットワーク投票力ツリーは、ガス制限のためオフチェーンに保存されます。ユーザーが新しい提案を送信すると、ターゲットブロック番号でネットワーク投票ツリーを構築する責任があります。このツリーはオフチェーンで生成されますが、オンチェーンで送信される Merkle ルートを介して検証可能です。プロトコルは、提案者によって送信された詳細をチェックするために検証者に依存しています。
任意のノードは、提案の正しさを追跡および検証することに参加できます。この責任にオプトインするには、コマンド rocketpool service config を使用し、Smartnode and TX Fee Settings メニューに移動して、Enable PDAO Proposal Checker のチェックボックスをオンにします。
この設定が有効になっていると、ノードは新しい提案をチェックし、その正しさを検証し、無効な提案にチャレンジを送信します。唯一の前提条件は、RPL ロックが有効になっていることです。
このチェックは、他のいくつかのノード関連の義務と連携して 5 分ごとに実行されます。不正な提案にチャレンジする例を見ていきましょう。smartnode コマンド rocketpool service logs node を使用して進行状況を監視できます。
ノードが不正な提案を検出し、チャレンジのプロセスを開始したことがわかります。ブロック 1283202 は提案 177 が提起されたブロックです。つまり、この提案の投票力はブロック 1283202 で計算されます。これらの Voting Info Snapshots がどのようなものかを見たい場合は、このディレクトリで見つけることができます: ~/.rocketpool/data/voting
提案者が誤った投票情報を送信したことが検出されたため、ノードは提案 177 のインデックス 5 で契約呼び出し Function: createChallenge を行い、提案者がチャレンジに応答するのを待ちます。
提案者の投票情報が正しくないため、時間内にチャレンジに応答できません (proposal.challenge.period によって決定)。この時点で、提案は打ち負かされたと見なされます。提案が打ち負かされると、ノードは自動的に提案 177 のインデックス 5 で契約呼び出し defeatProposal を行い、提案を終了します。
提案の打破に参加したチャレンジャーは、誤りであることが証明されたインデックスを送信した場合、提案者のボンドの比例額を支払われます。他のすべてのチャレンジャーは、ボンドのみを受け取ります。
提案が打ち負かされたので、ノード (チャレンジャー) は、元の RPL ボンドと、不正な提案を打ち負かした報酬として提案者の RPL ボンドを請求できます。
pDAO 提案およびチャレンジシステムの詳細を掘り下げたい場合は、技術仕様をご覧ください。低レベルの詳細に入る例を研究することに興味がある場合は、チャレンジプロセスのこのセクションに自由にスキップしてください。