EigenLayer: 重质押撬动安全性

概述

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

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

source: 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
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
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

Subscribe to CYNIC
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.