テクニカル概要

ガバナンスアーキテクチャおよびスマートコントラクトの概要。

ガバナンスアーキテクチャの概要

dYdXのオンチェーン・ガバナンスは以下の機能をサポートしています。

  • 提案の作成および選択

  • 提案の開始時に保有しているトークンのスナップショット

  • 選択権および提案権に関する個別の委任

  • 提案数、定足数、選択の差異基準を含むガバナンス基準の設定

  • 投票のカウント方法を決定する「ガバナンス戦略V2」スマートコントラクトの置き換え

  • 以下の内容を許可する複数の実行管理者コントラクトの構成:

      1. ショートタイムロックの実行管理者による迅速なプロトコルのアップグレードおよび資金の配分。

      1. ロングタイムロックの実行管理者によるガバナンスのアップグレード。

dYdXガバナンスをサポートするスマートコントラクトは7つあります。

  • DydxTokenコントラクト:アドレスが有する選択権や任意のブロック番号での提案権に関するクエリをサポートするスナップショットを維持します。選択権と提案権に関する個別の委任をサポートします。

  • ラップイーサリアムDydxTokenコントラクト:アドレスが有する投票権や任意のブロック番号での提案権に関するクエリをサポートするスナップショットを維持します。選択権と提案権に関する個別の委任をサポートします。

  • **DydxGovernorコントラクト:**提案を追跡し、実行管理者のスマートコントラクトを通じて提案を実行することができます。

  • 実行管理者コントラクト:ガバナンスによって選択されたトランザクションのキュー、キャンセル、実行ができます。提案が承認されると、提案で指定された実行管理者コントラクトによって提案内の関数呼び出しが実行される可能性があります。キューされたトランザクションは、実行管理者コントラクトに定められている期間内に実行することが可能です。

  • ******優先タイムロック**コントラクト:タイムロックコントラクトと同じですが、優先度コントローラーが優先期間(タイムロックの遅延終了の7日前)以内にトランザクションを執行することが可能になります。

  • ガバナンス戦略V2コントラクト:投票数カウントのロジックが含まれています。現在、$ethDYDXトークン、$wethDYDXトークン、$stkDYDXからの投票数をカウントしています。 ロングタイムロックによりアップグレードできます。

  • セーフティモジュールのコントラクト:$ethDYDXトークンのステーク、ステークされたポジションのトークン化、報酬の獲得のためのロジックが含まれており、投票権、提案権、およびアンダーライングトークンの委任に関する機能を保持します。

|コントラクト | アドレス| ------------------------------------ | ------------------------------------------ | | DydxToken | 0x92D6C1e31e14520e676a687F0a93788B716BEff5 || ラップイーサリアムDydxToken | 0x46b2DeAe6eFf3011008EA27EA36b7c27255ddFA9 || DydxGovernor | 0x7E9B1672616FF6D6629Ef2879419aaE79A9018D2 || ショートタイムロックの執行管理者 | 0x64c7d40c07EFAbec2AafdC243bF59eaF2195c6dc ||ロングタイムロックの執行管理者 | 0xEcaE9BF44A21d00E2350a42127A377Bf5856d84B || Merkle-Pauserタイムロックの執行管理者 | 0xd98e7A71BacB6F11438A8271dDB2EFd7f9361F52 || Starkwareの優先タイムロックの執行管理者 | 0xa306989BA6BcacdECCf3C0614FfF2B8C668e3CaE || 報酬基金 | 0x639192D54431F8c816368D3FB4107Bc168d0E871 || 報酬基金ブリッジ | 0x8d0051943D4c72aF12D638c6b7253C71929A910A | | コミュニティ基金 | 0xE710CEd57456D3A16152c32835B5FB4E72D9eA5b || コミュニティ基金ブリッジ | 0x5D8541e3078BE7c2D773185aD8C8b9ED5105E08c | | セーフティモジュール | 0x65f7BA4Ec257AF7c55fd5854E5f6356bBd0fb8EC || ガバナンス戦略V2 | 0xc2f5F3505910Da80F0592a3Cc023881C50b16505 || 報酬基金ベスター | 0xb9431E19B29B952d9358025f680077C3Fd37292f || コミュニティ基金ベスター | 0x08a90Fe0741B7DeF03fB290cc7B273F1855767D8 || Merkleディストリビューター | 0x01d3348601968aB85b4bb028979006eac235a588 || Chainlinkアダプター | 0x99B0599952a4FD2d1A1561Fa4C010827EaD30354 || 流動性ステーキング | 0x5Aa653A076c1dbB47cec8C1B4d152444CAD91941 || 請求プロキシ | 0x0fd829C3365A225FB9226e75c97c3A114bD3199e || StarkExヘルパーガバナー | 0x0db9b3F7Dd83e29C9bece8E5e1089bA4369E694a || StarkExリムーバーガバナーV2 | 0xFCAac0F14deA11eDe11Afcb875f29130e1ad5ec0 || 報酬基金のプロキシ管理者 | 0x40D6992cbd03E0DC1c2DE9606D29Cb245E737a5d || コミュニティ基金のプロキシ管理者 | 0x9d51599A6b10f562619D8ef2EFDcA1B68aE80D03 || セーフティモジュールのプロキシ管理者 | 0x6aaD0BCfbD91963Cf2c8FB042091fd411FB05b3C || Merkleディストリビューターのプロキシ管理者 | 0x6C5cd3aD7A16Ae207D221908E6b997d9B0DcD7b0 | | 流動性ステーキングプロキシ管理者 | 0xAc5D8bCD13da463bea96c75f9085c4e40037F790 || StarkProxy [0] | 0x0b2B08AC98a1568A34208121c26F4F41a9e0FbB6 || StarkProxy [1] | 0x3e6E9EFb0A677a24F47093a22044dc5451A028cF || StarkProxy [2] | 0xCB7fa3a2F47b62293Cc2E1a4C7752fC72E49FCe2 || StarkProxy [3] | 0x16BEC2D9A010e7D8b2D576d17893C52Ddbfe4C06 | | StarkProxy [4] | 0x531F3BE462F10386D01FBeD7fAD1d20A61Ce7874 || StarkProxyのプロキシ管理者 [0] | 0xE16718eace44e0CB06b9cd164490A69A6425D1e3 || StarkProxyのプロキシ管理者 [1] | 0x78e899e576C3565C3219dbC9Ea5042A9DBed36d3 || StarkProxyのプロキシ管理者 [2] | 0x15774D4555fEfD57C9Fc8b11C8beba993eafcc13 || StarkProxyのプロキシ管理者 [3] | 0x4d9460e5C958f46a1Fe129954A069a37972f16EA || StarkProxyのプロキシ管理者 [4] | 0xfa45DCDbEc82C94082d283B62506320DB8632054 |

