Rollup层是第1层扩容的一种解决方案。事实证明,Rollups在扩展方面同样需要一些帮助。特别是,如果可以访问到更多的数据可用性,Rollup可以获得更高的吞吐能力。
当然,现在有很多解决方案都旨在为Rollup提供可扩展的数据可用性,如以太坊、Celestia、EigenLayer和Avail。下面是对它们在一些指标上的比较的简短而不完整的介绍。
DA层一览
出块时间
出块时间是指区块出块间隔的的时间长度。
Celestia、以太坊和Avail
在这三个项目中,两个项目的区块时间都相差8秒:以太坊的区块时间为12秒,Celestia的区块时间为15秒,Avail的区块时间为20秒。它们之间的差距其实并不大,也不会产生重大影响。它们之间真正的差异,要看它们达到最终确定性所需的时间,就会更加明显。
EigenLayer
EigenLayer是唯一一个不是区块链的项目--它是一套运行在以太坊上的智能合约。任何需要转发给Rollup合约的数据,如证明数据可用性的法定人数签名,都依赖于以太坊的区块时间和最终性。如果Rollup都依赖EigenLayer的话,那么它就不受以太坊区块时间的约束。
最终确定性和共识算法
最终确定性时间是指区块产生并被视为最终区块所需的时间。我们所说的最终性是指,如果被认为是最终确定性的交易被撤销,那么大量的质押将被销毁。共识协议处理最终确定性的方式各不相同。
以太坊
以太坊使用GHOST和Casper等协议组合来达成共识。GHOST是以太坊的区块生产引擎,依赖于概率最终确定性。为了提供更快的终结性,以太坊使用了最终确定性工具:Casper。
Casper提供经济性最终确定性保证,因此可以更快地完成交易。但是,以太坊使用Casper每64-95个slot才最终确定一个区块不会被撤销,这意味着以太坊区块的最终完成时间大约为12-15分钟。反过来,这又会导致Rollup区块在向以太坊发布数据和承诺时,需要等待12-15分钟才能收到最终确定结果。
EigenLayer
由于EigenLayer是以太坊上的一组智能合约,因此它也继承了与以太坊相同的最终确定性时间,即任何需要转发给Rollup合约以证明数据可用性的数据的最终时间。同样,如果Rollup完全使用EigenLayer,它的最终确定时间会更快,这取决于是否使用任何共识机制等。
Celestia
Celestia的共识协议使用Tendermint,具有单slot最终确定性。也就是说,一旦一个区块通过了Celestia的共识,它就最终完成了。这意味着最终完成时间基本上与区块时间一样快。
Avail
Avail与以太坊一样,使用BABE和GRANDPA协议组合来实现最终性。BABE是具有概率的最终确定性区块生产机制,而GRANDPA则是最终确定性工具。虽然GRANDPA可以在单个slot内最终确定区块,它也可以在给定回合内最终确定多个区块。Avail的最终确定性为20秒,最坏的情况是多个区块。
数据可用性采样
在大多数区块链中,节点需要下载所有交易数据来验证数据的可用性。这带来的问题是,当区块大小增加时,节点需要验证的数据量也会同样增加。
数据可用性抽样是一种允许轻节点只下载一小部分区块数据来验证数据可用性的技术。这为轻节点提供了安全保障,使它们可以验证出无效的区块,并允许区块链在不增加节点需求的情况下扩展数据可用性。
Celestia&Avail
Celestia和Avail在发布时都将支持数据可用性采样轻节点。这意味着它们将能够通过更多的轻节点安全地增加区块大小,同时保持对用户验证链的低要求。
以太坊
使用EIP48444的以太坊将不包括数据可用性采样。EIP4844增加了区块大小,并建立了一些技术基础来实现danksharding,如blob交易和kate承诺。要验证EIP4844实施后以太坊的数据可用性,用户仍必须运行完整节点并下载所有数据。
EigenLayer
虽然EigenLayer目前没有围绕DAS的官方计划,但有暗示称,DAS未来可能成为EigenLayer轻客户端的选项。有两个选项:
排序器DAS:排序器DAS会增加排序器的开销,因为只有领导者才能为当前区块的所有轻客户端提供采样请求--除非实施某种共识机制,让非领导者也能提供采样请求。
EigenLayerDAS:来自EigenLayer的DAS需要一个强大的p2p网络和额外的机制来保证完全的安全性。
虽然DAS可能不会在EigenLayer推出时实施,但看起来它可能会在以后进入EigenLayer。在此之前,验证EigenLayer链的DA需要一个完整的节点。
轻节点安全性
区块链依靠用户运行节点来抵御恶意攻击。
与完整节点相比,传统的轻客户端安全性假设较弱,因为它们只能验证区块头。轻客户端无法检测到无效区块是否是由大多数不诚实的区块生产者产生的。具有数据可用性采样功能的轻节点在安全性方面得到了提升,因为它们可以验证是否产生了无效区块--如果DA层只做共识和数据可用性的话。
Celestia&Avail
由于Celestia和Avail都将进行数据可用性采样,因此它们的轻节点将具有信任最小化的安全性。
以太坊和EigenLayer
使用EIP4844的以太坊没有数据可用性采样,因此其轻型客户端不具备信任最小化的安全性。由于以太坊也有智能合约环境,轻客户端也需要验证执行,以避免依赖诚实的多数假设。
对于EigenLayer而言,除非有DAS,否则轻客户端将依赖于质押节点的多数诚实。
编码证明方案
擦除编码是使数据可用性采样成为可能的重要机制。擦除编码通过生成额外的数据副本来扩展数据块。附加数据会产生冗余,为采样过程提供更强的安全保证。不过,节点可能会试图对数据进行错误编码,从而破坏网络。为了抵御这种攻击,节点需要一种方法来验证编码的正确性--这就是证明的作用所在。
以太坊、EigenLayer和Avail
这三个项目都使用一种有效性证明方案来确保区块编码正确。其原理类似于zkrollup使用的有效性证明。每次生成区块时,验证者必须生成对数据的承诺,节点使用kzg证明来验证--证明区块编码正确。
不过,为kzg证明生成承诺需要区块生产者更多的计算开销。当区块较小时,生成承诺不会带来太多开销。随着区块的增大,为kzg证明生成承诺的负担就会大大增加。负责生成kate承诺的节点类型可能需要更高的硬件要求。
Celestia
Celestia的独特之处在于它使用欺诈证明方案来检测错误编码的区块。这个想法与乐观Rollup所使用的欺诈证明类似。Celestia节点无需检查区块是否正确编码。它们默认情况下会认为它是正确的。这样做的好处是,区块生产者不需要进行昂贵的工作,就能为擦除编码生成承诺。
但是,轻节点确实需要等待一小段时间,然后才能确认一个区块是否被正确编码,并在它们看来最终完成编码。这段等待时间是为了让轻节点在区块编码错误的情况下收到全节点的欺诈证明。如果节点被“eclipsed”,导致无法收到欺诈证明,那么它就会将无效区块视为有效。然而,假设节点不会被“eclipsed”是节点实际验证区块链的前提,不论是否有欺诈证明的参与。
欺诈证明和有效性证明编码方案的主要区别在于节点生成承诺的开销和轻节点的延迟之间的权衡。将来,如果有效性证明的权衡比欺诈证明更有吸引力,Celestia就可以转换其编码证明方案。
本翻译由DeCert.me协助支持,来DeCert码一个未来,支持每一位开发者构建自己的可信履历。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。