系统安全取决于其中的短板,而看似微不足道的短板可能引发系统性风险。
撰文:Jiawei,IOSG Ventures
来源: EigenLayer,IOSGVentures
在当前的以太坊生态中,存在着许多的中间件(Middleware)。
上图左侧是应用端的视角。一些 dApp 的运行依赖于中间件:例如 DeFi 衍生品依赖于预言机喂价;例如资产的跨链转移依赖于跨链桥作为第三方中继。右侧是模块化的视角。例如在 Rollup 排序中我们需要构建 Sequencer 网络;在链下数据可用性中我们有 DAC 或者 Polygon Avail 和 Celestia 的 DA-Purpose Layer1。
这些大大小小的中间件独立于以太坊本身而存在,运行着验证者网络:即投入一些代币和硬件设施,为中间件提供服务。
我们对中间件的信任源于 Economic Security,如果诚实工作可以得到回报,如果作恶则将导致质押代币的 Slashing。这种信任的级别来源于质押资产的价值。
如果我们把以太坊生态中所有依赖 Economic Security 的协议 / 中间件比作一个蛋糕,那么看起来会像是这样:资金根据质押网络的规模被切分成大大小小的部分。
来源: IOSG Ventures
然而,当前的 EconomicSecurity 仍然存在一些问题:
这样,进一步地带来木桶效应:
可见系统安全取决于其中的短板,而看似微不足道的短板可能引发系统性风险。
EigenLayer 的想法并不复杂:
类似于共享安全,尝试把中间件的 Economic Security 提升至等同于以太坊的级别。
来源: EigenLayer, IOSG Ventures
这是通过「Restaking」(再质押)来完成的。
Restaking 即是把以太坊验证者网络的 ETH 敞口进行二次质押:
原先,验证者在以太坊网络上进行质押以获得收益,一旦作恶则将导致对其质押资产的 Slash。同理,在进行 Restaking 之后能够获得在中间件网络上的质押收益,但如果作恶则被 Slash 原有的 ETH 质押品。
具体 Restake 的实施方法是:质押者可以把以太坊网络中提款地址设置为 EigenLayer 智能合约,也即赋予其 Slashing 的权力。
来源: Messari, IOSG Ventures
除直接 Restake $ETH 之外,EigenLayer 提供了其他两种选项以扩展 Total Addressable Market,即分别支持质押 WETH/USDC 的 LP Token 和 stETH/USDC 的 LP Token。
此外,为了延续中间件原生代币的价值捕获,中间件可以选择在引入 EigenLayer 的同时保持对其原生代币的质押要求,即 Economics Security 分别来源于其原生代币和以太坊,从而避免单代币的价格暴跌引发的「死亡螺旋」。
总体来看,对验证者来说,参与 EigenLayer 的 Restaking 有资本要求和硬件要求两点。
参与以太坊验证的资本要求是 32 ETH,在 Restaking 上保持不变,但在引入到新的中间件时会额外增加潜在的风险敞口,如 Inactivity 和 Slashing。
来源: Ethereum, IOSG Ventures
而硬件设施方面,为了降低验证者的参与门槛,实现足够的去中心化,合并后以太坊验证者的硬件要求很低。稍好的家用电脑其实已经可以达到推荐配置。这时一些硬件要求其实是溢出的。类比于矿工在算力资源足够的时候同时挖多个币种,仅从硬件方面来说,Restaking 相当于用溢出的这部分硬件 Capability 去为多个中间件提供支持。
听起来很像 Cosmos 的 Interchain Security,仅此而已?实际上,EigenLayer 对后合并时代以太坊生态的影响可能不止于此。本文我们选取 EigenDA 来做进一步阐述。
来源: EigenLayer, IOSG Ventures
注:此处仅十分简略地介绍数据可用性(DA)、纠删码和 KZG 承诺。数据可用性层是模块化视角下的拆分,用于为 Rollup 提供数据可用性。纠删码和 KZG 承诺是数据可用性采样(DAS)的组成部分。采用纠删码使得随机下载一部分数据即可验证所有的数据可用性,并在必要时重建所有数据。KZG 承诺用于确保纠删码被正确编码。为避免偏离本文主旨,本节将省略一些细节、名词解释和前因后果,如对本节 Context 有疑问,可阅读 IOSG 此前的文章「合并在即:详解以太坊最新技术路线」以及「拆解数据可用层:模块化未来中被忽视的乐高积木」。
来源: IOSG Ventures
作为简单回顾,我们把当前的 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
以 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 网络。
如何实现?
来源: EigenLayer
首先,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 的文章,此处不再展开 *https://dankradfeist.de/ethereum/2021/09/30/proofs-of-custody.html*)
经过上述讨论和比较,我们可以看到:
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 网络低吞吐量的瓶颈。
这体现为节点要求和吞吐量之间的差异。
来源: EigenLayer, Celestia, IOSG Ventures
在安全性方面,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 的数据可用性需求可以定制不同的方案。
最后再回头聊聊 Economic Security。
我们假设大多数 Economic Security 参与者是理性的,受到经济激励的驱动,并总是倾向于最大化自己的利润。这些参与者可能是中间件的验证者,他们提供硬件设施、质押中间件原生代币,并获得代币作为奖励。
理性的参与者会考虑投入与产出:如果把这些投入放到其他地方,是否可以获得更多收益?所以,中间件需要保证其代币的价格维持在一定的水平。如果代币激励足够大,那么自然会吸引更多的验证者加入,从而进一步提升网络的去中心化程度;如果无法维护代币价值,项目方可能不得不自掏腰包运行验证者集,随之则将导致中心化以及审查问题。
另外还有安全级别的考虑——中间件的安全性取决于质押代币的总体价值;如果代币暴跌,攻击网络的成本也随之降低。
综上两点,中间件需要不断提升其协议代币的价值以强化激励,从而确保 Economic Security 足够稳固。除构建中间件服务本身之外,项目方需要额外付出大量的边际成本。
EigenLayer 的 Restaking 则同时解决了上述两个问题:
由于 EigenLayer 仍在早期阶段,我们缺少关于具体实施的材料,本文内容更多为逻辑面的梳理。对于一些技术细节仍待进一步探究和讨论。
但我们已经看到 EigenLayer 提出的 Hyperscaling Ethereum 的创新所在,在 EigenLayer 之上会有非常多有趣的话题值得探讨。如果您仔细阅读本文并理解了 EigenLayer 的 Vision 和 Positioning,大概会感到与我们同样兴奋。
IOSG 始终关注并积极拥抱以太坊生态,将持续跟进 EigenLayer 为以太坊未来格局带来的潜在改变及其投资机会。
Pay attention to EigenLayer :)
请注意:本文部分 idea 来源于与 EigenLayer 团队的社区讨论
References
https://messari.io/report/eigenlayer-to-stake-and-re-stake-again
https://twitter.com/SalomonCrypto/status/1572094840619532288
https://twitter.com/\_nishil\_/status/1573018197829115905
https://twitter.com/MeirBank/status/1589013673385000960
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。