来源:Avail
选择正确的数据可用性层是一个困难、混乱且耗时的过程,有很多事情需要考虑。在本指南中,我们将排除干扰,对 Avail DA、Celestia、EigenDA 和以太坊 EIP-4844 进行了对比,帮助您更轻松地做出决定。
1. 性能
1.1 数据吞吐量和可扩展性
在本节中,我们比较当前数据可用性吞吐量,并讨论不同的 DA 随着时间增加吞吐量的能力。
Avail DA
Avail 目前的吞吐量为每块 2MB。Avail DA 支持可扩展的区块空间,使吞吐量能够随着数据可用性容量需求的增加而增长。基准测试已成功将吞吐量提高到每块 128MB,比当前吞吐量提高了 64 倍,而不会牺牲网络活跃度或传播。
目标是在以太坊上实现每块 16MB 的吞吐量。
Celestia
Celestia 目前的吞吐量也非常接近每块 2MB(1,973,786 字节),并且可以通过链上治理增加到 8MB。当前实施的硬编码限制为每块 100MB,比今天的吞吐量水平高 50 倍。Celestia 支持可扩展的块空间,并表示未来的目标是实现 1GB 的块。
EigenDA
Eigen 对外公布的测试数据显示吞吐量为每秒 15MB。EigenDA 能够达到这一吞吐量水平,得益于其架构。与本文中的其他解决方案不同,EigenDA 是一个数据可用性委员会 (DAC),而不是经过公开验证的区块链。
DAC 避免了 Avail DA、Celestia 和 Ethereum 等更强大的基于区块链的解决方案所实现的一些验证要求。这使得 EigenDA 等 DAC 能够在引入信任假设的同时实现更高的吞吐量。这些内容在第 1.2、2.3、2.5 和 2.6 节中进行了更详细的讨论。
EigenDA 可以提高吞吐量,但由于它不是区块链,因此不适用于可扩展的区块空间。不过,它确实表示要将吞吐量提高到每秒 1GB。
以太坊 EIP-4844
在所有 DA 提供商中,以太坊的数据吞吐量最低。这说得通。因为对新数据可用性解决方案的需求本身就源于扩展以太坊的吞吐量。
随着原型 danksharding 的上线,增加以太坊 DA 容量的下一个重要里程碑是完整的 Danksharding。此次升级将使每个区块的 blob 数量从 6 个增加到 64 个,从而使每个区块的吞吐量达到约 8.2MB,并且比 EIP-4844 级别提高约 10 倍。预计此次升级仍需几年时间才能实施,最终目标是在以太坊上实现每个区块 16MB 的吞吐量。
1.2 区块时间和 DA 最终确认所需时间
虽然上一节探讨了 DA 吞吐能力,但在决定使用哪种数据可用性解决方案时,区块时间和最终确定 DA 保证所需的时间都是需要考虑的重要因素。这是因为一旦区块最终确定并不一定意味着 DA 保证最终确定。
DA 最终确认所需时间决定了系统内最终确定的速度,因为其他应用程序或用户只有在 DA 最终确认时间得到保证且不可逆转时才能充满信心地进入到下一步。提供 DA 保证所需的时间取决于 DA 层的实施方式,我们将在下面进行探讨。
Avail DA
Avail 的区块时间为 20 秒,区块在大约 2 个区块(即 40 秒)内完成。Avail DA 使用基于有效性证明的架构,使其能够在区块完成时提供 DA 最终确认。这也使得 Avail DA 最终确认时间约为 40 秒,比 Celestia 快 15 倍左右。
Celestia
Celestia 在 15 秒内创建并最终确定区块。但是由于 Celestia 的实施基于欺诈证明的架构,这意味着区块最终确定时间不取决于区块时间,而是取决于挑战期。一旦这个挑战期过去,且未提及有效的欺诈证明,Celestia 就可以提供 DA 最终确定时间,这一过程大约需要 10 分钟。
EigenDA
由于 EigenDA 并非基于自己的区块链,因此本节中的评估基于 EigenDA 智能合约在以太坊上完成的区块时间和结算时间。由于 EigenDA 是 DAC,因此无法让任何人公开验证数据是否确实可用。EigenDA 只能提供检查成员是否同意通过以太坊智能合约保留数据的功能。对于某些用例来说,这可能没问题,但是也有导致资产丢失或冻结的可能性。
运行 EigenDA 软件的数据可用性委员会成员承诺代表网络保持数据可用。当收到数据时,委员会会签署一条消息,表示他们已存储了数据。委员会成员的签名被收集在一起以创建证书,然后发送到以太坊上。这一过程大约 15 分钟内完成。
EigenDA 通过经济措施惩罚不当行为。而其他 DA 提供商,主要是通过可公开验证的数据可用性保障。
以太坊 EIP-4844
以太坊的平均出块时间为 12 秒,出块完成时间为 15 分钟。DA 保证在以太坊上与区块确认同时完成,也就是说以太坊在约 15 分钟内产生数据可用性保证。
2. 主要功能
2.1 数据可用性采样 (DAS)
数据可用性采样是数据可用性解决方案提供的一项非常强大的功能。它就像是区块链的一扇窗口,可以从低功耗设备(例如用户的手机甚至浏览器内)检查和验证 DA 保证。这种级别的终端用户验证可以构建一个网络,让遍布世界各地的用户可以随时独立检查重建区块链所需的数据是否可用。
其工作方式是系统将对随机数据块进行采样,检查数据是否可用,然后计算其余数据可用性的置信度分数。通过每次的连续采样,DAS 使系统能够提高其置信度。例如,在 Avail DA 上,8-30 个样本即可实现接近 100% 的置信度。
Avail DA 和 Celestia
Avail 和 Celestia 都支持从轻客户端进行数据可用性采样,这些客户端足够小,几乎可以在任何地方运行。这为终端用户提供了在手机应用程序中独立验证数据可用性的能力,无需下载整个区块。
Avail DA 和 Celestia 还利用 DAS 形成轻客户端的 P2P 网络,以帮助支持更大的区块。但是,Avail DA 是唯一能够从其 P2P 网络采样的 DA 层,从而增加了进一步的弹性。
以太坊和 EigenDA
以太坊的完整 Danksharding 路线图旨在支持 DAS。EigenDA 目前不支持 DAS,但将来可能会支持 DAS。
2.2 擦除编码
擦除编码是计算中广泛使用的一种数据保护技术。它首先制造副本并将其分成块,然后分散并存储在不同位置来增强数据的弹性。这样,如果某个数据块被损坏,那就没那么重要了,因为有多个数据副本存储在不同位置以重建整个数据集。擦除编码是帮助实现数据可用性采样的非常有用的组件。
目前, EIP-4844 阶段的以太坊不支持擦除编码。但按路线图,以太坊计划通过完整的 danksharding 来支持它。
2.3 去中心化网络
一般来说,对去中心化程度的要求可能取决于您所预期的用户场景。如果您希望获得数十亿美元的资金,那么网络去中心化将是一项非常优先的功能。但是,如果您想跟踪链上游戏中用户的动作,那么您可能不需要相同级别的去中心化。
在本节中,我们将根据支持的验证器节点数量和通过共识机制执行的规则来衡量去中心化程度。
Avail
Avail 区块链能够实现良好的网络去中心化,因为它使用了提名权益证明 (Nominated Proof-of-Stake,以下简称 NPoS)。NPoS 具有内置机制,可自动保证权益在验证者之间均匀分布。这避免了验证者集中化风险,并使任何人都更难操纵网络。NPoS 使用一种称为 Phragmén 选举算法的算法在验证者之间分配权益。Avail 区块链目前在主网上运行,其活跃验证者集预计将增长到 1,000 个。
Celestia
Celestia 的区块链也提供了良好的去中心化保证,但更容易受到验证者集中化风险的影响,因为它采用了委托权益证明 (DPoS) 系统。委托权益证明的设计是验证者权益越高,他们获得的代币就越多,从而导致权益和投票权集中在少数验证者节点上。在 Celestia 等新兴的基于 DPoS 的区块链中,这种情况更加严重。Celestia 目前有 100 名验证者。
EigenDA
EigenDA 的去中心化特性较弱。在 EigenDA 的数据可用性委员会中,运营商组成了一个值得信赖的委员会,承诺提供交易数据。但是,最终用户和应用程序无法独立验证这一点。他们唯一的权限是削减风险形成的经济保证。EigenDA 架构目前还有一个中心化组件,它扮演着非常重要的角色,称为分散器(disperser)。
以太坊
以太坊实现了最高的去中心化,拥有超过 100 万验证者。但是随着以太坊采用委托权益证明 (DPoS),这事实上引入了验证者中心化风险,随着流动性质押提供商和管理大量总质押的中心化交易所的引入,这种风险变得更加突出。
2.4 全节点依赖性
从历史上看,运行区块链全节点是独立验证区块链状态正确性的唯一方法。这使得全球共识成为可能。然而,随着时间的推移,区块链变得越来越大,任何人简单地运行一个全节点都变得越来越困难。
Avail DA 和 Celestia
Avail DA 和 Celestia 都对传统的轻客户端架构进行了重大改进,使轻客户端能够独立检查和验证数据是否可用。这减少了对全节点作为事实来源的依赖,因为轻客户端可以自己验证数据是否可用。运行轻客户端的计算要求极低,这意味着用户可以在应用程序、笔记本电脑、手机或其他低功耗设备上验证 DA 保证。
以太坊
以太坊对全节点的依赖性很高。虽然以太坊中存在轻客户端,但它们完全依赖于全节点,因为它们无法在不依赖全节点的情况下验证数据是否可用。
2.5 证明机制
证明用于高效验证系统中数据是否可用。这会大大减少了生成数据可用性保证所需的资源。
有效性证明需要付出更多努力才能生成,但验证起来又快又有效。Avail DA、EigenDA 和以太坊都使用 KZG 承诺和有效性证明,但它们的使用方式不同。
Avail
Avail 验证器在向 Avail 区块链添加新区块时会为每个区块生成一个 KZG 承诺。一旦达到 DA 最终确定性,轻客户端就可以通过数据可用性采样来验证这些 KZG 承诺。这是一个独特而强大的组合,特别是对于 ZK Rollup。这是因为执行证明和 DA 证明都可以从手持设备非常快速地验证,无需挑战期。
Celestia
Celestia 是本次对比的 DA 中唯一使用欺诈证明的数据可用性层。这种方法采取了更乐观的观点,假设数据有效且可用 ( 除非欺诈证明另有证明 )。Celestia 使用安全哈希函数,其生成速度比 KZG 承诺更快,但在向应用程序和用户提供数据可用性保证之前,需要经过挑战期。
EigenDA
在 EigenDA 中,分散器收集数据块并将其发送到运行节点。Rollup 可以运行自己的分散器或使用分散器服务。分散器目前是 Eigen 架构的中心化组件。分散器还会生成 KZG 承诺并将其与数据块一起发送到运行节点。当运行节点从分散器收到数据块时,它们会验证 KZG 承诺,然后签署并向数据可用性委员会返回证明。
以太坊
在以太坊中,数据块被提交,并且针对所提交的数据生成 KZG 承诺。当需要检查数据是否可用时,EVM 会检查 KZG 承诺的版本哈希以验证数据是否可用。以太坊尚不支持数据可用性采样,但打算将其作为完整 Danksharding 路线图的一部分。KZG 承诺在实现 DAS 方面发挥着关键作用。
2.6 共识机制
达成共识是区块链得以持续运行和生成新区块的关键。在共识机制设计方面,实现活跃度和安全性之间存在一个基本决定。活跃度确保交易持续得到处理,网络保持运行,而安全性确保交易准确且安全。
本文所提到的所有数据可用性层都使用不同的共识机制,但存在一些相似之处和不同之处,我们将在下面讨论。
Avail DA 和以太坊
虽然 Avail 和以太坊使用的共识机制不同,但它们确实有一些相似之处。两者都将生成区块和最终确定区块的角色分开。
生成区块可以保持活跃,并使交易能够继续进行。最终确定区块是所有节点同意特定区块并将其提交到区块链的过程。
这种设计选择为网络增加了一些弹性,使其能够在验证器节点之间最终确定共识时继续运行。
Celestia
Celestia 使用 Tendermint 作为其共识协议,该协议具有单槽终结性。这意味着一旦达成共识,区块就会被终结,这通常需要 15 秒左右。基于 Tendermint 的链的缺点是,当超过三分之一的操作员或验证器发生故障时,它们可能会停止。
EigenDA
EigenDA 运营方集体组成一个受信任的数据可用性委员会,这是一组证明数据可用的节点。最终用户和应用程序无法独立验证这一点。
结论
我们希望本指南能帮助您更轻松地决定选择哪个 DA 层。如果您想改进或更新本文中的任何信息,请通过论坛与我们联系。