CYNIC

Posted on Mar 08, 2024Read on Mirror.xyz

EigenLayer: 重质押撬动安全性

概述

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

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

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

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

我们将以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://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://mirror.xyz/0x5Eba828AB4999825D8416D7EAd9563b64FD90276/nRNyWdsSYiv77qiVXBXqG5f8JfyK-3RzRDx9cklPAGU

https://mp.weixin.qq.com/s?__biz=Mzk0NjU2NTEwNQ==&mid=2247491664&idx=1&sn=944683a699ca2177427976121f147c46&source=41#wechat_redirect