?EigenLayer:将以太坊级别的信任引入中间件
引子
来源:EigenLayer,IOSGVentures
在当前的以太坊生态中,存在着许多的中间件。
左侧是应用端的视角。一些dApp的运行依赖于中间件:例如DeFi衍生品依赖于预言机喂价;例如资产的跨链转移依赖于跨链桥作为第三方中继。
右侧是模块化的视角。例如在Rollup排序中我们需要构建Sequencer网络;在链下数据可用性中我们有DAC或者PolygonAvail和Celestia的DA-PurposeLayer1。
这些大大小小的中间件独立于以太坊本身而存在,运行着验证者网络:即投入一些代币和硬件设施,为中间件提供服务。
我们对中间件的信任源于?EconomicSecurity,如果诚实工作可以得到回报,如果作恶则将导致质押代币的Slashing。这种信任的级别来源于质押资产的价值。
如果我们把以太坊生态中所有依赖EconomicSecurity的协议/中间件比作一个蛋糕,那么看起来会像是这样:资金根据质押网络的规模被切分成大大小小的部分。
来源:IOSGVentures
然而,当前的EconomicSecurity仍然存在一些问题:
对于中间件。中间件的验证者需要投入资金以守护网络,这需要一定的边际成本。出于代币价值捕获的考虑,验证者往往被要求质押中间件原生代币,由于价格波动导致其风险敞口存在不确定性。其次,中间件的安全性取决于质押代币的总体价值;如果代币暴跌,攻击网络的成本也随之降低,甚至可能引发潜在的安全事件。该问题在一些代币市值较为薄弱的协议上尤为明显。对于dApp。举例而言,一些dApp不必依赖于中间件,而只需要信任以太坊;对于一些依赖中间件的dApp,实际上其安全同时依赖于以太坊和中间件的信任假设。中间件的信任假设本质上来源于对分布式验证者网络的信任。而我们看到由于预言机错误喂价导致的资产损失事件不在少数。这样,进一步地带来木桶效应:
假设某个可组合性极高的DeFi应用A,相关牵扯的TVL达到数十亿级别,而预言机B的信任仅仅依赖于数亿级别的质押资产。那么一旦出现问题,由于协议间关联所带来的风险传导和嵌套,可能无限放大预言机所造成的损失;假设某模块化区块链C,采用数据可用性方案D、执行层方案F等等,如果其中的某一部分出现行为不当/遭受攻击,波及范围将是C整条链本身,尽管系统其他部分并没有问题。可见系统安全取决于其中的短板,而看似微不足道的短板可能引发系统性风险。
EigenLayer做了什么?
EigenLayer的想法并不复杂:
类似于共享安全,尝试把中间件的EconomicSecurity提升至等同于以太坊的级别。
来源:EigenLayer,IOSGVentures
这是通过「Restaking」来完成的。
Restaking即是把以太坊验证者网络的ETH敞口进行二次质押:
原先,验证者在以太坊网络上进行质押以获得收益,一旦作恶则将导致对其质押资产的Slash。同理,在进行Restaking之后能够获得在中间件网络上的质押收益,但如果作恶则被Slash原有的ETH质押品。
具体Restake的实施方法是:质押者可以把以太坊网络中提款地址设置为EigenLayer智能合约,也即赋予其Slashing的权力。
来源:Messari,IOSGVentures
除直接Restake$ETH之外,EigenLayer提供了其他两种选项以扩展TotalAddressableMarket,即分别支持质押WETH/USDC的LPToken和stETH/USDC的LPToken。
此外,为了延续中间件原生代币的价值捕获,中间件可以选择在引入EigenLayer的同时保持对其原生代币的质押要求,即EconomicsSecurity分别来源于其原生代币和以太坊,从而避免单代币的价格暴跌引发的「死亡螺旋」。
可行性
总体来看,对验证者来说,参与EigenLayer的Restaking有资本要求和硬件要求两点。
参与以太坊验证的资本要求是32ETH,在Restaking上保持不变,但在引入到新的中间件时会额外增加潜在的风险敞口,如Inactivity和Slashing。
来源:Ethereum,IOSGVentures
而硬件设施方面,为了降低验证者的参与门槛,实现足够的去中心化,合并后以太坊验证者的硬件要求很低。稍好的家用电脑其实已经可以达到推荐配置。这时一些硬件要求其实是溢出的。类比于矿工在算力资源足够的时候同时挖多个币种,仅从硬件方面来说,Restaking相当于用溢出的这部分硬件Capability去为多个中间件提供支持。
听起来很像Cosmos的InterchainSecurity,仅此而已?实际上,EigenLayer对后合并时代以太坊生态的影响可能不止于此。本文我们选取EigenDA来做进一步阐述。
来源:EigenLayer,IOSGVentures
EigenDA
注:此处仅十分简略地介绍数据可用性、纠删码和KZG承诺。数据可用性层是模块化视角下的拆分,用于为Rollup提供数据可用性。纠删码和KZG承诺是数据可用性采样的组成部分。采用纠删码使得随机下载一部分数据即可验证所有的数据可用性,并在必要时重建所有数据。KZG承诺用于确保纠删码被正确编码。为避免偏离本文主旨,本节将省略一些细节、名词解释和前因后果,如对本节Context有疑问,可阅读IOSG此前的文章「合并在即:详解以太坊最新技术路线」以及「拆解数据可用层:模块化未来中被忽视的乐高积木」。
来源:IOSGVentures
作为简单回顾,我们把当前的DA方案划分为链上和链下两部分。
链上部分,PureRollup是指单纯把DA放到链上的方案,即需要为每个字节恒定支付16gas,这将占到Rollup成本的80%-95%之多。在引入Danksharding之后,链上DA的成本将得到大幅降低。
在链下DA中,每种方案在安全性和开销上有一定的递进关系。
PureValidium是指仅把DA放在链下,而不做任何保证,链下数据托管服务商随时有关机下线的风险。而特定于Rollup中的方案包括StarkEx、zkPorter和ArbitrumNova,即由一小部分知名第三方组成DAC来保证DA。
EigenDA属于通用化的DA解决方案,与Celestia和PolygonAvail同属一类。但EigenDA和其余两者的解决思路又有一些差异。
作为对比,我们首先忽略EigenDA,来看Celestia的DA是如何工作的。
来源:Celestia
以Celestia的QuantumGravityBridge为例:
以太坊主链上的L2Contract像往常一样验证有效性证明或欺诈证明,区别在于DA由Celestia提供。Celestia链上没有智能合约、不对数据进行计算,只确保数据可用。
L2Operator把交易数据发布到Celestia主链,由Celestia的验证人对DAAttestation的MerkleRoot进行签名,并发送给以太坊主链上的DABridgeContract进行验证并存储。
这样实际上用DAAttestation的MerkleRoot代替证明了所有的DA,以太坊主链上的DABridgeContract只需要验证并存储这个MerkleRoot。对比将DA存储到链上而言,这样使得保证DA的开销得到了极大的降低,同时由Celestia链本身提供安全保证。
在Celestia链上发生了什么?首先,DataBlob通过P2P网络传播,并基于Tendermint共识对DataBlob达成一致性。每个Celestia全节点都必须下载整个DataBlob。
由于Celestia本身仍然作为Layer1,需要对DataBlob进行广播和共识,这样一来实际上对网络的全节点有着很高的要求,而实现的吞吐量却未必高。
而EigenLayer采用了不同的架构——不需要做共识,也不需要P2P网络。
如何实现?
来源:EigenLayer
首先,EigenDA的节点必须在EigenLayer合约中Restake他们的ETH敞口,参与到Restaking中。EigenDA节点是以太坊质押者的子集。
其次,数据可用性的需求方拿到DataBlob后,使用纠删码和KZG承诺对DataBlob进行编码,并把KZG承诺发布到EigenDA智能合约。
随后Disperser把编码后的KZG承诺分发给EigenDA节点。这些节点拿到KZG承诺后,与EigenDA智能合约上的KZG承诺进行比较,确认正确后即对Attestation进行签名。之后Disperser一一获取这些签名,生成聚合签名并发布到EigenDA智能合约,由智能合约进行签名的验证。
在这个工作流中,EigenDA节点仅仅对Attestation进行了签名,来声称自己对编码后的DataBlob进行了存储。而EigenDA智能合约仅仅对聚合签名的正确性进行验证。那么我们如何确保EigenDA节点真的对数据可用进行了存储呢?
EigenDA采用了?ProofofCustody的方法。即针对这样一种情况,有一些LazyValidator,他们不去做本应该做的工作。而是假装他们已经完成了工作并对结果进行签名。
ProofofCustody的做法类似于欺诈证明:如果出现LazyValidator,任何人可以提交证明给EigenDA智能合约,由智能合约进行验证,如验证通过即对LazyValidator进行Slashing。
小结
经过上述讨论和比较,我们可以看到:
Celestia的思路与传统的Layer1一致,做的其实是Everybody-talks-to-everybody和Everybody-sends-everyone-else-everything,而区别是Celestia的共识和广播是针对DataBlob来做的,即仅确保数据可用。
而EigenDA做的是Everybody-talks-to-disperser和Disperser-sends-each-node-a-unique-share,把数据可用性和共识进行了解耦。
EigenDA不需要做共识和参与P2P网络的原因是,它相当于搭了以太坊的「便车」:借助EigenDA部署在以太坊上的智能合约,Disperser发布Commitments和AggregatedAttestations、由智能合约验证聚合签名的过程都是在以太坊上发生的,由以太坊提供共识保证,因此不必受限于共识协议和P2P网络低吞吐量的瓶颈。
这体现为节点要求和吞吐量之间的差异。
来源:EigenLayer,Celestia,IOSGVentures
在安全性方面,Celestia使用Tendermint作为其共识,这意味着如果控制了Celestia的2/3的代币,就有可能发生多数攻击。与此同时,Celestia对纠删码进行欺诈证明,且轻客户端同时做DAS。这需要至少一个诚实的全节点和足够多的轻客户端来做DAS。
而EigenDA的安全性本质上依赖于以太坊的验证者集,继承了以太坊的Slashing原语,为DA层提供了EconomicSecurity的保证。如果Restaking在EigenDA的质押者越多,则意味着更多的安全。而降低节点的要求也同样有助于增强去中心化程度。
需要注意,EigenDA是应用层DA,区别于Danksharding的协议层DA——Application-specific相较于General-purpose的优势在于Sovereign和Flexibility。这使得针对不同Rollup的数据可用性需求可以定制不同的方案。
DiscussiononEconomicSecurity
最后再回头聊聊EconomicSecurity。
我们假设大多数EconomicSecurity参与者是理性的,受到经济激励的驱动,并总是倾向于最大化自己的利润。这些参与者可能是中间件的验证者,他们提供硬件设施、质押中间件原生代币,并获得代币作为奖励。
理性的参与者会考虑投入与产出:如果把这些投入放到其他地方,是否可以获得更多收益?所以,中间件需要保证其代币的价格维持在一定的水平。如果代币激励足够大,那么自然会吸引更多的验证者加入,从而进一步提升网络的去中心化程度;如果无法维护代币价值,项目方可能不得不自掏腰包运行验证者集,随之则将导致中心化以及审查问题。
另外还有安全级别的考虑——中间件的安全性取决于质押代币的总体价值;如果代币暴跌,攻击网络的成本也随之降低。
综上两点,中间件需要不断提升其协议代币的价值以强化激励,从而确保EconomicSecurity足够稳固。除构建中间件服务本身之外,项目方需要额外付出大量的边际成本。
EigenLayer的Restaking则同时解决了上述两个问题:
关于投入产出,如果硬件设施的Capacity足够,验证者无需投入额外代币成本,而是将已有的ETH质押份额扩展到新的协议。当然,这将扩大一部分风险敞口。如何衡量这部分风险,在具体实施细节披露之前我们无法下判断,但直观来说,只要验证者没有主观作恶的意愿,这部分风险是在可控范围内的,因为Inactivity的本质区别于Slashing:Inactivity可能是意外下线或因为网络原因错过投票所导致的,而Slashing的原因则是恶意行为,后者将导致被移除验证者网络并失去ETH。关于安全级别,具体将取决于EigenLayer本身以及针对特定中间件的采用率。目前以太坊网络共质押了14,836,535枚?ETH,以市场现价计算,假设只有1%的ETH参与到某个中间件的Restaking中,能够产生接近2亿美金的资产保护。此外,在去中心化程度方面,以太坊的验证者集亦是加密生态中最去中心化的群体。责任编辑:MK
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。