本文档是 EigenLayer 核心合约 v1.3.0 版本的文档,介绍了 EigenLayer 的系统组件,包括 EigenPodManager、StrategyManager、DelegationManager、RewardsCoordinator、AVSDirectory、AllocationManager 和 PermissionController。
此仓库包含 EigenLayer 核心合约,这些合约支持对流动性质押代币 (LST)、信标链 ETH 和免许可部署的 ERC20 策略进行重新质押,以保护称为 AVS(主动验证服务)的新服务。有关 AVS 的更多信息,请查看 EigenLayer 中间件合约此处。
本文档概述了系统组件、合约和用户角色,并且是最新的 ELIP-002。有关主要系统合约的更多文档,请参见/core。
文件 | 类型 | 代理 |
---|---|---|
EigenPodManager.sol |
单例 | 透明代理 |
EigenPod.sol |
实例化,每个用户部署一个 | 信标代理 |
这些合约协同工作以实现原生 ETH 重新质押:
EigenPodManager
部署 EigenPods
,其中包含用于验证验证者的提款凭证和当前余额的信标链状态证明逻辑。EigenPod
的主要作用是充当一个或多个用户验证者的费用接收者和/或提款凭证。EigenPodManager
处理 EigenPod
的创建,以及重新质押原生 ETH 的用户与 DelegationManager
之间的会计和交互。参见完整文档:
文件 | 类型 | 代理 |
---|---|---|
StrategyManager.sol |
单例 | 透明代理 |
StrategyFactory.sol |
单例 | 透明代理 |
StrategyBaseTVLLimits.sol |
实例化,每个支持的代币一个 | - 在 StrategyFactory 外部署的策略使用透明代理 <br /> - 通过 StrategyFactory 署的任何内容都使用信标代理 |
这些合约协同工作以实现 EigenLayer 支持的 ERC20 代币的重新质押:
StrategyManager
充当 EigenLayer 中任何受支持代币的进入点和退出点。它处理存入 LST 特定策略的存款,并管理重新质押的 LST 的用户与 DelegationManager
之间的会计和交互。StrategyFactory
允许任何人部署策略来支持新的 ERC20 代币的存款/提款StrategyBaseTVLLimits
被部署为多个单独的实例,每个支持的代币一个。当用户通过 StrategyManager
存入策略时,此合约接收代币,并按比例向用户奖励策略中的存款份额。当用户提款时,策略合约会将 LST 发送回用户。参见完整文档 /core/StrategyManager.md
。
文件 | 类型 | 代理 |
---|---|---|
DelegationManager.sol |
单例 | 透明代理 |
DelegationManager
位于 EigenPodManager
和 StrategyManager
之间,用于管理质押者到 operator 的委托和取消委托。它的主要功能是允许用户成为 operator,跟踪跨不同策略委托给 operator 的 shares,以及通过 EigenPodManager
和 StrategyManager
代表质押者管理提款。
DelegationManager
与 AllocationManager
紧密结合。DelegationManager
摄取有关 slashing 的信息,作为管理已被 slashing 的 operator 的质押者的 shares 会计的一部分。当 AVS slashing 一个 operator 时,它还会收到 slashing/销毁 operator shares 的指令。
参见:
/core/DelegationManager.md
/core/accounting/SharesAccounting.md
文件 | 类型 | 代理 |
---|---|---|
RewardsCoordinator.sol |
单例 | 透明代理 |
RewardsCoordinator
是在 EigenLayer 中提交和索取 ERC20 奖励的主要入口点。它执行三个基本功能:
RewardsCoordinator
,允许质押者/operators 索取他们分配的奖励。参见完整文档 /core/RewardsCoordinator.md
。
文件 | 类型 | 代理 |
---|---|---|
AVSDirectory.sol |
单例 | 透明代理 |
AllocationManager
替换,并且该合约将在未来的版本中被弃用。以前,AVSDirectory
处理 AVS 与 EigenLayer 核心合约之间的交互。一旦在 EigenLayer 核心中注册为 operator(通过 DelegationManager
),operator 就可以注册一个或多个 AVS(通过 AVS 的合约),以开始向他们提供链下服务。作为向 AVS 注册的一部分,AVS 会通过调用 AVSDirectory
在核心合约中记录此注册。截至 slashing 版本,此过程现在由 AllocationManager
管理。
参见完整文档 /core/AVSDirectory.md
。
有关 AVS 合约的更多信息,请参见 中间件仓库。
文件 | 类型 | 代理 |
---|---|---|
AllocationManager.sol |
单例 | 透明代理 |
AllocationManager
通过引入operator 集和 slashing 替换了 AVSDirectory。它处理几个用例:
参见完整文档 /core/AllocationManager.md
。
文件 | 类型 | 代理 |
---|---|---|
PermissionController.sol |
单例 | 透明代理 |
PermissionController
允许 AVS 和 operator 将调用某些核心合约函数的能力委托给其他地址。此委托能力不适用于质押者,并且不适用于所有核心合约函数。
以下核心合约在某些方法中使用 PermissionController
:
DelegationManager
AllocationManager
RewardsCoordinator
参见完整文档 /permissions/PermissionController.md
。
要查看本节中描述的用户流程示例,请查看我们的集成测试:/src/test/integration。
质押者是指已将资产存入(或“重新质押”)到 EigenLayer 的任何一方。目前,这些资产可以是:
质押者可以重新质押这些资产的任意组合:质押者可以持有所有这些资产,或者只持有其中一种。
流程:
Operator 是指帮助运行构建在 EigenLayer(AVS)之上的软件的用户。operators 在 EigenLayer 中注册并允许质押者委托给他们,然后选择加入以提供构建在 EigenLayer 之上的各种服务。operator 本身可能是质押者;这些不是互斥的。
流程:
存入 EigenLayer 取决于质押者是存入原生 ETH 还是 LST:


从 operator 处取消委托会自动排队一个需要通过 DelegationManager
的提款延迟的提款。想要提款的质押者可以选择 undelegate
,或者可以直接调用 queueWithdrawals
。

如果质押者想要更改他们委托给哪个 operator,此流程最有用。质押者首先需要取消委托(见上文)。此时,他们可以委托给不同的 operator。但是,只有在质押者将其排队的提款“以 shares”完成后,新的 operator 才会获得 shares:

对于原生 ETH 和 LST,将排队的提款以 tokens 完成大致相同。
但是,请注意,在可以完成提款之前,原生 ETH 质押者将需要执行其他步骤,如下面的图表所示。

EigenPods
:处理验证者退出如果质押者想要完全从信标链中提款,他们需要在完成提款之前执行这些额外的步骤:

EigenPods
:处理验证者收益随着质押者的 EigenPod
累积共识层或执行层收益,EigenPod
的余额将增加。质押者可以检查他们的验证者以将此收益作为 shares 索取,这些 shares 可以保留在 EigenLayer 中,也可以通过 DelegationManager
提款队列提取:

- 原文链接: github.com/Layr-Labs/eig...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!