VEBO 2.0:Lido 验证者退出机制的全面升级

LaKOVqg2QQKgZn6JxlUNuQ 发布于 2026-07-20 阅读 26

本文探讨了 Lido 协议中验证者退出机制(VEBO)的未来改进方案。当前实现中,预言机通过事件通知节点运营商执行退出,仅用于覆盖用户提款请求。新需求包括支持可触发退出(ELTE)、强制退出、按公钥退出特定验证者、考虑模块目标份额以及无许可触发退出。提案建议保留 VEBO 作为单一入口,并增加优先级退出总线(PEB)和 EL 可触发退出(ELTE)层,以实现治理和无需许可的退出场景。同时改进 VEBO,将模块目标份额和强制目标限制纳入退出决策。文章还列举了多种场景示例,如治理强制移除节点运营商、通过 Prover 触发违规验证者退出等。

3年前更新

VEBO 2.0

本文档旨在审视 Lido validator 退出流程在近期将发生的变化,这些变化源于该流程的新需求以及 Ethereum 协议可能发生的变更。首先,让我们看一下当前的退出流程。

当前实现

Lido 中 validator 退出的当前实现基于 Validator Exit Bus Oracle (VEBO)。链下 oracle 守护进程分析来自 Consensus Layer (CL) 和 Execution Layer (EL) 的数据,并决定是否退出 validators、退出多少以及从哪些 node operators 退出。

current

oracle 本身无法退出 validators,因为当前协议存在限制,即缺少 EL Triggerable Exits (ELTE)。因此,oracle 只能通过合约上的 events 发出信号,表明哪些 validators 已被决定退出。

相应地,node operators 在各自一侧运行 Ejector。该程序存储预签名的 exit messages,并监控 VEBO 中的 events。当检测到相关 event 时,会向 CL 发送 exit message。

在当前实现中,validator 的退出仅有一个目标:用 validator 退出后提取的 ETH 来覆盖用户的 withdrawal requests。

需求

我们提议基于对退出 validators 需求的重新理解来改变当前实现:validator 的退出不仅用于覆盖用户 withdrawal requests,还用于在 operators 之间重新平衡 stake、通过治理决策退出 validators,以及由 staking module 自行决定。Ethereum 协议中可能出现 ELTE,这使我们能够重新考虑 validator 退出的设计,让 Lido 协议能够控制 validator 余额上用户锁定的 ETH 的提取。

提议的解决方案源于以下需求:

Triggerable Exits。在协议中支持 Triggerable Exits,该功能有一定概率在下一个硬分叉中出现。该工具对 permissionless modules 至关重要,并可增强对精选 operator 集合的控制力。

Forced Exits。提供一种工具,用于减少某个 node operator 上的 stake,而不受用户 withdrawal requests 数量的约束。该工具可用于在 node operators 和 modules 之间手动重新平衡 stake(无论用户 withdrawal requests 的规模如何),也可用于强制将 operators 移出(offboarding)或限制其 stake 数量。

特定 validators 退出。提供一种按公钥优先退出特定 validators 的工具。该工具可用于:

  • 退出特定 validators,例如当某些 validators 的私钥泄露,或将某些 validators 迁移到其他工具时。
  • 当 validator 丢失密钥或长时间离线时,退出特定 validators。
  • 在 DVT modules 中退出特定集群。这些模块结构中没有 operators,适用于违反 Lido 政策或模块自身政策的情况。

Module target share。不仅在分配 stake 时考虑 modules 的 target share,在退出 validators 时也要考虑。

Permissionless triggers。提供一种无需许可地请求 validators 退出的工具。此类工具可用于以下场景:

  • Dual Governance,允许用户在 oracle 集合被攻破时触发 validator 退出。
  • 对于 permissionless modules,它们可能有自己的机制,在违反任何政策时退出 validators。

提议的变更

我们提议保留当前 VEBO 作为退出 validators 的唯一入口,并为 VEBO 添加额外层:Priority Exit Bus (PEB) 和 EL Triggerable Exits (ELTE)。

EL Triggerable Exits

基于当前 EIP-7002 草案,我们假设,要在 EL 上强制退出 validator,需要以 Withdrawal Vault (WV) 合约的名义向 precompiled contract 的地址发送 exit signal。WV 合约的地址在 Lido validators 中被指定为 Withdrawal Credentials (WC)。

我们提议补充 Withdrawal Vault 合约,或在 VEBO 旁编写一个额外的合约,以便任何通过 VEBO 请求退出的 validator 都可以通过提供必要的 proof,经 ELTE 被强制退出。

7002

我们假设任何人都可以提供 proof,证明该 validator 已通过 VEBO 被请求退出。合约将检查该 proof,并调用 precompiled contract 上的相应方法,这将导致该 validator 被添加到 exit queue。

VEBO 的当前实现已经具备证明 validator 之前被请求退出所需的一切。Events 包含有关 validator 的必要数据,人们可以通过 merkle proof 证明其存在。然而,这可能不是最 gas 高效的方式,而且 proof 窗口受存储的历史区块哈希数量的限制。我们建议修改 VEBO,以简化对已请求退出的 validators 的证明,例如存储请求退出的 validators 树的根。

技术解决方案应考虑到与多个 WCs 的协作,以防将来它们发生变化,或协议中支持多个 WCs,例如用于机构 staking。

主要思想是让 VEBO 成为 validator 退出的唯一来源,并基于已接受的决策构建 ELTE。这种方法有许多优点,我们建议逐项讨论:

单一决策点

允许保留当前基于整个协议总体考量而构建的限制和健全性检查,例如 CL 上 exit queue 的吞吐量,以及 oracles 被攻破或智能合约漏洞被利用时对协议造成的损害。

允许在一个地方协调关于退出 validators 的数量和优先级的数据。当前 VEBO 已经涉及大量决定 validators 退出优先级的参数,例如 operators 处理请求的延迟、operator 上的 validator 数量、占整个网络的百分比、validators 的存续时间。随着新 modules 的出现和 Staking Router v1.5 的发布,预计在退出请求的优先级排序中会出现新的权重,例如 module target share、强制 target limits 等。统一的限制和优先级将消除在不同 validator 退出工具之间协调数据的需要。

可以设想各种场景,例如强制将大型 node operator 移出(offboarding),以及由于缺乏 bond 而强制退出该 operator 的几个 validators。这些场景的优先级应在代码中明确实现。

CLTE + ELTE

将 ELTE 分离为额外的一层,可以有两种方式退出 validators:一种是由 CL 侧的 node operators 以软性方式、无交易成本地退出;另一种是在 EL 侧无需 operators 参与而强制退出。不同的 modules 可能在此过程中有不同的政策。例如,精选的 operators 集合可能对基础设施有更严格的标准,并要求运行 Ejector,而该要求可能不适用于社区 operators。

以 Consensus Layer Triggerable Exits (CLTE) 作为回退方案,可以不必受制于 Ethereum 协议中是否存在 ELTE,从而从一般概念出发设计 validator 退出。

Priority Exit Bus

在 VEBO 中,数据由 oracles 提供,但基于新需求,我们假设应有可能通过治理退出 validators,并且在某些场景中可以无需许可地退出。为了解决这一矛盾,我们提议添加 Priority Exit Bus (PEB)。

peb

填充 Priority Exit Bus

我们提议 PEB 是一个合约,不同的参与者可以向其中提交要退出的 validators。我们假设这些参与者可以是 Aragon 投票、EasyTrack 动议和 Prover,通过它们,参与者可以为预先商定的场景列表提供证据,证明该 validator 应该被退出。

我们假设 PEB 可用于一次性退出大量 validators,例如通过 Aragon 投票,因此我们提议存储要退出的 validators 树的根,而不是确切的 validators 列表。

