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