不同的数据可用性层之间有什么区别?在这篇文章中,我们将探讨各种方式的优势和劣势。
在最近几年中,由于对执行扩展(scaling execution)的关注增长,Layer 2 开始得到关注到采用。与此同时,越来越多的参与者面临着由于有限的区块空间和高昂的成本带来的增长挑战。他们开始意识到,为了有效地扩大区块链的规模,一个可以扩展的数据可用性层是非常关键的。这也意味着他们需要一个既能节省成本又有更大区块空间的基础技术层,以支持各种不同类型的 rollups。
Avail 和其他几个团队正在从零开始构建可扩展的数据可用性解决方案,而其他团队,如 Ethereum,正试图增加现有区块链的数据可用性容量。不管采取什么方法,都存在一个事实 —— 开发人员今天选择的基础层将决定他们在未来几年的竞争优势。
Avail 是正在迅速发展的模块化生态的一个组成部分,它的目标是提高区块链的数据可用性。除了 Avail 外,还有其他的数据可用性(DA)解决方案,如 Celestia 和 EigenDA,它们也在为相同的目标努力。各种解决方案都在采用不同的策略和技术路径来实现区块链的可扩展性。作为其中的一个例子,Ethereum 目前正在采用一种名为 Proto-Danksharding 的技术,这也被称为 EIP-4844 。这项技术是 Ethereum 向实现其长期目标 —— 完全的 Danksharding 技术 —— 迈出的一步。
这篇文章将评估每种方法的优势和劣势。我们将突出不同的设计选择,以方便大家全面了解。并帮助开发者找到最适合他们的 DA 层。
让我们先从概述开始,然后深入到每一个类别:
网络安全
当考虑基础层时,网络的安全性和韧性是首先引起关注的事项。以下是检查网络强度时的关键因素。
共识机制
在共识机制中,活跃性和安全性之间存在一个基本的困境。活跃性确保交易迅速处理并且网络保持运行,而安全性保证交易准确且安全。不同的区块链系统为其独特的用例作出不同的选择,以达到适当的平衡。
Avail 使用了 Polkadot SDK 的 BABE 和 GRANDPA 两种共识机制。BABE 主要用于生成区块。为了确保网络的活跃性,它与验证节点协调,确定哪个节点将成为新的区块生产者。GRANDPA 则主要负责区块的最终确认。当超过三分之二的验证者确认一个链包含特定的区块时,GRANDPA 允许确认前面所有的区块到这个特定区块的区块。通过结合这两种机制,Avail 形成了一种混合型的账本,这增强了其网络的弹性,使其能够在网络临时分区(temporary network partitions)或有大量节点故障的情况下仍然正常运行。
Avail 的设计选择与 Ethereum 中使用的 Casper 和 LMD GHOST 相似。LMD GHOST 是 Ethereum 的区块生产引擎,它依赖于 BABE 那样的概率性的终结性,而像 GRANDPA 那样的 Casper FFG 是一个提供终结性保证的终结机制。
Celestia 使用 Tendermint 的设计选择使他们能够在生成时确定区块。然而,这样的选择的权衡是当超过三分之一的运营商或验证者停机时,链存在可能会被停止的风险。同样重要的是需要注意到区块的终结性并不保证数据的可用性。Celestia 采用了一种基于欺诈证明(fraud-proof)的设计。在这种设计中,即使一个区块已经迅速地获得了终结性(也就是已被确认并且不会被更改),用户仍然需要等待直到他们确信相关的数据是可用的。
数据可用性委员会(Data Availability Committees,简称 DAC)是一组负责确保数据可访问或验证数据可用性的组织或实体。当他们确认数据是可用的时,会使用特定的加密签名来表示这一确认。这意味着,当超过大多数的委员会成员同意某数据是可用的时候,他们会采用一个特殊的数字签名来证明这一事实。
EigenDA 是这样一个 DAC,它不直接存储在 Ethereum 的主链上,因此被称为“链下”(off-chain)DAC。Ethereum 网络中的验证者有选择加入 EigenDA 的权利。当 DAC 成员确认某些数据的可用性时,他们会提供一种基于智能合约的证明或声明。这种证明表明他们已经验证了数据的真实性或完整性。除此之外,为了确保数据的顺序或结构性,DAC 成员还依赖于一个外部的、独立的服务来对数据进行排序或组织。
去中心化
当考虑到网络的安全性时,有两个关键因素需要考虑:总的质押金额和这些质押的分布。去中心化的程度,也就是质押金额如何均匀分布,直接影响了一个网络的安全性。潜在攻击的成本被用来评估网络的安全性。这是因为,如果质押数额在更大的验证者集合中均匀分布,那么试图攻击网络的破坏者就需要说服更多的节点来获得同样的质押数额。
Avail 从 Polkadot 继承了提名权益证明(NPoS),这使得它能够支持多达 1, 000 个验证者。由于其采用顺序的 Phragmén 方法,一个多赢者的选举方法,NPoS 具有有效的奖励分配,可以减少质押中心化的风险。
Avail 在所有数据可用性的解决方案中是独特的,因为它有能力从其轻客户端的 P2P 网络中进行数据抽样,而不是像其他系统那样在网络出现问题或瓶颈时完全依赖于全节点来获取数据。这一特点让 Avail 与其他现有和即将推出的数据可用性解决方案产生区别。因为拥有这一特性,Avail 提供了一个高效且可靠的备份机制,即使在出现故障的情况下也能确保数据的可用性。这进一步增强了 Avail 数据可用性网络的稳定性和抗干扰能力。
Celestia 采用 Tendermint 作为其共识协议,验证者集合最多可达数百。
而 Ethereum 作为一个单一的区块链,以其超过 900, 000 的验证者节点作为安全性的黄金标准,但网络的分布程度在这个数字中并没有得到充分体现。
相比之下,DAC 会通常只包括少数几个负责确认区块链数据可用性的节点。
重要的是要注意,重新质押的过程并不是依赖于从 Ethereum 获得的安全性,它的安全性主要取决于在该平台上重新进行的 Ether 质押的总量。这也就是说,重新质押本身对于提高该平台的安全性并没有直接的帮助,只是利用了锁定在 Ethereum 上的一部分已有的质押。
EigenDA 从其全节点聚合签名。然而,它通过智能合约进行验证的声明,在与数据可用性抽样相比,不能提供同等级别的数据可用性(DA)保证。EigenLayer 采用了重新质押的策略,它使用了那些已经在 Ethereum 上被锁定的资金或资产来进行质押,以支持其自身的网络。但这种做法受到了一些批评,因为它可能会重复使用某些验证者并导致共识机制的过载。
执行环境的额外消耗
过去十年,带有智能合约功能的单一区块链引入了突破性的创新。然而,即使是这个时代的尖端技术,如 Ethereum,其中数据可用性、执行和结算被合并为一体,也带来了显著的可扩展性限制。这些限制促使了 Layer 2 技术的崛起,将执行转移到链下,并促进了如 EIP-4844 (也被称为 Proto-danksharding 和 Danksharding)这样的改进提议的发展。
神圣的智能合约定义了状态,并充当着到 rollups 的桥梁。在这种方法中,Ethereum 作为验证 rollups 准确性的权威和标准。
Avail 将执行和结算从基础层分离,并允许 rollups 直接向 Avail 发布数据。该模块化方法的优势在于,那些基于 Avail 的 rollups 可以利用 Avail 的 P2P 轻客户端网络来轻松地验证其状态。此外,如果这个网络被用于传递执行证明,那么 rollups 就有能力自行进行升级,而不必依赖于智能合约或基础层来定义其状态。这为 rollups 提供了更大的灵活性和自主性。这种新方法为开发者提供了一个可以根据需求进行扩展的基础层,给予他们选择任何执行支持层(supported layer)进行结算的桥接选项。
Celestia 采用了与 Avail 类似的方法。唯一的区别是其轻客户端尚不能在全节点宕机时支持网络。
EigenDA 也没有一个固定的结算层。
发展潜力
除了数据可用性(DA)层的安全性和韧性外,容纳在其上建设的 rollups 和区块链的增加需求的能力对它们的成功至关重要。让我们看一下需要考虑的一些关键因素。
有效性证明
当讨论有效性证明时,理解数据可用性层中欺诈证明和有效性证明的权衡是至关重要的。Avail 使用的 KZG 承诺是一种用于确保 DA 的有效性证明,它减少了内存、带宽和存储需求,并提供了简洁性,这意味着证明的大小不受多项式复杂性的影响而固定。这使 KZG 承诺成为基于零知识的区块链的理想选择,在这里效率、隐私和可扩展性都很重要。
此外,Avail 的轻客户端可以迅速访问和抽样数据,并确保正确的块编码,并在新块最终确定时提供数据可用性保证,而欺诈证明则需要等待挑战期结束。KZG 承诺和 Avail 的轻客户端的结合加速了在 Avail 上的验证过程,允许在其上建设的 rollups 或主权链利用其快速的验证过程,并为未来数年的区块链设计创造了可扩展性和灵活性。这种验证方法是 Avail 与类似于 Celestia 的 DA 层区别开来的关键因素。
Celestia 使用安全的哈希函数,这比 KZG 承诺生成要快得多。这里的权衡是他们必须依赖欺诈证明来确认擦除编码的准确性,这引入了确保数据可用性保证的潜在延迟。
Celestia 的轻节点不能明确确认数据是否可用,或者是否还有尚未接收到的欺诈证明。换句话说,欺诈证明的使用降低了网络的轻节点在抽样后明确确认数据可用性的能力,因为乐观验证的一部分需要一个必要的挑战期。
EigenDA 将使用 KZG 承诺并只下载少量数据,而不是完整的数据块,并采用有效性证明。他们的方法是使用擦除编码将数据分割成更小的块,并要求运营商只下载和存储一个块,这是完整数据块大小的一部分。
至于 Ethereum,虽然当前的版本并未使用有效性证明,但 EIP-4844 和完整的 Danksharding 在实施时将采用有效性证明。
扩展的能力
由于 Ethereum 上的限制,如昂贵的成本和慢速的交易,导致 L2s 的激增。它们已经成为 Ethereum 的执行层,推动对区块空间的需求增加。目前,将数据发布到 Ethereum 的成本估计占 rollups 总成本的 70% 到 90% 。这为在 Ethereum 上开发的验证者和应用带来额外的成本。
像 Avail 和 Celestia 这样的基础层旨在解决这个问题。它们针对数据可用性进行了优化,随着需求的增加有能力动态地扩展区块大小。通过结合轻客户端和数据可用性抽样(DAS),它们在应对其网络需求增加时有扩展数据可用性区块大小的优势。这意味着,随着区块空间的增加,建立在其上的应用仍然不受影响,因为这些网络内的轻客户端可以执行 DAS,而无需下载整个区块。这一独特的能力使它们与单一区块链区别开来。
到 2023 年 9 月为止,Ethereum 拥有最大的社区,市值为 1910 亿美元。虽然建立在 Ethereum 上的协议享受规模经济,但由于过去几年区块空间有限,它们也面临着昂贵的交易成本。在 rollups 的增长中,用户数量和交易量都已达到顶峰,rollups 已成为执行的最佳选择。随着区块链技术变得更加普及,对区块空间的需求将只会继续增加。
虽然 DACs 由于其简单的中心化方法可以扩展,一些 rollups 使用了 DACs 作为临时措施,直到它们设计出一个去中心化的 DA 解决方案。
数据可用性抽样
Avail 和 Celestia 都支持带有数据可用性抽样(DAS)的轻客户端,允许轻客户端提供最小信任的安全性。正如前面所提到的,主要的区别是如何进行验证,以及在出现中断或瓶颈的情况下,Avail 的轻客户端 P2P 网络如何替代完整节点以支持网络。
相比之下,经过 EIP-4844 后的 Ethereum 将不配备 DAS。这意味着它的轻客户端将没有这种升级的、最小信任的安全功能。更进一步,Ethereum 的 DA 解决方案包括其智能合约环境。在完全的 danksharding 中,将实施 DAS 来扩展 blob 空间,预计这将在未来的几年内实现。
EigenDA 的安全性建立在信任少数的完整节点或其他实体上,因为它没有数据可用性抽样(DAS)。协议的完整性依赖于委员会中的绝对多数是诚实的,以及至少还有一个实体拥有数据副本,类似于乐观构造。尽管双重法定数方法比单一法定数提高了安全性,但它仍未达到通过 DAS 进行独立验证的理想情况。
成本
与拥堵和需求相比,Ethereum 是最昂贵的解决方案。即使有了 EIP-4844 ,Ethereum 仍然会很昂贵,因为它只提供了一次性的区块空间增加。DACs 是最便宜的,但这是以采取更中心的方法为代价的。
由于没有执行层,Avail 和 Celestia 将能够保持低成本。他们还可以轻松增加区块空间,而今天的 Ethereum 在没有 DAS 的情况下是不能的。
至于 EigenDA,它表示将引入一个灵活的成本模型,既有可变费用也有固定费用,但其实际成本尚未公布。
性能亮点
现在我们已经检查了增长潜力,我们将看一下这些区块链的性能。
区块时间
请参阅上面的表格,查看每个所需的构建区块的时间。
仅通过构建区块所需的时间来衡量区块链的性能是单一的,因为这个指标只涉及从区块确认到验证完成的过程的某一个方面。即使有一个提供即时确定性的共识机制,当使用基于欺诈证明的方法时,DA 验证可能需要时间。
Ethereum 使用 Casper 每 64-95 个 slots 最终确定一个区块,这意味着 Ethereum 区块的确定性大约是 12-15 分钟。
EigenLayer 不是一个区块链,而是一组在 Ethereum 上运行的智能合约。这意味着它继承了与 Ethereum 相同的确定性时间。所以,如果用户向 rollup 发送一个交易,rollup 将需要将该交易的数据转发给 EigenLayer 以证明数据是可用的。然而,只有当 Ethereum 区块被最终确定时,交易才会被认为是完成的,即使 rollup 已经接受了交易,这也会导致延迟。通过提供更快的 DA 保证与加密经济措施来规避问题的方法已经在讨论中。
区块空间
随着 rollups 成为未来的执行层,对区块空间的需求将只会增加。像 Avail 和 Celestia 这样的 DA 层由于它们的模块化设计将能够满足需求,而 Ethereum 的区块空间增长将受到限制。Avail 的 Kate 测试网已将块大小配置为 2 MB,该块大小被复制并进行擦除编码成 4 MB。Avail 的独特之处在于其使用高效的客户端验证技术增加区块大小的能力。通过内部基准测试,Avail 已经测试了高达 128 MB 的区块大小,而没有困难。
Celestia 也能随着对区块空间的需求增加而增加区块大小,这得益于 DAS。
EigenDA 将通过解耦 DA 和共识、擦除编码和直接单播来扩展吞吐量。然而,这是以构建在顶部的 rollups 无法继承基础层的抗审查性为代价的。
总结
选择一个坚实的基础层来构建可能是具有挑战性的。我们希望这篇文章能帮助读者更多地了解不同设计选择的优缺点,并选择适合您的 DA 层。
要保持更新,请在 Twitter 上关注我们并订阅我们的新闻通讯。如果本文中提到的任何观点需要进一步澄清,请随时在 Avail 论坛上联系团队。
Avail Twitter:https://twitter.com/AvailProject
Newsletter:http://eepurl.com/it4xbs?ref=blog.availproject.org
Avail 论坛:https://forum.availproject.org/?ref=blog.availproject.org
原文链接:https://blog.availproject.org/a-guide-to-selecting-the-right-data-availability-layer/#consensus-mechanisms
编译:Modular 101
阅读更多: