治理过程的分步概述:DRC创建、快照投票创建、DIP创建、进行快照投票、DIP投票、DIP排队和执行DIP。
dYdX基金会创建本指南是为了帮助dYdX社区了解dYdX治理流程。该指南提供了以下内容的分步概述:
指南中的两个示例是_DIP 2(链下提议) - 降低流动性提供方的奖励阈值_和_DIP 3(链上提议) - 安全模块恢复_。
摘要:
在时段6中,dYdX社区对快照进行了投票,将做市商的LP奖励数量阈值从1%降低到0.25%。遵循与时段6中相同的过程(1%到0.25%),在时段2中,LP奖励阈值从5%降低到1%。下面提供了将 LP 奖励交易量的阈值从 5% 降低到 1% 的分步概述。
社区的大多数成员(399 名投票者和 86% 的 $ethDYDX)对 Snapshot 进行了投票,将获得流动性提供方奖励的数量阈值从 5% 降到 1%。DeFiance Capital的Jacob Goh (jteam0x)提交了一份链下DIP,将做市商的流动性提供方奖励数量阈值从5%降低到1%。在时段2达到1%阈值的做市商有资格在时段3获得流动性提供方奖励。该提议不需要任何链上智能合约变更。
背景:
作为流动性提供方奖励计划的一部分,每个时段(28天)向为协议做市的流动性提供方 分配 1,150,685 $ethDYDX。根据奖励正常运行时间、双侧深度、买卖价差和支持的交易对数量的公式,对奖励进行分配。要获得此奖励计划的资格,流动性提供方需要在前一个时段提供总挂单量的最低百分比。
dYdX社区对流动性提供方奖励阈值具有“即时且不可撤销的控制”。社区控制的参数的完整列表,请点击此处访问链接。
社区受到激励,以降低流动性提供方奖励阈值,因为这将激励新的做市商和中小型做市商增加dYdX平台上的流动性。此外,增加平台上做市商的数量,有助于dYdX协议变得更加去中心化。
接下来,我们将分步概述dYdX治理在实践中的运作方式。有关dYdX治理流程的更多信息,请点击此处访问链接。
说明:
dYdX治理流程由治理论坛推动。社区成员在讨论论坛中进行发帖和评论,以在链下达成粗略的共识。有关论坛讨论和 DRC 创建的更多信息,请点击此处访问链接。\注 - subDAO 业务已推出 https://dydx.forum/ 作为社区投票的新论坛,从 Commonwealth 过渡到 Discource。本指南中关于以往 DRC 讨论的一些参考仍将指向 Commonwealth,但任何新讨论都应在新推出的 Discourse 论坛上进行。\
适用于DIP 2:
Three Arrows Capital的Su Zhu (zhusu)创建了一个链下论坛讨论,目的是降低流动性提供方奖励阈值。各社区成员,例如 Wintermute 的 Evgeny、Kronos 的 Ben、Sixtan t的 Josh 等等,都参与了讨论并提供了宝贵的反馈意见。
如何在 Discourse 上发帖和评论:
使用电子邮件账户在 Discourse 上注册,并在此处加入 dYdX 社区。
选择主线,滚动查看评论,给评论点赞或回复。
单击“**新主题 **”,并选择主题类别,来创建新的讨论线或发布 DRC。
说明:
在社区达成粗略共识后,拥有1万提议权的社区成员可以在快照上为DRC创建链下投票。提议权允许创建和维持提议。快照是一个简单的投票界面,允许用户在链下表达意见。快照上的投票根据投票地址持有或委托的治理代币的数量进行加权。 创建快照投票的社区成员必须提供有关DRC、投票系统、投票开始日期、投票结束日期和快照区块编号的详情。投票期应为 5 天,投票应在投票延迟 1 天后开始(根据 13.2 秒区块时间)。投票延迟为 dYdX 社区成员提供更多时间,以了解 DRC、购买 $ethDYDX,或委托其治理代币的投票权。持有治理代币或在快照区块编号之前被委托投票权的社区成员有资格投票。 有关快照投票的更多信息,请点击此处访问链接。
适用于DIP 2:
社区成员对Su Zhu的帖子提供了反馈。社区提出了关于奖励阈值的以下建议:
0.5% - Three Arrows Capital的Su Zhu,
1% - BitTrading的Sam,
2.5% - Kronos / WOO Network的Ben,以及
5% - Wintermute的Evgeny。
接下来,Su Zhu使用以下选项创建了一个快照投票:
将MM阈值降低至1%
将MM阈值降低至2.5%
将MM阈值保持在5%
如何对快照投票进行投票:
用您的以太坊钱包在快照上注册,并遵循此处的dYdX提议。
要对有效的快照投票进行投票,您需要在快照投票生效时在快照区块编号之前持有治理代币或将投票权委托给您的地址。
要进行投票,请点击提议并选择“是”或“否”,然后选择“投票”。
如何在快照上创建投票:
要创建快照投票,您需要至少持有 1 万治理代币 和/或将提议权委托给您用于创建提议的地址。
快照提议可以包含一个或多个操作,每个提议最多10个操作。操作是提议中指定的变更。
如果您符合最低 1 万提议权要求,请选择“新提议”并根据以下内容要求填写开放栏位。
DRC快照投票内容要求:
DRC的详情以及论坛讨论的链接,
投票系统,
投票开始日期和投票结束日期的总时长设为 4 天(根据 13.2 秒区块时间),并且
快照投票在投票开始前1天(\约6570个区块)发布。
具有约束力的快照投票的要求:
对于大多数决策,快照投票发挥着信号的作用,而变更智能合约的具有约束力的结果需要链上投票。对于不需要链上智能合约启动的决策,特别是对交易和流动性提供方奖励公式的变更,快照投票被视为具有约束力的最终投票。除了上述内容要求之外,对链下控制变量具有约束力的投票的快照投票必须包括:
二元投票选项。为清楚起见,一个地址要么投票赞成或投票反对提议。
投票结束后,相关信息将存储在IPFS上,然后自动生成报告并可供下载。
说明:
当(1)快照投票导致链下参数(例如,对交易奖励或LP奖励公式的修改)被更新以及 (2) 当社区成员想要提交修改链上智能合约的提议时,需要创建一个DIP。对于不需要任何链上智能合约更新的投票,快照投票的结果必须在链下DIP中正式化,并通过Pull Request提交给dYdX基金会Github的Pending-DIP分支。DIP应反映快照的胜利结果。DIP 必须指定此处链接的模板中包含的信息。
适用于DIP 2:
在这种情况下,DIP由@Jteamdc编写。
当 DIP 2 的提议草案完成后,@Jteamdc 从工作分支针对 dYdX 基金会的 Pending-DIP 分支创建了一个**** Pull Request。在dYdX基金会审核提议并签名后,来自Pending-DIP的变更被合并到主分支。
由于降低流动性提供方的奖励阈值不需要任何链上智能合约变更,因此该过程现已完成,变更将在下一个时段生效。
如何创建DIP:
DIP应基于链下DIP在快照上投票的胜利结果,可以由一个或多个操作组成,每个提议最多可有10个操作。操作是提议中指定的变更。可以在DIP创建中查阅更多信息。
注册 Github 帐户:https://github.com/signup。
转到此处链接的 dYdX 存储库页面,并在您的 Github 帐户下分叉存储库。
在分叉的DIP存储库中,转到包含DIP内容的目录:https://github.com/[user_name]/dip/tree/master/content/dips。
dips 文件夹包含一个先前提议的目录,这些提议遵循此处链接的 DIP 模板。
在开始起草提议之前,请确保您分叉的分支与主分支的最新版本是最新的。如果您使用的是旧版本的 DIP 存储库,请确认您的分叉版本是最新的,并带有最新的变更。如需帮助重新定位您的分叉版本,您可以按照以下步骤进行操作:https://stackoverflow.com/questions/7929369/how-to-rebase-local-branch-onto-remote-master。
使用您的提议信息编辑DIP模板。因为您不是管理员,所以如果您没有分叉DIP存储库,则选择编辑图标将自动从主分支分叉存储库。
遵循模板并将您的DIP添加到content/dips/
目录中的存储库的分叉中。请遵循下面包含的DIP状态命名规范。
DIP状态:
WIP - 仍在开发中的DIP。
已提议 - 准备在链上提议的DIP。
已批准 - 已被dYdX社区接受实施的DIP。
已实施 - 已发布到主网的DIP。
已拒绝 - 已被拒绝的DIP。
在检查所有内容是否正确之后,从您的工作分支针对dYdX基金会的Pending-DIP分支创建一个Pull Request。请不要针对dYdX基金会的主分支提交此Pull Request,因为如果任何外部方想要合并到主分支,IPFS作业将失败。请使用此处链接的Pull Request作为示例。
在审核之后,dYdX基金会将把Pending-DIP分支的变更合并到主分支。
在合并之前,会自动运行一个作业将 DIP 上传到 IPFS。您可以在此处验证DIP到IPFS的上传:https://github.com/dydxfoundation/dip/pull/9/checks。
由于该提议不需要任何链上智能合约变更,因此该过程现已完成,变更将在下一个时段生效
摘要:
11月1日,Paradigm的Dan Robinson创建了一个链上DIP,以恢复保险模块质押池的功能。社区的大多数成员(251名投票者和近1.42 亿 ethDYDX)投票赞成恢复保险模块的功能。经过10天的投票期后,社区成员花了将近3天的时间才启动队列,并将提议移至长达7天的时间锁延迟。11 月 20 日,保险模块恢复并重置为纯净状态。
背景:
dYdX保险模块是一种质押合约,旨在引导分散去中心化的资金池,其可用于支持dYdX协议。用户将 $ethDYDX 质押到安全池中,获得 $stkDYDX(1:1)。 $stkDYDX 是以 ERC-20 转账的代币化头寸,与 $ethDYDX 具有相同的投票权和提议权。 如果发生资金缺口的情况,则需要进行治理投票以削减质押的 $ethDYDX,从而减轻损失。在 $ethDYDX 代币供应中,2.5%(25,000,000 $ethDYDX)的代币供应将分配给在保险资金质押池中质押 ethDYDX 的用户。可以在此处找到有关保险资金质押池的更多信息。
作为保险质押池奖励的一部分,每个时段(28天)将向质押人分配 383,562 $ethDYDX。每秒按比例将奖励分配给质押人。
dYdX社区对保险模块智能合约的参数具有“直接和不可撤销的控制权”。社区控制的参数的完整列表,请点击此处访问链接。
9月8日北京时间晚上11:00,$ethDYDX 代币的转账限制已撤销,有效地开放了 dYdX 安全模块的质押。 在将近 1 小时的时间里,50 多个不同地址质押了大约 15.7 万 ethDYDX。一个漏洞导致部署过程中出现错误,并且没有任何stkDYDX被发送至已向保险模块中进行质押的地址。因此,每个质押人的资金都冻结在了合约中,并且dYdX团队在dYdX治理UI上禁用了质押。
DIP 1提议恢复保险模块的功能,允许受影响的地址收回其资金,并且获得额外10%的质押代币作为补偿以使他们得到弥补。虽然社区强烈支持 DIP 1:“安全模块恢复”和“质押人恢复”,但该提议失败,原因是未能满足长时间锁投票所需的 1 亿 $ethDYDX 最低通过票数。因此,DeFiance Capital 的 Jacob Goh (jteam0x) 创建了 DIP 4 - 安全模块质押人补偿和补偿,以补偿和补偿受影响地址所错过的奖励和造成的不便。DIP 4涉及为用户质押代币部署恢复合约,并从奖励资金库中向受影响的地址额外补偿10%。DIP由短时间锁的不太严格的治理参数进行治理。
DIP的提议生命周期在DIP创建之前通常是一致的。DIP 3(链上)和DIP 2(链下)的主要区别在于DIP 3需要链上投票和智能合约部署。由于论坛讨论、DRC创建和DIP草案创建的过程是相同的,我们从起草链上DIP的内容要求开始逐步讨论。如需了解更多信息,请点击以下链接:
保险模块事故报告 - https://dydx.foundation/blog/en/outage-1。
说明:
起草影响dYdX协议治理共识的链上DIP,必须概述实施智能合约变更的具体步骤。在社区从快照或之前失败的DIP达成粗略共识后,具有足够提议权的社区成员可以提交新的链上DIP。有关提议权阈值、时间锁执行器和其他治理参数的更多信息,请点击此处访问链接。
适用于DIP 3:
在这种情况下,DIP由Paradigm的Dan Robinson编写。鉴于该提议包括链上智能合约变更,该提议包含一个指向特定智能合约实施的链接。
从SafetyModuleV2.sol部署合约导航到Safety文件夹会显示自述文件,其中包含有关如何实施提议的详细情况。
关于实施自述文件中包含的提议的步骤,请点击此处链接:https://github.com/dydxfoundation/governance-contracts/tree/master/contracts/safety。
如何起草链上DIP (WIP):
创建一个新钱包以创建DIP。部署过程需要输入助记词作为环境变量,因此我们建议您使用一次性钱包进行链上DIP创建。
创建Alchemy密钥。使用Alchemy密钥,您无需运行以太坊节点即可与以太坊进行交互并部署智能合约。关于创建Alchemy密钥的指南,请点击此处访问链接。
选择以太坊和“开始”。
填写所需信息,选择 Goerli Network 并选择“创建应用程序”。
在创建帐户之后,请按照此处链接的设置说明进行操作。
在“4. 开始构建”中,选择“尝试部署您的第一个智能合约”并按照指南进行操作。
打开Windows命令行,默认Terminal应用程序,或下载iTerm:https://iterm2.com/。
如果您尚未下载并安装Node.js和npm,请访问以下链接进行操作:https://docs.npmjs.com/downloading-and-installing-node-js-and-npm。
Hardhat是一种用于编译和测试以太坊软件的开发工具。如果您还没有安装Hardhat,请访问以下链接进行操作:https://hardhat.org/tutorial/setting-up-the-environment.html。
起草您提议的智能合约实施方案。
IPFS哈希是自动生成的,并且可以在此处获取。IPFS哈希将位于文件名DIP-[New DIP #]-ipfs-hashes.json
下的dYdX基金会目录中。
在选择新文件 (DIP-[New DIP #]-ipfs-hashes.jso
) 之后,请确保使用 encodedHash。
说明:
在社区成员确认提议的智能合约实施是正确的并且DIP最终确定之后,可以在链上提交DIP。在创建链上DIP之后,提议进入“待定”状态,投票延迟持续约1天(约6570个区块)。用户快照在投票延迟后记录下来,以计入 $ethDYDX 持股和委托投票权。接下来,提议进入“活动”状态,根据提议类型的不同,投票时限为2-10天不等。对于要实施的提议,投票必须通过因提议类型而不同的最低法定人数和最低投票差值。如果DIP满足最低法定人数和最低投票差值,并且大多数投票社区成员投票支持DIP,则任何地址都可以调用排队方法将提议移至时间锁队列。时间锁合约可以排队、取消或执行由dYdX社区投票决定的交易。时间锁队列的长度取决于提议的类型。
适用于DIP 3:
Paradigm 团队最终确定了 SafetyModuleV2.sol
的 Solidity 代码。
Paradigm团队在本地和分叉的主网环境中模拟了更新。然后运行测试套件,以确保在主网上执行治理提议后恢复全部功能。
Paradigm团队通过运行以下脚本来部署智能合约更新。
保险模块恢复部署
导出 ALCHEMY_KEY=<...>
导出 MNEMONIC=<...>
npx hardhat --network mainnet deploy:safety-module-recovery
--dydx-token-address 0x92D6C1e31e14520e676a687F0a93788B716BEff5
--short-timelock-address 0x64c7d40c07EFAbec2AafdC243bF59eaF2195c6dc
--rewards-treasury-address 0x639192D54431F8c816368D3FB4107Bc168d0E871
治理提议:保险模块修复
导出 ALCHEMY_KEY=<...>
导出 MNEMONIC=<...>
npx hardhat --network mainnet deploy:safety-module-fix-proposal
--proposal-ipfs-hash-hex 0x...
--governor-address 0x7E9B1672616FF6D6629Ef2879419aaE79A9018D2
--long-timelock-address 0xEcaE9BF44A21d00E2350a42127A377Bf5856d84B
--safety-module-address 0x65f7BA4Ec257AF7c55fd5854E5f6356bBd0fb8EC
--safety-module-proxy-admin-address 0x6aaD0BCfbD91963Cf2c8FB042091fd411FB05b3C
--safety-module-new-impl-address 0x...
治理提议:保险模块补偿
导出 ALCHEMY_KEY=<...>
导出 MNEMONIC=<...>
npx hardhat --network mainnet deploy:safety-module-compensation-proposal
--proposal-ipfs-hash-hex 0x...
--dydx-token-address 0x92D6C1e31e14520e676a687F0a93788B716BEff5
--governor-address 0x7E9B1672616FF6D6629Ef2879419aaE79A9018D2
--short-timelock-address 0x64c7d40c07EFAbec2AafdC243bF59eaF2195c6dc
--rewards-treasury-address 0x639192D54431F8c816368D3FB4107Bc168d0E871
--safety-module-recovery-address 0x...
DIP同时发布在https://dydx.community/dashboard上。
dYdX治理合约为0x7e9b1672616ff6d6629ef2879419aae79a9018d2:https://etherscan.io/txs?a=0x7e9b1672616ff6d6629ef2879419aae79a9018d2&p=10。
DIP部署可以在Etherscan上确认:https://etherscan.io/tx/0x5f2472e7dfcbf50628d29c94f97a072f3c19177f66cde4cca9f376c7934af5ad。
DIP于2021年11月1日在区块13532376创建。对于之后的 6570 个区块,DIP 状态为“待定”。
当 DIP 在区块 13538946 转换为“活动”状态时,ethDYDX 持有者能够对 DIP 进行投票。
第一次投票于世界标准时间 2021 年 11 月 2 日下午 5:51:22 进行(区块 13538959),距离 DIP 在链上创建时有 6583 个区块。
在与长时间锁相关的10天投票期结束后,任何社区成员都可以启动队列,并将提议移至7天的时间锁延迟。对于DIP 3,社区成员需要将近3天的时间才能启动队列。
在7天的时间锁延迟之后,DIP在链上执行。
当 DIP 在链上执行时,https://dydx.community/dashboard/proposal/3 上的 DIP 状态被更新为“已执行”。
请注意,(1) 提议必须在时间锁延迟后立即开始的7天执行宽限期内执行;(2) 提议地址必须保持相应时间锁合约要求的最低提议权数量,直到 DIP 被执行(5 百万或2 千万的提议权)。
如何提交链上DIP:
确保您有足够的提议权来创建DIP。可以在DIP创建中查阅更多信息。
短时间锁执行器:总供应量的0.5%(500万的提议权)。
Starkware 执行器:总供应量的 0.5%(500 万的提议权)。
长时间锁执行器:总供应量的2.0%(2千万的提议权)。
Merkle Pauser 执行器:总供应量的 0.5%(500 万的提议权)。
确保钱包中有ETH来支付gas费。
在Alchemy上为以太坊主网网络创建一个应用程序。
创建应用程序后,点击“查看密钥”获取您的Alchemy密钥(7LOaQtguSm2kSEcFXQH88B):https://eth-mainnet.alchemyapi.io/v2/7LOaQtguSm2kSEcFXQH88B-EN_K7t_ul。
下载并安装Node.js和npm:https://docs.npmjs.com/downloading-and-installing-node-js-and-npm。
运行您起草的脚本。
检查治理合约以验证提议是否在链上创建:https://etherscan.io/txs?a=0x7e9b1672616ff6d6629ef2879419aae79a9018d2&p=10。
使用提交提议的地址,您必须保持相应时间锁合约所需的最低提案权,直到提议被执行。
如何对DIP进行投票:
确保钱包中有ETH来支付gas费。
您可以通过从https://dydx.community/dashboard中选择DIP来对活动的DIP进行投票。
投票时限取决于提议的类型。可以在DIP创建中查阅更多信息。
短时间锁执行器:4天。
Starkware执行器:4天。
长时间锁执行器:10天。
Merkle Pauser执行器:2天。
如何对提议进行排队:
成功的提议可以排队以启动时间锁延迟。
确保您使用的是包含ETH的兼容钱包。
转至 Etherscan 上的“合约”选项卡,然后点击“编写合约”。请点击此处,访问治理合约链接。
选择队列并提交 “proposalId”。
创建DIP时,可以在Etherscan上找到“proposalId”:https://etherscan.io/tx/0x5f2472e7dfcbf50628d29c94f97a072f3c19177f66cde4cca9f376c7934af5ad。
选择“点击以查看更多”。
选择“解码输入数据”。
如何执行提议:
在时间锁延迟之后,可以执行成功的提议。
转至 Etherscan 上的“合约”选项卡,然后点击“编写合约”。请点击此处,访问治理合约链接。
选择“执行”并提交 “proposalId”。
按照上述步骤(在_如何对提议进行排队_中)找到 “proposalId”。
在“payableAmount (ether)”下输入“0”。