オープンソースコードおよび監査済みコントラクト

ガバナンスコントラクトおよびステーキングプールのすべてのスマートコントラクトのソースコードは、https://github.com/dydxfoundation/governance-contractsをご覧ください。

dydx.communityでホストされているガバナンスフロントエンドのソースコードは、こちらをご覧ください。

すべての主要な新しいスマートコントラクトは、Peckshieldによって監査されました。重要または優先度の高いセキュリティの問題は見つかりませんでした。コアガバナンスおよびトークンに関するコントラクトは、CertiKCertoraPeckshieldによって監査され、数ヶ月間メインネットで試行済みのAaveガバナンスコントラクトから派生しています。

コアガバナンスコントラクト

赤い点線はコントラクトがアップグレード可能であることを示しています

DydxToken

DydxTokenコントラクトはAaveにインスパイアされました。dYdXチームによってマイナーな変更が行われました。

イーサリアムベースのDYDXは、イーサリアムメインネットの0x92D6C1e31e14520e676a687F0a93788B716BEff5にデプロイされています。

ABI

ラップイーサリアムDydxToken

ラップイーサリアムDydxTokenコントラクトは、DydxTokenのラップバージョンです。 ユーザーは、wethDYDXスマートコントラクトとインタラクションして、wethDYDXを取得できます。

wethDYDXは、イーサリアムメインネットの0x46b2deae6eff3011008ea27ea36b7c27255ddfa9にデプロイされています。

ABI

DydxGovernor

DydxGovernorコントラクトはAaveにインスパイアされました。dYdXによってマイナーな変更が行われました。

ガバナーは、イーサリアムメインネットの0x7E9B1672616FF6D6629Ef2879419aaE79A9018D2にデプロイされています。

ガバナンス戦略V2

ガバナンス戦略V2コントラクトは、Aaveにインスパイアされ、ガバナンス戦略からアップグレードされました。

戦略はイーサリアムメインネットの0xc2f5F3505910Da80F0592a3Cc023881C50b16505にデプロイされています。

ABI

実行管理者

実行管理者コントラクトはAaveにインスパイアされました。dYdXによってマイナーな変更が行われました。

ロングタイムロックは、イーサリアムメインネットの0xEcaE9BF44A21d00E2350a42127A377Bf5856d84Bにデプロイされています。

ABI

ショートタイムロックは、イーサリアムメインネットの0xEcaE9BF44A21d00E2350a42127A377Bf5856d84Bにデプロイされています。

ABI

Merkleタイムロックは、イーサリアムメインネットの0xd98e7A71BacB6F11438A8271dDB2EFd7f9361F52にデプロイされています。

ABI

Starkwareのプライオリティタイムロックは、イーサリアムメインネットの0xa306989BA6BcacdECCf3C0614FfF2B8C668e3CaEにデプロイされています。

ABI

