本文重点在eigenlayer的EigenDA和DA L1链,如@CelestiaOrg或@AvailProject,之间的比较
原文标题:data availability (DA) is the main scaling bottleneck
原文作者:zer0kn0wledge.era
原文来源:twitter
编译:Kate, Marsbit
注:本文来自@expctchaos 推特,其是@ChaosDAO的研究员,原推文内容由MarsBit整理如下:
0/ 数据可用性(DA)是主要的扩展瓶颈
幸运的是,@CelestiaOrg, @AvailProject 和 @eigenlayer 将改变DA游戏,并实现新的可扩展性
但它是如何工作的,#EigenDA与#Celestia和#Avail等DA 15有何不同?
1/ 如果你不熟悉数据可用性问题,请查看我下面的帖子,其中我详细介绍了数据可用性情况👇
https://twitter.com/expctchaos/status/1535698402939265025
2/ 总的来说,数据处理解决方案主要有两种类型
🔷链上DA
🔷链下DA
3/ 而“纯有效性验证”意味着数据处理可以在没有保证的情况下下链,因为链下数据服务提供商可以随时下线……
4/ …#StarkEx, #zkPorter和#Arbitrum Nova是依赖于DAC的验证场景的例子,DAC是一个由知名第三方组成的小组来保证数据的可用性
5/ 另一方面,#EigenDA, @CelestiaOrg和@AvailProject是我们可以称之为通用DA解决方案
但是,EigenDA和其他两种解决方案之间存在一些区别
6/ 如果你想知道@CelestiaOrg是如何工作的,请查看下面的链接
https://twitter.com/expctchaos/status/1535970188012572672
7/ 我过去也介绍过@AvailProject,所以要了解更多信息,请查看这里
https://twitter.com/expctchaos/status/1537459186421772288
8/ 如果你需要复习@eigenlayer,请查看以下线程👇
https://twitter.com/expctchaos/status/1601921935662731265
9/ 所以在今天的帖子中,我们想把重点放在@eigenlayer的#EigenDA和DA L1链(如@CelestiaOrg或@AvailProject)之间的比较上
10/ 让我们假设一个基于以太坊并使用Celestia进行 DA(又名 Celestium)的rollup
因此,以太坊上的L2合约像往常一样验证有效性证明或欺诈证明,而DA由Celestia提供
11/ 在@CelestiaOrg和@AvailProject上,没有智能合约或计算,只保证数据可用
12/ 但是让我们仔细看看
在@CelestiaOrg上,tx数据由L2排序器发布到Celestia, Celestia验证者签署DA证明的默克尔根,随后发送到以太坊上的DA桥接合约进行验证和存储
13/ 与在链上存储DA相比,这大大降低了拥有强大DA保证的成本,同时也提供了来自Celestia的安全保证(而不是中心化的DAC)
14/ 成本降低方面将改变整个rollup领域的游戏规则,因为将数据发布到以太坊L1所产生的calldata成本占rollup费用的80-90%
有关calldata成本的更多信息,请查看下面的帖子👇
https://twitter.com/expctchaos/status/1661794274206445569
15/ 但是在#Celestia上到底发生了什么?
将发布到@CelestiaOrg的数据blob (基本上作为原始数据)通过P2P网络传播,并且使用Tendermint共识达成关于数据blob的共识
16/ 每个#Celestia全节点必须下载整个数据blob。对于可以使用数据可用性采样(DAS)来确保数据可用性的轻节点来说,这是不同的
17/ 有关DAS和轻节点的更多信息,请查看下面的帖子
https://twitter.com/expctchaos/status/1662141571666681856
18/ 我们稍后也会在这个线程中回到DAS,但现在的重点是全节点
所以回到@CelestiaOrg,它继续以L1的方式行事,依赖于对数据blob的广播和共识
19/ 因此,它对网络的全节点(128 MB/s下载和12.5 MB/s上传)提出了很高的要求。
尽管如此,@CelestiaOrg在开始时的目标是达到中等吞吐量(1.4 MB/s),考虑到全节点需求,这似乎很低
20/ 然而,网络可以通过增加轻节点来扩展吞吐量。数据采样轻节点越多,在保证安全和去中心化的情况下,区块大小可以越大
21/ 另一方面,@eigenlayer采用了不同的架构,没有自己的共识,也没有点对点网络
那么这是如何工作的呢?
首先,EigenDA节点必须在@eigenlayer合约中重新分配$ETH。因此,#EigenDA节点是以太坊验证器的一个子集
22/ 随后,DA买方(例如rollup,也称为分散器)接收到数据blob后,用纠删码对其进行编码,并生成KZG承诺…
23 /……其中证明大小取决于纠删码的冗余比率,并发布KZG对#EigenDA智能合约的承诺
24/ 编码后的KZG承诺由分散器分发到#EigenDA节点
在收到KZG承诺后,这些节点将其与EigenDA智能合约的KZG承诺进行比较,并在确认无误后签署证明
25/ 之后,分散器将这些签名一一收集,生成聚合签名,并发布到#EigenDA智能合约中,由智能合约对签名进行验证
26/ 但是,如果#EigenDA节点只是简单地签署证明,声称它在这个工作流中存储了编码的数据blob,而EigenDA智能合约只验证聚合签名的正确性,我们怎么能确定EigenDA节点真的存储了数据?
27/ #EigenDA使用托管证明方法来实现这一点
但是让我们后退一步,看看这个变得重要的场景
28/让我们假设一些懒惰的验证者没有完成分配给他们的任务(例如确保数据可用)
相反,他们假装已经完成了工作,并签署了最终结果(在数据不可用时谎报数据可用性)。
29/ 从概念上讲,托管证明就像欺诈证明一样:
任何人都可以向#EigenDA智能合约提交证明(验证者懒惰),该证明将由智能合约进行验证
29/ 如果验证成功,惰性验证器被削减(因为它是一个客观可归因的错误)
30/ 那么共识呢?
@CelestiaOrg使用Tendermint作为其共识协议,该协议具有单槽最终性。也就是说,一旦一个区块通过了#Celestia的共识,它就完成了。这意味着最终确定性基本上和出块时间一样快(15秒)。
31/ @AvailProject使用协议组合来实现最终性。BABE是具有概率终结性的区块生产机制,GRANDPA是终结性小工具。虽然GRANDPA可以在一个槽中完成区块,但它也可以在一轮中完成多个区块
32/ 由于@eigenlayer是以太坊上的一组智能合约,对于需要转发到rollup合约以证明数据可用性的数据,它也继承了与以太坊相同的最终确定时间(12 - 15 分钟)
33/ 然而,如果rollup完全使用@eigenlayer,它可以更快地完成,这取决于共识机制的使用等。
此外,由@eigenlayer的再质押验证器保护的中间件专注于提供快速结算,例如EigenSettle可以提供强有力的经济安全保证,允许最终预确认。然而,硬最终性保证仍然来自以太坊L1
34/ 是时候重新审视数据可用性抽样概念了
在大多数区块链中,节点需要下载所有交易数据来验证数据的可用性。这造成的问题是,当块大小增加时,需要验证的数据节点的数量也会增加
35/ 数据可用性抽样(DAS)是一种允许轻节点通过只下载一小部分区块数据来验证数据可用性的技术
36/ 这为轻节点提供了安全性,以便它们可以验证无效块(仅限DA和共识),并允许区块链在不增加节点需求的情况下扩展数据可用性
37/ DAS至少需要一个诚实的全节点和足够数量的轻客户端
38/ 但是如何保证轻节点的安全性呢?
与全节点相比,传统的轻客户端具有较弱的安全性假设,因为它们只验证区块头
因此,轻客户端无法检测到一个无效区块是否是由不诚实的大多数区块生产者生产的
39/ 具有数据可用性采样的轻节点在安全性上得到了升级,因为如果DA层只做共识和数据可用性,它们可以验证是否产生了无效块
40/ @CelestiaOrg和@AvailProject都将具有数据可用性采样,因此它们的轻节点将具有信任最小化的安全性。
41/ 这与以太坊和@eigenlayer不同
带有#EIP4844的以太坊没有数据可用性抽样,因此其轻客户端将没有信任最小化的安全性
42/由于以太坊也有它的智能合约环境,轻客户端也需要验证执行(通过欺诈或有效性证明),而不是依赖于诚实的大多数假设
43/ @eigenlayer (除非有DAS)轻客户端,如果支持的话,将依赖于诚实的大多数再质押节点
因此,#EigenDA的安全性主要基于以太坊验证器集,继承了以太坊slashing原语并确保了DA的经济安全性
44/ 因此,更多利益相关者参与#EigenDA意味着更大的安全。减少节点需求也有助于更好地去中心化
45/ 纠删码是使数据可用性采样成为可能的重要机制。纠删编码通过产生数据的额外副本来扩展块。额外的数据产生冗余,为采样过程提供更强的安全保证
46/ 然而,节点可能会试图错误地编码数据以破坏网络。为了防御这种攻击,节点需要一种方法来验证编码的正确性——这就是证明的用武之地
47/以太坊,@eigenlayer和@AvailProject都使用一种有效性证明方案来确保块被正确编码。这个想法类似于zk rollup使用的有效性证明。@eigenlayer已经在这个线程的前面讨论过了
48/ 每产生一个区块,验证者必须对节点使用KZG证明验证的数据做出承诺,证明该区块被正确编码
49/ 虽然,为KZG证明生成承诺对区块生产者来说需要更多的计算开销,但当区块很小时,生成承诺不会带来太多的开销。然而,这改变了……
50/……随着区块变得越来越大,KZG证明的承诺产生的负担要高得多
因此,负责生成这些承诺的节点类型可能需要更高的硬件需求
51/ 另一方面,@CelestiaOrg为纠删码执行欺诈证明。因此,#Celestia节点不需要检查块是否被正确编码。他们默认它是正确的
52/ 好处是,区块生产者不需要做昂贵的工作来生成纠删编码的承诺
但是有一个权衡,因为轻节点必须等待很短的时间才能假设一个块被正确编码,并在它们的视图中完成它
53/ 欺诈证明和有效性证明编码方案之间的主要区别在于生成承诺的节点开销和轻节点的延迟之间的权衡
54/ 这个表格很好地总结了比较