本文介绍了 Lido 协议将紧急暂停机制从单次使用的 GateSeal 升级为永久性 CircuitBreaker 的背景与原理。CircuitBreaker 通过永续合约地址、合约独立权限管理和心跳证明机制,在保留安全性的同时,显著降低了协议在应对紧急状况时的运维成本和治理风险。

一旦部署就没有任何人可以随意停止智能合约,这一事实既是其最大的优势,也是其最大的弱点。在正常情况下,这提供了活跃度的价值。但当出现关键 Bug 或黑客攻击时,损害会实时蔓延,且无法立即做出反应。为了解决这个问题,大多数加密项目都实施了在检测到异常时暂停核心功能的机制。
然而,取决于协议的去中心化程度,谁有权按下暂停按钮的问题可能会变得极其棘手。治理投票需要数天时间;将权力委托给特定的个人又会引入中心化风险。Lido 的折中方案一直是 GateSeal,这是一种单次使用的紧急暂停合约,当 Multisig 委员会达成共识时可以触发。就在今天,4 月 9 日,Lido 上发布了一项提案,提议用一种名为 CircuitBreaker 的永久机制取代现有的 GateSeal。

来源:Lido
本文涵盖了 CircuitBreaker 出现的背景、其实施细节以及它给我们带来的更广泛的影响。
通过与家用保险丝的类比,最容易理解 GateSeal 的运行原理。当家庭电路中流过过大电流时,保险丝内部的导体熔化并保护电路,但熔断的保险丝必须更换为新的。GateSeal 遵循同样的模式。一旦在紧急情况下被触发,它会立即失效。即使从未被触发,它也会在最长一年的使用寿命后自动失效。委员会可以有选择地只暂停部分注册合约,但无论他们如何选择,GateSeal 本身都会立即失效。例如,如果 8 个注册合约中只有 2 个被暂停,而委员会稍后想要暂停剩余的 6 个,已经失效的 GateSeal 将无法做到。
无论是因触发还是因时间流逝而失效,都必须重复同样的周期:部署新实例、进行安全审计、进行 Snapshot 投票,然后运行链上投票以撤销旧实例的暂停权限并将其授予新实例。这是一个刻意为之的不便设计,旨在迫使 DAO 构建一个更好的、永久性的解决方案。
在 Lido V2 时期,GateSeal 仅保护两个合约,且每年更新一次,因此运营负担尚可接受:
但三年后,Lido 引入了以下升级,显著扩大了需要保护的范围:
结果,需要紧急暂停能力的合约数量增加到了十个以上,分布在四个独立的 GateSeal 中管理。这意味着每年都要为每一个合约重复部署和验证过程。
还有一个更根本的问题。在 GateSeal 失效的瞬间到新 GateSeal 的链上投票敲定之间,可能会出现一个不存在任何紧急暂停机制的真空期。观察 2024 年 4 月的更新,现有 GateSeal 的到期日期(5 月 1 日)与投票完成日期(4 月 26 日)之间的余地只有几天。随着协议规模的扩大,这种紧凑的时间安排正成为一个日益严重的风险因素。
顾名思义,CircuitBreaker 类似于你家中电箱里的断路器。与保险丝不同,断路器在发生过流时会跳闸,但一旦问题解决,可以通过拨动杠杆来复位。CircuitBreaker 合约遵循同样的模式。一旦部署,它就永久存在,被触发后,在 DAO 重新授予权限后可以重复使用。
CircuitBreaker 有三个核心设计元素。
第一个是永久地址。CircuitBreaker 是一个地址永远不会改变的单一合约。DAO 只需要向每个可暂停合约授予一次“此地址可以暂停你”的权限。GateSeal 那种撤销旧实例权限再授予新实例权限的年度更新程序被完全消除了。

来源:Lido
第二个是单次使用暂停机制。当委员会在紧急情况下触发对特定合约的暂停时,CircuitBreaker 会暂停目标,然后立即撤销委员会对该合约的权限。如果委员会想再次暂停同一合约,则需要 DAO 的重新授权。这直接继承了作为 GateSeal 核心安全特性的单次使用属性。然而,与 GateSeal 的关键区别在于,暂停一个合约会让所有其他合约的权限保持不变。在 GateSeal 下,即使是部分暂停也会导致 GateSeal 本身失效,从而丧失对剩余合约做出反应的能力。在 CircuitBreaker 下,权限是按合约独立管理的,因此紧急响应能力得以保留。

来源:Lido
第三个,也是最值得注意的设计元素,是 Heartbeat(活跃度证明)。委员会必须定期发送 Heartbeat 交易,以在链上证明其已准备好在紧急情况下做出响应。Heartbeat 已过期的委员会既不能触发暂停,也不能更新其 Heartbeat;DAO 必须用新委员会替换它。GateSeal 使用合约到期来引起 DAO 的注意,而 CircuitBreaker 使用委员会活跃度到期来发挥同样的功能,但通过一次轻量级交易而非沉重的重新部署过程来实现。

来源:Lido
事实上,在 2024 年 6 月进行的一次 GateSeal 演习中,全体委员会集结并在 25 分钟内完成了模拟触发。Heartbeat 可以看作是将 2024 年演习中测试的验证委员会活跃度的想法,演变成了一种在链上定期强制执行的机制。
- 原文链接: x.com/FourPillarsFP/stat...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!