DYDXのインセンティブコントラクト

Merkleディストリビュータ

赤い点線はコントラクトがアップグレード可能であることを示しています

Merkleディストリビューターのスマートコントラクトは、Merkleの残高ツリーに従って$ethDYDXトークン報酬を配布します。各ユーザーの累積報酬残高によりツリーを定期的に更新できることで、時間の経過に伴い新しい報酬をユーザーに提供できます。

提案されているMerkleルートをオラクルコントラクトによって返される最新の値に設定することで、更新が実行されます。提案されているMerkleルートは、待機期間が経過した後でアクティブにできます。待機期間中、提案されたルートが間違っているか悪意がある場合、dYdXガバナンスにはMerkleルートを凍結する機会があります。ShortTimelockExecutorでは、ルートの更新の一時停止を解除することができます。

Merkleディストリビューターのスマートコントラクトは、UniswapおよびBadgerのデザインにインスパイアされました。スマートコントラクトは、イーサリアムメインネットの0x01d3348601968aB85b4bb028979006eac235a588にデプロイされています。

ABI

安全モジュール

赤い点線はコントラクトがアップグレード可能であることを示しています

セーフティモジュールは、プロトコルのセキュリティに向けて$ethDYDXをステークするユーザーに$ethDYDX報酬を提供するステーキングプールです。

流動性モジュール

赤い点線はコントラクトがアップグレード可能であることを示しています

流動性モジュールは、ステーキングおよび借入のためのスマートコントラクトの集合体であり、dYdXレイヤ2取引所でのマーケット作成目的の$USDC資金の割り当てを促進します。

ステーカーは、$USDCをステーキングすることで$ethDYDX報酬を獲得します。 ステークされた資金はレピュテーションに基づき、無担保で事前に承認された特定のパートナーによって借り入れされる場合があります。資金はL2取引所でのみ使用できます。これはStarkExパーペチュアル取引所コントラクトと相互に適用されるStarkProxyコントラクトを通じて実施されます。

流動性モジュールの図

StarkProxy

このコントラクトにより、所有者はLiquidityStakingから資金を借り、StarkPerpetualでそれらの資金を使用できます。所有者は追加資金を入金することが可能で、借入金額を超える資金は自由に出金できます。このコントラクトはStarkwareによって作成され、以前に監査およびデプロイされたStarkPerpetualコントラクトと相互に適用されます。

資金調達コントラクト

赤い点線はコントラクトがアップグレード可能であることを示しています

TreasuryVester(基金ベスター)コントラクトは、Uniswapにインスパイアされました。

ショートタイムロックでは、ガバナンスで承認されたアクションのみ実行できます。

2つの基金ベスターと基金コントラクトがあります。

各基金はガバナンスにより管理されているため、資金を任意のアドレスに移動したり、任意ののアドレスがいずれかの基金にある資金を使用することを承認したりすることができます。たとえば、ガバナンスは報酬プログラムにトークンの承認制限を設定する必要があります。

DIP29において、dYdXコミュニティは報酬基金ブリッジコミュニティ基金ブリッジスマートコントラクトの活用に投票し、コミュニティ基金報酬基金で利用可能なethDYDXのdYdXチェーンへの移行を可能にしました。

各基金ベスターは、対応する基金に関して5年間(2021年8月3日~2026年8月3日)にわたりリニアにトークンを保有します。ベスターコントラクトは配備時に不変であるため、dYdXコミュニティはベスターコントラクトの受取人を以下のアドレスに設定することに投票しました。

周辺コントラクト

このシステムの目標は、オラクル署名者の分散型ネットワークを通じて、dYdXレイヤ2取引所を利用してトレーダーが獲得したethDYDXトークンの報酬を計算および公開することです。配布プログラムの開始以来、各ユーザーが獲得した累積報酬を含む報酬はMerkleツリーに保存されます。各エポック、MerkleルートはMerkleDistributorV1スマートコントラクトで更新され、前回のエポックで獲得した報酬が反映されます。

当社はChainlinkオラクルシステムと統合しており、報酬データをオンチェーンで掲載します。IPNSを使用して、ChainlinkがMerkleツリーの構築に使用する取引データを掲載します。IPNSを使用することで、以前のエポックと同じIPNSリンクの下に最新のエポックの取引データを掲載できます。つまり、データの場所は変更されません。

生の取引データから適切な報酬を計算した後、ChainlinkはMerkleの報酬ツリーをIPFSに掲載します。Merkleツリーのデータを有するIPFS CIDは、そのエポックの報酬に関するMerkleツリーと共にMerkleディストリビューターコントラクトに保存されます。

以下のフローチャートは、Chainlink Oracle-Powered Rewardsのシステムアーキテクチャを示しています。

その他の資産

  • dYdX Foundationのブランド資産は、こちらをご覧ください****

Last updated

Was this helpful?