Moonwell 社区推出了 Temporal Governance,这是一种创新的跨链治理框架,旨在解决跨链治理的复杂挑战,并与众多网络兼容。Temporal Governance 利用 Wormhole 的安全跨链消息传递协议,允许 Moonwell 社区在 Moonbeam 上投票,并将提案“传送”到 Base L2 执行,从而实现跨链提案的执行和自动化。
时间治理:开创性的跨链协议治理
Moonwell 社区一直坚定地致力于推动链上治理的边界,专注于创建透明、安全和有效的方法来管理协议。为了配合这一承诺,社区最近使用我们称之为时间治理 (Temporal Governance) 的新型开源治理框架激活了 Base 上的 Moonwell 协议。
该框架旨在解决跨链治理中的复杂挑战,并与大量网络兼容,是对更广泛的链上生态系统的一项公共产品贡献。本文旨在深入探讨时间治理及其对 Moonwell 社区及其他社区的重要意义。
Moonwell 社区的一个总体目标是创建能够经受时间考验并比任何贡献团队或个人更长久的金融基础设施。在 Moonwell 之上构建的应用程序和开发人员应该有信心,该协议将具有无限期运营的弹性。
根据这一目标,Moonwell 治理在 2022 年 8 月成为Moonbeam上 Moonwell 协议的管理员。从那时起,我们积极参与的社区提交了 92 项链上提案,在 Dotsama 生态系统中位居任何协议之首。Moonwell 应用程序也在不断发展,现在拥有全面的治理套件,包括链上投票、委托资料和投票权委托。
Moonwell 应用内治理套件
然而,随着 Moonwell 社区决定在 Base L2 上激活该协议,一个新的挑战浮出水面:那些在 Moonbeam 上拥有委托的 WELL 代币(投票权)的人如何管理 Base 上的新部署?
进入时间治理。
时间治理是一种突破性的协议治理方法,它利用了 Wormhole 的安全跨链消息传递协议的力量,同时保持了去中心化和信任最小化的高标准。这种新的跨链治理解决方案不仅促进了 Moonwell 社区在 Base 上激活协议,而且从那时起一直是其治理的基石,多个提案从源网络 (Moonbeam) 提交并投票,并在远程网络 (Base L2) 上成功执行。
时间治理流程图
用外行的话来说,时间治理允许 Moonwell 社区像往常一样从 Moonbeam 进行投票,然后将提案“传送”到 Base 以便颁布。
让我们仔细看看时间治理是如何运作的:
跨链治理提案的开始方式与任何其他提案一样:社区成员直接向治理合约提出提案。时间治理对你的社区使用的哪个治理合约没有意见,并且与各种治理合约兼容,从 Compound 的 Governor Alpha 和 Governor Bravo,到 OpenZeppelin 的 Governor。任何可以执行以太坊操作的 Governor/Timelock 都与时间治理兼容,这使得你可以轻松地将时间治理添加到你的社区今天使用的任何链上治理解决方案中。
链内 Moonwell 治理提案流程
在 Moonwell 社区中,我们的治理流程遵循一个熟悉的模式:在为期三天的投票期和一个提案成功通过后,它将被排队进入一个 24 小时的 timelock 以等待执行。从那时起,时间治理就被用于跨链执行。
一旦提案在源网络上成功执行,包含提案 calldata 的消息就会发送到 Wormhole 合约。Calldata 表示将在远程网络上执行的一系列以太坊操作,以便对协议进行操作更新。
然后,此消息传递给 Wormhole 守护者,他们使用多方计算 (MPC) 对消息进行签名。远程网络上的时间治理合约可以验证原始消息的发送者是源网络上受信任的治理 timelock,这确保了只有执行成功的提案才有可能。
为了增加额外的安全层,我们引入了治理守护者角色。在不太可能发生 Wormhole 桥受到破坏的情况下,此角色有权暂停时间治理,从而防止未经授权的提案执行。对于 Moonwell 社区,此角色由一个多重签名持有,该多重签名由通过治理选举产生的 5 个受信任方中的 3 个组成。
未来,可以通过实施“桥阈值”架构来进一步提高安全性。这可以通过添加对两个或多个桥提供商的支持来实现。然后,治理消息需要由至少两个唯一的提供商接收,并且两条消息都必须具有相同的 calldata,才能由时间治理执行。
为了确保在远程网络上高效且自动地执行跨链提案,我们通过利用 OpenZeppelin Defender 增强了时间治理解决方案。重要的是要注意,时间治理不需要使用 Defender,但是,通过利用 OpenZeppelin 的安全自动化工具可以改进解决方案,即使你可以选择手动执行所有必需的操作来管理你的协议。
我们没有让社区手动排队和执行治理提案,而是让 Defender 能够完全自动化从排队到执行的治理流程。许多这些治理功能(例如“排队”和“执行”)都是无需许可的,并且一旦提案成功,社区中的任何人都可以调用,但是,自动化这些手动任务可以提高社区的生活质量。
哨兵 (Sentinels)
哨兵会监视你的智能合约是否存在特定的链上事件。在 Moonwell 的案例中,它会监视发布到 Wormhole 合约的消息,过滤那些来自 Moonbeam 上 Moonwell 治理时间锁 的消息:
自动任务 (Autotasks)
自动任务只是可以按计划定期运行或响应事件的代码,例如哨兵检测到的事件。每当哨兵识别出与我们预定义标准匹配的链上事件时,它就会触发一个自动任务,然后执行一些 JavaScript 代码。
对于 Moonwell 来说,这意味着一旦哨兵检测到来自 Moonwell 治理时间锁的 Wormhole 消息已发布,它就可以自动将提案排队到跨链时间锁中。
中继器是用于安全地签名和广播交易的特殊钱包帐户。这些中继器的私钥由 OpenZeppelin 管理,从而消除了安全私钥存储和检索的麻烦。
为了在远程网络上对跨链提案进行排队,自动任务只需将“排队”操作传递给中继器,中继器就可以通过花费存储在钱包中的少量 ETH 来支付费用,从而无需许可地执行该操作。以下是执行此操作的代码:
键值数据存储
由于自动任务只是响应事件而执行的代码,因此我们需要一种方法让自动化记住在跨链时间锁完成之后应执行另一个自动任务。为了应对这一挑战,我们利用了 Defender 的键值存储。
在提案排队时,我们存储一个 24 小时后的时间戳,指示何时可以执行该提案。可能同时有多个治理提案在进行中,因此我们需要跟踪给定远程网络的所有到期时间。以下是我们用来执行此操作的代码:
最后,还有第二个自动任务按计划运行:它每分钟执行一次,并检查是否有任何存储的时间戳已过期,如果是,则执行提案:
以下是检查以确定提案是否准备好执行的代码:
为了帮助社区保持更新,我们还引入了一个名为 Eunomia 的 Discord 机器人,它会发布有关每个治理提案的详细信息,包括投票、时间锁状态、排队和执行。
Eunomia 在 Discord 中宣布 xChain 提案执行的消息
对安全 API 密钥存储的需求使我们找到了另一个 OpenZeppelin 功能:安全检索密钥,确保我们的 Discord 机器人可以安全地通知社区,而不会损害安全性。将密钥(例如你的 Discord Webhook 或 API 密钥)保存在可能被攻击者破坏的远程系统上绝不是一个好主意。此代码允许我们在需要发送消息时安全地检索 Discord Webhook:
时间治理不仅仅是 Moonwell 社区的一个里程碑。它代表了我们致力于通过开源贡献帮助发展更广泛的链上生态系统。
时间治理采用安全且可扩展的架构,为跨不同以太坊网络(包括任何与 EVM 兼容的 L1 或 L2 生态系统)管理协议提供了一个可扩展的框架,并为采用 Optimism Superchain 并部署到多个 OP Stack 网络的社区提供了独特的优势。为了巩固其可靠性,时间治理经过了严格的审查,并通过了 Halborn Security 和 Code4rena 的两项全面安全审计。
我们很高兴与其他项目和社区分享这项工作,并欢迎那些希望利用这种新的跨链治理解决方案的人。对于好奇的人和创新者,我们热烈邀请你在我们的 GitHub 存储库 中探索开源的 时间治理 代码库。如果你有任何具体问题或想聊天,请在 Moonwell Discord 中与我们联系。
我们要向以下人员表达我们最深切的感谢:
Base、OP Labs 和 Optimism Collective 团队为 Moonwell v2 提供支持并致力于扩展以太坊
Wormhole 及其行业领先的消息传递协议
OpenZeppelin 及其创建的 Defender 等强大工具
Gauntlet 和 Warden Finance 及其在风险管理方面的贡献
- 原文链接: mirror.xyz/0x4ECfFE72646...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!