我们提议以 Prover 合约的形式提供无需许可的入口,该合约可以检查不同的场景。我们提议的设计是每个场景都是一个独立的验证合约。此类场景的示例可以是:

  • LDO 持有者和 Oracle 持有者合谋的场景,其中 validator 退出被停止并通过 Dual Governance 被 veto。在此类场景中,作为简单 proof 的可以是 veto 的存在、队列中未最终确认的 stETH 数量、自第一个未最终确认请求创建之日起经过的时间,以及之前已请求退出的 validators 数量不足。
  • 某些 validators 违反政策,例如长时间离线。
  • 模块中的 operator 丢失了某个 validator 的私钥,并打算通过 triggerable exits 退出该 validator。在这种情况下,operator 可以将 key id、module id 和 operator id 提供给 Prover,Prover 将检查 msg.sender 是否与 operator 的地址对应,并将该 key 添加到优先退出队列中。
向 VEBO 提交数据

我们建议可以通过调用相应的合约方法,将数据从 PEB 解包到 VEBO。技术解决方案应规定,对于大批量数据,可以在多笔交易中解包该树。

我们提议任何人都可以解包数据,但会为 VEBO quorum 的任何成员分配一个优先时间窗口来解包。在 ELTE 出现之前,我们提议将该时间窗口设置得非常大。这种解决方案基于 Ejector 一侧的安全检查,即验证交易的签名,并将其与预先已知的 oracle 守护进程地址列表进行比较。

因此,在没有 ELTE 的情况下,validator 退出照旧通过 CLTE 进行,并带有交易签名验证;而在 ELTE 出现之后,将有两个流:通过 CLTE 的优先退出,以及带有小延迟的无需许可退出。

VEBO 中的处理

我们提议为 VEBO 合约补充一个方法,允许在 oracle report 的框架之外触发 validator 退出的事件,并允许 PEB 调用该方法。同时,调用该方法时应遵循当前框架的限制。计划中的 VEBO reports 应在合约层面将框架限制内的额外退出请求考虑在内。

VEBO 改进

Module Target Share

Module target share 目前只影响 deposits,而不影响 validator 退出。Validator exit bus oracle (VEBO) 在决定退出哪个 validator 时不将 module target share 作为权重。我们建议研究在退出 validators 时如何考虑该参数,并在代码中实现相应更改。

Forced Target Limit

Node operators 具有 target limit 属性,可以将 operator 上活跃 validators 的数量平衡到目标值。该限制在覆盖 withdrawal requests 和进行 deposit 时会被考虑,但不允许无视 withdrawal queue 中的需求而退出 validators。我们提议设计一种强制退出 validators 的能力,而不受用户 withdrawal requests 的约束。

场景示例

以下是 PEB、ELTE 和 VEBO 改进实现后可以实现的 validator 退出场景示例:

  • 治理通过 CLTE 将强制 target limit 设置为 0,从而启动对某个 node operator 的移出(offboarding);如果该 operator 拒绝协议的请求,则随后通过 ELTE 强制退出。
  • 治理通过 ELTE 启动对一批长时间离线的 validators 的有针对性的退出,一次性从不同的 modules 和 operators 中退出。
  • 任何人都可以通过提供违反政策的 proof(例如 validator 长时间离线),经由 Prover、CLTE 和 ELTE 触发 validator 退出。
  • Modules 使用强制 target limit 向 VEBO 发出信号,要求由于 bond 短缺而强制退出一定数量的 validators。
  • 在 DG 施加 veto 且 Withdrawal Queue 未被处理的情况下,任何人都可以通过 Prover 以及 CLTE 和 ELTE 触发 validators 退出,以覆盖 Withdrawal Queue 中的请求。
  • 具有 multisig 的 DVT module 的 curator 发起一项动议,以退出一个已不再形成 quorum 的集群。
  • 原文链接: hackmd.io/LaKOVqg2QQKgZn...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~

相关文章

0 条评论