# EigenLayer: 重质押撬动安全性

By [CYNIC](https://paragraph.com/@cynicsong) · 2024-03-09

---

概述
--

PoS共识算法被提出后，由于其对PoW共识算法的能耗与性能优势，逐渐被多条主流公链采用。PoS让验证者质押一定量的代币以参与验证服务，通过经济学上的理性假设保障验证服务的安全性，然而，PoS对资本的需求极高，更高的质押价值才能带来更高的安全性，加上许多PoS服务彼此竞争，实际分割了流动性，流动性的供应不足，新的验证服务很难获取足够的质押以保障安全性。

重质押的思想是对已质押的代币进行二次质押，让不同的验证服务之间能够共享安全性。EigenLayer将重质押发扬光大，作为分布式验证网络的安全性解决方案被提出，表现形式为以太坊上的一组智能合约，提供链上验证服务，让中间件能够以较低的门槛启动。

![source: EigenLayer](https://storage.googleapis.com/papyrus_images/47c5d5afb91646a87b59d1d0307ea9025c6e4b39aec74cb5c78b49186a219ea8.png)

source: EigenLayer

最初，EigenLayer与以太坊高度绑定，试图仅利用以太坊原生的PoS质押池作为重质押的来源，在以太坊上进行验证，聚合以太坊安全性，为以太坊质押者提升收益，加强$ETH代币的价值捕获。然而实际上，在具体的实现中，重质押并非局限于以太坊原生的PoS质押池，而是适用于所有有价值的代币。

架构
--

EigenLayer作为重质押服务，与传统质押服务的架构基本相同。协议中包含三种角色，Staker, Operator和Watcher。

Staker将资产存入EigenLayer，根据自身情况选择自己成为Operator或者将stake delegate to Operator。Operator负责在链下运行所需的中间件，需要先注册以接受Staker的delegation，可以自行根据运行要求和收益条件选择想要运行的中间件。Watcher作为监督者，监测是否存在Operator作恶情况，并在发现作恶时向EigenLayer提交欺诈证明，以slash对应的Operator。

EigenLayer实际作为以太坊上的一组智能合约实现，主要包含以下合约，与链下的运行着AVS软件的容器结合，构成整体的EigenLayer AVS架构。

![EigenLayer AVS Structure](https://storage.googleapis.com/papyrus_images/a85de4e8b274c706cc00c9c1494525faa9891ce5ef010abcc1d90df625933844.png)

EigenLayer AVS Structure

StrategyManager负责协调EigenLayer所有的token流入与流出，在合约中记录质押情况，将stake以share统一管理，slash时StrategyManager负责将对应operator的share转移到指定地址。

DelegationManager管理staker→operator的映射关系，staker可以自己注册成为operator，映射到自身，也可以delegate到其他已注册的operator。

Strategy是ERC4626 Vault的简化，管理具体的ERC20 token，负责token与share之间的转换，deposit和withdraw只能由StrategyManager调用。

Slasher合约管理Slash相关的逻辑，Operator在选择中间件进行服务时需要调用allowToSlash函数允许特定合约对可能的作恶情况进行slash，该授权具备时间限制。当前的slash过程先由具备slash权限的合约调用freezeOperator进行冻结，此时Operator无法进行任何deposit和withdrawl操作，再由StrategyManager进行实际的slash（转移share）。

以上的合约实际已经能够解决以ERC20作为资产重质押保障中间件安全性的问题，然而对于以太坊Beacon Chain的原生质押而言，情况要更加复杂，EigenLayer借鉴Liquid staking protocol(e.g. Rocket Protocol)的架构引入了新的合约专门处理以太坊原生质押。

EigenPodManager是beacon chain staker与EigenLayer交互的入口，负责创建EigenPod，协调对beaconChainETH的虚拟deposit和withdrawl。

EigenPod负责具体的beacon chain staking，用户通过EigenPod完成原生质押。最初部署时，EigenPod的restaking功能是默认关闭的，此时用户可以自由取出validator余额。当用户想要进行重质押获取额外收益，需要将原生质押的withdrawl credentials指向EigenPod，并通过提交beacon state root来证明声明的有效性。验证通过后，EigenPod通过EigenPodManager调用StrategyManager的函数，记录对应的share份额，此后的withdrawl需要遵守restaking的延迟机制。

BeaconChainOracle周期性地提交Beacon Chain state root，让EigenPot能够验证原生质押者的质押情况。

EigenLayer并不包括具体AVS的验证与罚没逻辑，由中间件的设计者自行实现，给予项目方更多灵活性的同时，降低了EigenLayer的开发成本。

![source: EigenLayer](https://storage.googleapis.com/papyrus_images/4ace2eadbc0f255e69df4f66f64462e0aec0cb8cd25f04643dc10da08a202c7f.png)

source: EigenLayer

我们将以EigenDA为例介绍AVS运行的基本流程。

1.  Depositing into Strategy through the StrategyManager or Depositing Beacon Chain ETH through the EigenPodManager 当前EigenLayer支持两种形式的重质押，一种是ERC20 token质押，另一种是Beacon Chain ETH质押，staker可以选择所需形式。
    
2.  Operator register, staker delegate Staker可以注册成为Operator，也可以delegate to registered operator。当operator持有的share达到EigenDA的要求后，Operator才能成为EigenDA节点。
    
3.  Operator链下运行中间件 Operator在计算机中运行EigenDA的软件程序，准备为DA的需求方提供服务。
    
4.  Sequencer将交易排序后生成区块，将data blob发给Disperser。
    
5.  Disperser根据Data Availability Sampling, DAS机制，对数据进行切分，使用纠删码进行数据编码，并计算相应的 KZG 承诺。Disperser将KZG承诺提交到EigenDA链上合约，供EigenDA节点验证数据的准确性。
    
6.  Disperser把数据块和KZG承诺按照设定的分配原则分发给各个EigenDA节点。节点拿到 KZG 承诺后，与链上承诺进行比较确认后完成数据块的存储，并进行签名，发回给Disperser。
    
7.  Disperser收集EigenDA节点的签名，生成BLS聚合签名并提交到EigenDA合约，由 EigenDA 合约验证签名的票数大于设定门槛，通过则意味着数据可用。
    
8.  当Rollup需要原始数据来恢复状态时，直接在链下从EigenDA节点中获取所需的数据块，进行还原。
    
9.  如果检测到EigenDA节点有不诚实行为，可以向链上的Slasher合约提交证明，进行slash，扣除对应节点的share。
    

作为依靠PoS机制保护服务安全的协议，EigenLayer并未单独设计共识算法以达成节点之间的共识，而是利用以太坊上的智能合约作为其共识的来源。Rollup作为DA服务需求方，让Disperser成为通信中心，链下端到端传输至各节点，借助链上见证数据进行验证。为避免lazy validator问题，EigenDA采用Proof of Custody，一种Optimistic机制，默认各节点诚实工作，并开放接受对于节点不诚实的证明，验证后对相应节点进行slash。

存储证明与数据可用性检查不同。数据可用性检查确保数据的可用性不依赖于诚实多数的假设，使其在存在敌对验证者的情况下更加健壮。相比之下，存储证明主要关注确保理性验证者保持诚实，阻止懒惰行为。在实践中，存储证明和数据可用性检查可以具有互补的作用。存储证明可以确保分片数据在委员会之间良好地播种并可用，而数据可用性检查则保证数据最终对所有节点可用。

总结
--

EigenLayer创造性地将Restaking的概念发扬光大，在沉寂的市场中给出了新的叙事。从技术层面而言，EigenLayer站在了巨人的肩膀上，巧妙地借鉴了多个知名协议的设计，将验证服务的流程以及通用接口通过数个solidity合约完成定义，而复杂度高、差异性大的具体验证、罚没逻辑的实现则交给AVS的需求方自行实现，起到了四两拨千斤的效果。

Reference:

[https://docs.eigenlayer.xyz/overview/whitepaper](https://docs.eigenlayer.xyz/overview/whitepaper) [https://github.com/Layr-Labs/eigenlayer-contracts/blob/master/docs/EigenLayer-tech-spec.md](https://github.com/Layr-Labs/eigenlayer-contracts/blob/master/docs/EigenLayer-tech-spec.md)

[https://www.blog.eigenlayer.xyz/intro-to-eigenda-hyperscale-data-availability-for-rollups/](https://www.blog.eigenlayer.xyz/intro-to-eigenda-hyperscale-data-availability-for-rollups/)

[https://mirror.xyz/0x5Eba828AB4999825D8416D7EAd9563b64FD90276/nRNyWdsSYiv77qiVXBXqG5f8JfyK-3RzRDx9cklPAGU](https://mirror.xyz/0x5Eba828AB4999825D8416D7EAd9563b64FD90276/nRNyWdsSYiv77qiVXBXqG5f8JfyK-3RzRDx9cklPAGU)

[https://mp.weixin.qq.com/s?\_\_biz=Mzk0NjU2NTEwNQ==&mid=2247491664&idx=1&sn=944683a699ca2177427976121f147c46&source=41#wechat\_redirect](https://mp.weixin.qq.com/s?__biz=Mzk0NjU2NTEwNQ==&mid=2247491664&idx=1&sn=944683a699ca2177427976121f147c46&source=41#wechat_redirect)

---

*Originally published on [CYNIC](https://paragraph.com/@cynicsong/eigenlayer)*
