该文章深入探讨数据可用性(DA)解决方案,特别是为支持扩展系统(如rollups)而设计的解决方案,包括以太坊的基础层、Celestia、EigenDA、Avail和NearDA等。文章详细介绍了每个解决方案的技术架构及其在提升交易数据存储和可用性方面的作用,为区块链扩展提供支撑。同时强调了DA在确保rollup和区块链扩展性中的关键角色。
这篇关于数据可用性系列的最后部分讨论了各种数据可用性(DA)解决方案,旨在提供高度可用和防篡改的交易数据存储,以支持像 Rollups 这样的扩展系统。这些解决方案包括:
以太坊的基础层,正在不断发展,通过加快区块时间、升级共识机制和提出分片的提案来为 Rollups 提供更好的 DA。然而,它在延迟和存储容量上面临限制。
Celestia,一个应用专用的模块化区块链,使用先进的加密技术,如擦除编码(erasure coding)和数据可用性抽样(data availability sampling),以快速且安全地提供为 Rollups 量身定制的 DA。
EigenDA,一个建立在以太坊之上的 DA 层,利用独特的“分散器”模型和重质押机制,分散并提供数据可用性,同时利用以太坊的安全性。提供潜在的无限水平扩展能力。
Avail,利用像分片、并行化和加密承诺等技术,原生提供快速、安全和高度可扩展的 DA,具有欺诈证明(fraud proofs)和跨分片交易的特性。针对 Rollup 网络量身定制的 DA 基础。
NearDA,利用 NEAR 的基础设施,提供可靠且超低成本的 DA。具有 Blob 存储、轻客户端和 RPC 客户端等专用组件,简化了开发人员的集成过程。
这些解决方案强调了 DA 在实现 Rollup 和区块链扩展上的关键作用,同时展示了从模块化区块链到以太坊之上的 DA 层的多样化架构。
我们已对每个 DA 层进行了深入探讨。从它们的技术架构到理解每个 DA 层内的交易生命周期。
从根本上讲,数据可用性关注的是确保交易数据可供节点验证和确认区块链状态。这在去中心化系统中尤为重要,其中信任分散于各个参与者之间。缺乏适当的数据可用性,区块链可能面临安全风险,包括潜在的欺诈交易不被察觉。
Rollups 是第二层扩展解决方案,依赖于以太坊的数据可用性(区块空间)来发布交易数据和状态承诺。基本的 Rollup 工作流程包括将数百个交易在链下捆绑成一个 Rollup 区块,并将该区块的紧凑加密证明发布到第一层。
Rollup 的基本工作流程涉及将交易捆绑成一个 Rollup 区块,然后将加密证明发布至以太坊,可以分解为几个关键步骤:
链下交易聚合
用户将交易提交至 Rollup 节点。
Rollup 节点将交易聚合成一个区块,在链下处理。
生成加密证明
Rollup 节点执行区块内的所有交易。
执行后,节点更新 Rollup 的状态,以反映新的余额和数据。
Rollup 节点生成加密证明,包括新的状态根和一个 Merkle 证明。
发布到以太坊
加密证明以及必要的数据被发布到以太坊。
以太坊节点验证加密证明,以确保状态迁移的有效性。
最终确认
一旦验证通过,区块的状态更新将在以太坊上最终确认。
Rollup 过程重复,Rollup 节点开始聚合下一组交易。
参与者:上图包含三个主要参与者:
用户,
Rollup 节点,以及
以太坊(代表以太坊区块链)。
流程:行动顺序从用户将交易提交给 Rollup 节点开始,节点然后聚合、执行并更新其状态。Rollup 节点生成加密证明并将其发布到以太坊,待确认。
延续性:该过程是循环的,Rollup 节点在每次区块最终确认后不断聚合新的交易。
这个工作流程使 Rollup 能够在链下处理大量交易,从而减轻以太坊主链的负担。通过仅将紧凑的加密证明发布到以太坊,Rollup 在显著提高可扩展性和效率的同时保持安全性和去中心化。这一方法是以太坊扩展策略的基础,能够实现更高的交易吞吐量和更低的网络费用。
现在,这个加密证明包含了如交易执行后更新的状态根以及一个用于验证交易包含的 Merkle 证明等关键信息。然而,实际的交易数据在数量级上要比证明大得多。巨大的交易“调用数据”(calldata)必须在某处可用,以便验证 Rollup 区块的有效性。 ( 我们在本系列的第一部分中讨论了 Rollup 使用的证明类型:欺诈证明和有效性证明)
这就是 Layer 1 的高可用性和可扩展性数据至关重要的地方。Rollup 必须将大量交易“调用数据”发布到某个所有验证者都可以访问的地方。去中心化的 Layer 1 链充当信任无误和防篡改的“调用数据”存储,验证者可以从中检索数据以验证 Rollup 证明。
如果没有可扩展的数据可用性层,Rollup 无法支持高交易吞吐量。如果发布调用数据成为瓶颈,即使 Rollup 层理论上可以处理更高吞吐量,Rollup 也无法处理更多交易。实际上,数据可用性层的可扩展性限制了 Rollup 可以达到的最大 TPS。
可扩展的数据可用性层还助于去中心化。它允许较小的验证者参与 Rollup 验证,而无需自己存储大量数据。可用性抽样使节点能够通过仅访问部分数据来验证正确性,从而减少单个节点的硬件要求。
随着以太坊 2.0 的出现和像 Rollups 这样的 L2 的使用增加,数据可用性已成为一个焦点。Rollup 在主以太坊链(第一层或 L1)之外处理交易,然后将数据再发布回去,极度依赖强大的 DA 机制。确保来自这些 L2 解决方案的数据可用和可验证是维持整个以太坊网络完整性和安全性的关键。
正如我们在本系列第二部分中提到的,DA 问题是大多数 Rollup 面临的一个严重问题。但在深入探讨我们在前一篇文章中提到的高级 DA 解决方案之前,有必要在 Rollup 和 L1 生态系统的背景下对交易数据(通常称为“调用数据”)和加密证明进行比较,因为这在数据管理和可扩展性方面至关重要。
让我们简要深入每个组件:
交易数据的性质:
内容:交易数据通常包括在区块链上执行和记录交易所需的所有详细信息。这包括发件人和收件人地址、交易金额、智能合约指令和执行交易所需的任何附加数据。
大小:此数据的大小取决于交易的复杂性。对于简单交易而言,数据可能较小,但对于复杂交易,尤其是涉及智能合约的交易,数据大小可能会显著增加。如你所見,以下图表中显示的每种可扩展性解决方案的数据需求各不相同。
处理交易数据的挑战:
卷:在繁忙的区块链网络中,交易数据的卷可能是巨大的,这对存储和处理构成挑战。
带宽:传输大量交易数据需要相当大的带宽,这可能是网络吞吐量的限制因素。
存储:存储大量交易数据需要巨大的存储容量,从而影响运行完整节点的成本和效率。
去中心化:对大量存储和带宽的需求可能导致中心化,因为较少的参与者能够承担运行完整节点所需的资源。
加密证明的性质:
在 Rollup 的背景下,加密证明通常包括一个状态根和一个 Merkle 证明。状态根是一个单一的哈希值,代表交易处理后的账本整体状态。而 Merkle 证明则允许在不需要整个交易数据情况下验证单个交易。
这些证明的体积显著小于完整的交易数据。它们旨在简洁而又足以让验证者验证交易的正确性。
使用加密证明的优势:
效率:由于其体积较小,加密证明可以比完整交易数据更快速和高效地进行传输和处理。
可扩展性:它们使区块链网络具有更大的可扩展性,因为它们需要更少的带宽和存储。
安全性:尽管体积小,加密证明提供高度的安全性,确保交易的完整性得以维护。
主要的对比在于大小及其带来的效率。交易数据庞大且繁琐,影响网络性能和可扩展性。加密证明较小,更高效地处理。
交易数据是区块链操作的原材料,代表实际待记录的活动。而加密证明更多是用于验证和确保完整性,而无需处理完整数据。
虽然交易数据对于在区块链上实际执行和记录活动至关重要,但其大小在数据管理和网络可扩展性方面带来了重大挑战。另一方面,加密证明为这些挑战提供了解决方案,通过无须完整数据即可高效验证交易,从而增强可扩展性、效率,以及区块链网络更大的去中心化潜力。
现在,让我们深入探讨高级 DA 解决方案:
以太坊
Celestia
Avail
EigenDA
NearDA。
以太坊是领先的智能合约 L1 平台之一,成为去中心化金融和去中心化应用的基础。然而,可扩展性一直是以太坊面临的持续挑战。其 15 TPS 的吞吐量不足以满足不断增长的生态系统需求。这导致了像 Rollups 这样的第二层扩展解决方案的出现,这些解决方案依赖于以太坊的安全性,同时绕过其可扩展性的限制。
但是,Rollups 为了有效地工作,需要以太坊提供高度可用和去中心化的交易调用数据存储。以太坊正朝着多个方向发展,以满足 Rollups 的数据需求。让我们分析一些关键进展:
区块时间和交易处理
以太坊当前每个 ~13 秒产生一个区块。缩短区块时间可以改善交易处理,但以太坊更注重安全性而非更快的区块时间。即将到来的上海升级将使以太坊从工作量证明转向权益证明共识,这将改善安全保证。
在上海升级后,目标是在 ~12 秒的区块时间内达到良好的吞吐量和安全性平衡。~12-15 秒的区块时间范围正在成为许多数据可用性层的优选区域。
最终确认与共识算法
以太坊采用混合共识模型。区块生成使用 GHOST 协议,快速实现概率最终性。Casper 最终性工具通过每 50 个槽(约 6.25 分钟)检查点区块,提供经济最终性。
尽管从 POW 的角度来看快速,但 6.25 分钟的最终性可能会在结算 Rollup 交易时造成显著延误。但随着关于选择分叉和 pivots 的持续研究,Casper 最终性可能会持续改善,以提供更快速的不可逆性。
数据可用性的方法
以太坊正在采取多管齐下的战略来解决 Rollups 的可扩展数据可用性问题——将数据分片与执行分片并行部署,利用 L2 系统(如 Filecoin)进行数据存储,以及如提案者与建造者分离(proposer-builder separation)等方法。
EIP-4844 通过 Blob 交易引入区块大小增加和更好的调用数据组织。这为未来 Rollup 的大规模采用铺平了道路,而长期的分片研发仍在继续。
Celestia 是一个专为 Rollups 优化的应用专用数据可用性区块链。其分片架构使用 Tendermint 共识实现快速的最终性和高可扩展性。让我们分析 Celestia 的设计:
区块时间和交易处理
最终性与共识算法
数据可用性抽样
Celestia 特别设计为一个高效的、可扩展的数据可用性层,以支持 Rollups 的需求。通过优化基础层以满足 Rollup 的要求,Celestia 能够提供比更通用区块链更快的最终性和更高的吞吐量。
Celestia 专注于两个关键功能:
将交易排入区块并
确保其数据可供任何人下载和验证。
这种将执行与数据可用性共识分离的方法,使 Celestia 实现动态扩展,网络容量随着用户数量的增加而增加,并支持多种虚拟执行环境,赋予开发者对其应用更大的灵活性和主权。
Celestia 的架构基于数据可用性抽样的概念,这是一种技术,使节点能够在不完全下载大数据块的情况下,概率性验证其可用性。
Celestia 的技术架构代表了区块链设计的重要演变,强调了模块化和可扩展性。Celestia 在其核心引入了一种新颖的方法来处理和分发数据。
让我们更深入探讨技术细节:
Celestia 架构的基础原则是其模块化设计,将区块链的传统功能解耦为多个独立层。该架构主要由两个组件组成:
一个共识层和
一个数据可用性层。
与传统区块链不同,在传统区块链中,共识、数据可用性和执行紧密集成,Celestia 专注于前两个,执行则由其他层或系统独立处理。这种分离使每个层能够实现更大的专业化和优化。
Celestia 的共识层基于 Tendermint 共识协议,因其高效性、快速最终性和对各种网络故障的鲁棒性而闻名。Tendermint 是一种拜占庭容错(BFT)协议,使得验证者网络能够以去中心化的方式就区块链的状态达成一致。在 Celestia 中,这个共识层的主要职责是将交易排入区块并就应包含在区块中的数据达成一致。然而,它明显与传统的共识模型有所不同的是,它不关心交易的执行或有效性,而是保证数据的可用性。
Celestia 架构中的一个关键创新是数据可用性抽样,该主题我们在本系列的第二部分中详细讨论过。DAS 使轻客户端能够概率性地验证网络中一整个区块的数据可用性,而无需下载整个区块。通过使用加密技术,将区块数据分为小块,客户端仅审核这些小块的随机样本即可。通过确认这些样本的可用性,客户端可以高确认地推断该区块的完整数据在网络中是可用的,从而确保在必要时能够重建该区块。
擦除编码是 Celestia 数据可用性机制的另一个关键组件。它通过将一段数据转变为较长的冗余形式实现,从中即便部分冗余数据丢失或不可用,原始数据仍然可以恢复。
在 Celestia 中,区块在分发到网络之前通过擦除编码进行编码。这意味着,即使网络中某些节点不持有整个区块数据,集体网络所持有的部分仍可以重建整个区块。这个冗余对于保持区块链的完整性,并防止数据抑制攻击至关重要,此类攻击中,恶意参与者可能试图让一个区块无法访问。
在 Celestia 中,验证者负责生成区块并参与共识过程。这些区块在达成共识后将在网络中分发。轻客户端即使无法存储整个区块链,也仍可通过执行数据可用性检查使用 DAS 实现有效参与。此特性显著提升了网络的可扩展性和包容性,减少了参与所需的硬件要求。
Celestia 将执行从共识和数据可用性中解耦,这意味着它不规定交易应该如何执行或状态过渡应该如何发生。这为执行层的创新开辟了可能的空间,因为不同的系统可以利用 Celestia 作为基础,同时实现各自独特的执行逻辑。这可能涵盖从独立区块链到基于以太坊的 Rollups,各自受益于 Celestia 强大的数据可用性和共识机制,同时保留对其执行环境的控制。
用户发送 PayForBlobs 交易以使数据可用。该交易包含:
发送者的身份:识别发送交易的用户。
数据(消息):用户希望使其可用的实际数据。
数据大小:将要使其可用的数据大小。
命名空间:对数据进行分类的唯一标识符,对于 Celestia 的命名空间系统至关重要。
签名:用于验证交易真实性的加密签名。
区块生产者将多个 PayForBlobs 交易聚合成一个区块。
在 proposing 区块前,生产者将每个交易拆分为:
命名空间消息 - 包含实际数据(消息)和命名空间 ID
可执行交易 - 包含对数据的承诺,但未包含实际数据。
区块数据现在包括:
区块数据包括 命名空间数据 和 可执行交易。
只有可执行交易在区块提交后由 Celestia 状态机处理。
区块生产者向区块头添加一个承诺,代表整个区块数据。这是通过以下步骤计算的:
将交易和消息拆分成相等大小的份额。
按行将份额排列为一个方阵矩阵。
使用 Reed-Solomon 编码扩展到更大的方阵矩阵。
计算每一行和列的承诺。
最终承诺是包含所有行/列承诺为叶子的 Merkle 树的根。
轻节点连接到验证者节点以接收区块头并执行数据可用性抽样(DAS):
请求从扩展矩阵中获取随机数据块。
确保他们能检索到所请求的块,并通过 Merkle 证明进行验证。
如果抽样成功,他们接受该区块为数据可用。
如果抽样失败,轻节点会拒绝区块,并在稍后重试,以处理网络问题导致的错误否定。
诸如样本数量等参数需经过调整,以减少因数据抑制造成的假阳性。
假负面:有时,合法的区块头可能由于网络问题而被拒绝。在这种情况下,重试是必要的。
假阳性:轻节点有小概率接受一个区块头,即使数据不可用。然而,假阳性发生的概率相当低,确保区块生产者没有动机去抑制数据。
验证者节点在区块提交后执行交易,更新应用程序状态。
在 Celestia 中,交易的生命周期围绕确保数据可用性和完整性展开,经过用户发起交易、区块生产者处理、数据承诺以及轻节点使用数据可用性抽样进行严格检查的复杂过程。这个系统确保了数据可用且可验证,同时减少了节点的处理负担,提高了可扩展性和安全性。
Celestia 的技术架构以其模块化设计、基于 Tendermint 的共识、创新的 DAS 和擦除编码以及执行层独立性,使其在区块链领域成为一项开创性解决方案。它的方法解决了区块链技术中一些最紧迫的挑战,即可扩展性、数据可用性和网络参与的包容性,使其成为去中心化网络演进中的关键发展。
与基础区块链不同,EigenLayer 直接在以太坊Layer2提供数据可用性。它由一组智能合约组成,以太坊允许 Rollups 在链上发布交易数据并生成可用性证明。
与以太坊的关系
共识与最终性
数据可用性抽样
核心概念:
重质押原语:
在 EigenLayer 生态系统中的角色:
可扩展性和安全性:
Rollup 排序器:
Rollup 排序器负责在 Rollup 环境中创建包含交易的区块。它作为数据聚合的起始点。
一旦交易聚合成一个区块,排序器就通过与 EigenDA 网络交互开始使数据可用的过程。
分散器:
分散器在准备数据以便在 EigenDA 网络中分发时起着主要作用。这包括几个关键操作:
数据块(聚合的交易数据)使用擦除编码技术编码成块。此编码确保数据冗余和可恢复性,增强数据可用性过程的可靠性。
分散器为编码数据生成 KZG(Kate-Zaverucha-Goldberg)承诺。这些承诺作为数据完整性和完整性的加密证明。
除了承诺外,分散器还生成多揭示证明。这些证明稍后由 EigenDA 节点用于验证它们接收的数据块的真实性和完整性。
EigenDA 节点:
在接收数据块及其相应的 KZG 承诺和证明后,EigenDA 节点执行验证,确保数据的完整性。成功验证后,它们将存储数据块。
验证后,这些节点生成签名并将其返回给分散器。这些签名汇集起来,确认数据已成功分发,并在 EigenDA 网络中可用。
Rollup 交互:
Rollups 可以自己运行他们的分散器,也可以利用第三方分散服务。这种灵活性允许在某些情况下实现成本和效率优化,特别是在第三方服务更高效或经济的时候。
Rollups 保持转向自己分散器的能力,确保他们不会依赖单一样品服务,这对于保持抵制审查至关重要。
以太坊重质押原语:
重质押机制允许以太坊验证者对其资产(如 ETH 或质押衍生品)进行质押,以保护 EigenDA 网络。这种方法将以太坊的安全模型扩展到 EigenDA。
验证者通过参与 EigenDA 网络获得服务支付的奖励。但他们也面临更多的风险,包括如果未能履行数据可用性责任,可能导致的惩罚(slashing)。
数据可用性抽样(DAS):
轻节点参与:EigenDA 网络中的轻节点参与 DAS 以确保数据可用性。它们从扩展矩阵中请求随机数据块,并使用提供的 Merkle 证明对其进行验证。
区块头验证:成功抽样和验证数据块使轻节点能够验证区块头具有可用数据。
处理假阳性和假负面问题:
基于 L2IV 的内部研究的简化说明
上述过程确保数据不仅被可用,且可由网络中的不同参与者验证,从而维护系统的完整性和可靠性。分散的验证节点网络和签名的聚合是实现 EigenDA 框架中去中心化和安全数据可用性的关键。
数据可用性成本降低:当前使用以太坊作为其 DA 层的 Rollups 面临高且波动的成本,这主要是由于有限的区块空间和拥堵定价。EigenDA 力求显著降低这些成本,为 Rollups 提供更可预测的成本结构。
成本维度:
资本成本:质押资本有机会成本。通过利用 EigenLayer 的共享安全模型,EigenDA 最大限度减少了这一点,使同一笔股本能在多个应用中使用,从而实现规模经济。
运营成本:EigenDA 省去节点下载和存储所有数据的需求,通过擦除编码将数据分割为较小的部分,减少个别节点上的存储负担,使系统更加轻量化。
拥堵成本:EigenDA 力求通过提供更高的吞吐量和允许带宽预留来减少拥堵成本,为预留的吞吐量提供折扣价。
水平扩展:EigenDA 旨在进行水平扩展,这意味着随着更多操作员加入网络,网络的吞吐能力也会增加。EigenLayer 进行的测试表明,EigenDA 能展示高达 10 MBps 的吞吐能力,并有计划扩展至 1 GBps。
EigenDA 通过以下措施实现目标:
解耦数据可用性和共识:将数据证明(可并行化)与数据排序(需要串行化)分开,从而增强吞吐量并降低延迟。
使用擦除编码:这允许 Rollups 在存储数据之前先将其分解并编码为较小块,从而减少每个节点必须处理的数据量。
直接单播(Unicast)数据分散:EigenDA 不依赖点对点网络,而是侧重于数据分发的直接通信,从而加快数据承诺时间,消除与传播协议相关的延迟。
EigenDA 的架构以其重质押的独特分散器模型、与以太坊生态系统的集成、以及一组用于验证和存储的 EigenDA 节点而闻名。该架构确保高吞吐量和去中心化的数据可用性,使其成为以太坊上像 Rollups 这样的可扩展性解决方案的关键组成部分。这在区块链数据可用性解决方案中代表了一项重大进步,利用现有的以太坊安全机制,同时提供可扩展和高效的服务。
Avail 从根本上旨在作为一个基础层区块链,专注于确保数据可用性。这一重点在扩展区块链网络和支持先进的、减少信任的应用中至关重要。Avail 针对现代去中心化应用的需求而量身定制,包括自主 Rollups。
图 2:今天,Avail 独立于 Polygon
区块时间和交易处理:Avail 使用稍长的 20 秒区块时间,但通过使用如跨分片事务的分片技术实现高达数千的 TPS。快速的区块时间结合跨分片事务使得 Avail 在吞吐量方面实现高度优化。
最终性与共识算法:Avail 将 BABE 快速区块生成与 GRANDPA 的跨分片共识结合在一起。GRANDPA 在 1-2 秒内确认区块,提供快速的最终性,可与 Celestia 相媲美。如此快速的最终性解锁了 Rollups 在几秒钟内结算交易的能力。
数据可用性抽样:Avail 集成了数据可用性抽样,使节点要求保持低,仅需要一部分数据来进行可用性验证。擦除编码和有效性证明将用于有效编码数据并启用抽样。
Avail 的架构旨在优化每个组件的效率和有效性。
基于 L2IV 的内部研究
DA 层负责摄取和排序交易数据。它作为 Avail 系统的基础层。
与传统区块链层不同,DA 层不参与执行交易。其首要关注点是存储数据并确保其可用性。
通过仅关注数据托管和排序,DA 层解决了传统区块链中常见的瓶颈问题,即每个完整节点都需要执行交易。
这种专业化有助于可扩展性和效率,因为 DA 层可以针对数据存储和可用性进行优化,而无需处理事务执行的开销。
Exec 层与 DA 层接口以访问已排序的交易。
它处理这些交易并生成诸如检查点、断言或证明等重要输出。这些输出对于维持区块链的完整性和状态至关重要。
生成的检查点或证明被提交到验证/争议解决层(DR 层)。这一层作为安全锚,验证 Exec 层完成的工作。
DR 层是 Avail 生态系统的裁决组件。
它验证 Exec 层提交的检查点或证明,确保仅接受有效状态过渡并将其集成到网络中。
完整节点:
验证者节点:
验证者节点在 Avail 的共识机制中是颇为重要的。它们负责区块生成、交易包含和维持顺序。
这些节点因参与共识过程而获得激励,对 DA 层的正常运作至关重要。
轻客户端:
轻客户端使用有限的资源,并主要依赖区块头进行网络参与。
它们可以请求完整节点的特定交易数据,促进网络的去中心化和可访问性。
提名权益证明(NPoS):
Avail 采用 NPoS 共识模型,因其可扩展性和能效而著称。
它利用 Substrate 的 BABE/GRANDPA 共识框架,将快速区块生成(BABE)与可证明的最终性(GRANDPA)结合。这种组合确保了网络内高效和安全的共识。
Avail 的架构展现了清晰的关注点分离,每一层关注一组特定的功能。这种模块化的方法能够提升更大的可扩展性和效率,因为每一层能够优化其相应任务,而不受不相关流程的影响。
它的架构结合了擦除编码、KZG 多项式承诺及数据可用性抽样(DAS),以确保强有力的数据可用性保证。
基于 L2IV 的内部研究
交易提交
数据扩展和擦除编码
过程:Avail 接收到的交易经过擦除编码,这是一种向原始数据添加冗余的方法。该冗余对于增强数据的可靠性和完整性至关重要。
实施:数据被分割为 'n' 个原始块并扩展到 '2n'。这使得可以利用任何 'n' 个块重建原始数据。这些块被排列在一个 'n × m' 矩阵中,并随后增加冗余。
承诺创建
KZG 多项式承诺:Avail 对每个区块应用这些承诺,作为数据完整性的加密证明。
编码 Merkle 树(CMT):区块通过 CMT 表示,根被包含在区块头中。这使得客户端能够高效验证数据,支持常量大小的承诺和以对数大小的欺诈证明。
区块传播
轻客户端网络与 DAS
完整节点:它们利用 KZG 承诺重建完整的数据进行验证或在出现差异时创建欺诈证明。
证明验证
单元级证明:轻客户端从数据矩阵生成这些证明,使其能够高效且独立地验证区块链的状态。
去中心化验证:这种方法确保了去中心化和安全的验证过程,这对 Avail 生态系统的完整性至关重要。
Avail 通过结合先进的加密技术和模块化的网络架构,确保解决了可扩展性和数据可用性的问题。 Avail的KZG承诺方案
让我们深入了解其关键特性:有效性证明和数据可用性抽样(DAS)。
KZG承诺的使用:
KZG(Kate-Zaverucha-Goldberg)承诺是一种用于Avail的加密承诺。它们特别适合用于零知识(ZK)证明,这是一种加密方法,允许一方向另一方证明一个陈述是真的,而不透露任何超出该陈述本身有效性的信息。
KZG承诺在内存和带宽使用方面是高效的。这种效率对于区块链至关重要,尤其是基于ZK证明的区块链,因为它减少了验证交易数据时的计算负担和存储要求。
对于优先考虑隐私和效率的基于ZK的区块链而言,Avail使用KZG承诺增强了其安全快速处理交易的能力,使得Avail成为这些类型区块链的兼容和支持基础层。
轻客户端的可访问性和速度:
快速数据访问和抽样:Avail的轻客户端设计用于快速访问和抽样区块链数据。这一能力很重要,因为它允许快速验证数据可用性,相较于依赖欺诈证明的系统,这一过程更为迅速。
相较于基于欺诈证明系统的优势:基于欺诈证明的系统通常需要等待一段时间,以便处理对交易有效性的潜在挑战。相比之下,Avail通过KZG承诺和高效的轻客户端操作加速了验证过程,提高了网络的整体效率。
Avail中的DAS使轻客户端能够以低信任的方式验证数据的可用性。这意味着它们可以独立确认所需数据的可用性,而无需依赖网络的全节点或中央权威。此特性尤其值得注意,因为它使Avail与像以太坊这样的网络区分开来,当前阶段的以太坊并未为轻客户端提供DAS。这一能力增强了Avail网络的去中心化和安全性,因为它使更多的参与者能够积极且独立地验证数据可用性。
Avail的数据无关性和对各种执行环境的支持进一步强调了其作为DA层的基础层的潜力。
NEAR的数据可用性(DA)层,被称为NearDA,为以太坊的Rollup和开发者提供了一种变革性解决方案,提供一个成本效益高且可靠的数据托管平台。它旨在提高区块链应用程序的效率和安全性,同时显著降低运营成本。
成本效益:NearDA的一大亮点是其相较于以太坊L1的低成本。例如,100kB的调用数据在NEAR上的费用大约为$0.0033,而在以太坊L1上则约为$26.22,使得NearDA便宜约8000倍。
可靠性和安全性:NearDA利用NEAR强大的L1基础设施,在过去三年中提供100%的运行时间,为以太坊Rollup和应用链开发者提供了一个高度可靠和安全的平台。
多功能性和采用:通过为以太坊Rollup提供DA层,NearDA突显了NEAR技术的多功能性,并支持广泛的Web3项目,助力开放网络技术的广泛采用。
NearDA旨在提供一个具有成本效益的数据可用性解决方案,由三个主要组件组成,这些组件协同工作以提高区块链应用程序的整体效率和可靠性。这些组件在NearDA生态系统中扮演着关键角色:
1. Blob Store Contract
Blob Store Contract作为NearDA内的专用存储设施,用于任意数据块。主要这些块是来自Rollup的排序数据,但该合约可以容纳各种类型的数据。
NEAR的状态存储在经济上是高效的,使得以相对低的成本存储大量数据成为可能。
数据处理机制:
在区块链状态中不存储Blob数据:为了进一步减少存储成本,Blob Store Contract不在区块链状态中存储实际的块数据。相反,它利用关于数据验证的收据共识。
收据处理和剪除:当片段生产者处理一个收据时,就达成了对该收据的共识。在块中处理并包含该片段后,该收据对共识目的变得冗余,可以在经过至少三个NEAR纪元后被剪除。
档案节点和索引器的角色:在剪除后,档案节点会保留交易数据更长时间。索引器也在存储数据和提供访问上发挥重要作用。
Blob Store Contract利用一种简化却有效的方法来创建块承诺。这涉及将块划分为256字节的片段,从这些片段形成Merkle树,并使用Merkle根作为承诺。承诺随后附加到交易ID并存储在合约中。
2. 轻客户端
NearDA的轻客户端是一个链外的、无信任的实体,配备了数据可用性功能,如KZG承诺和Reed-Solomon擦除编码。
它提供机制来访问并验证在块或片段中的交易和收据包含证明。这对于验证可疑块的提交或确认一个块已合法提交到NEAR特别有用。
Rollup提供商可以利用轻客户端构建先进的集成和证明系统,加强其Rollup的安全性和可靠性。
3. RPC客户端
RPC客户端是向NEAR协议提交数据块的主要接口。它简化了与Blob Store Contract的交互并管理数据提交过程。
针对不同语言的变种:
Rust客户端(da-rpc):适合使用Rust构建的应用程序,提供与NearDA互动的原生接口。
FFI客户端(da-rpc-sys):该客户端为非Rust应用程序提供交互便利,通过提供桥接至Rust客户端。
Go客户端(da-rpc-go):专门为使用Go开发的应用程序设计,这个客户端与FFI客户端接口进行无缝交互。
RPC客户端充当一个“黑匣子”,开发者可以输入块,客户端会处理其余,将交易ID和块承诺的组合返回。
NearDA中的每个组件都经过精心设计,以确保无缝集成,高可靠性和成本效益,使其成为区块链开发者,特别是那些与以太坊Rollup合作的开发者所吸引的数据可用性解决方案。
数据提交和存储:Rollup和其他应用程序将数据提交到NearDA,在那里由Blob Store Contract高效存储和管理。
验证和抽样:轻客户端允许独立验证数据和交易收据,增强了生态系统内的信任和安全性。
用户交互:RPC客户端为开发者提供友好的接口(称为用户友好界面),以与NearDA交互,从而简化数据提交和检索的过程。
NearDA强调模块化,使得开发者在使用NearDA实现其Rollup的过程中相对简单,只要利用da-rpc或da-rpc-go客户端即可。
NearDA系统提供了一个框架,使Rust和Golang环境能够与其数据可用性层进行交互,允许Rollup确保数据的可用性和完整性,同时受益于成本效益。
以下是每个环境如何与NearDA交互:
Rust环境:
Blob:包含数据、命名空间标识符和承诺(哈希)的结构。
Namespace:用于Blob的组织元数据,如版本和ID。
FrameRef:对Blob批次的引用,带有交易ID和承诺。
DaRpc接口:定义如何提交和检索Blob。
DaRpcClient:Rust的DaRpc实现,和NearDA层进行交互。
L1:以太坊的第一层,承诺在这里发布和验证。
Rust交互:
数据在Blob中准备并在FrameRefs中批处理。
DaRpcClient将这些提交给DA层,确保它们在NEAR上离线存储。
数据的承诺发布到以太坊L1,以实现安全性和验证目的。
此设置使得基于Rust的Rollup能够高效管理数据存储并保持完整性。
Golang环境:
Blob、Namespace、FrameRef:与Rust环境相似,这些结构组织和引用数据。
DaRpc接口:在Rust中与相同作用的接口,用于提交和检索数据。
DaRpcSys:一个系统库,可能会调用用Rust编写的客户端,通过CFFI暴露给Go。
DaRpcGo:专门为提供适合Go的API函数与DA层交互的Go特定客户端。
GoRollup:Go的Rollup实际实现,利用DaRpcGo进行DA交互。
L1:与Rust中的角色相同,用于发布和验证承诺。
Golang交互:
数据被封装在Blob中,使用命名空间进行组织,并由FrameRefs引用。
通过DaRpcGo,Blob被提交到DA层,该层与DaRpcSys接口,最终连接到DaRpcClient。
承诺发布到以太坊L1,利用其安全性和可验证性。
该架构考虑了Golang的优势,为Go生态中的Rollup提供灵活和可扩展的解决方案。
基于L2IV内部研究和理解
1. 交易创建
用户在Rollup网络上发起交易,生成一个数据块。
Rollup处理这一交易,并准备数据块,该块封装交易数据。
2. 数据块提交
Rollup通过与NearDA上的Blob Store Contract的RPC客户端进行交互,使用其编程语言的定制客户端进行提交(例如Rust、Go)。
Rollup将数据块提交到NearDA,在那里高效管理而不在区块链状态中存储实际数据,以提高成本效益。
3. 数据可用性和共识
提交后,网络会创建一个收据,标志着交易已被处理。
NEAR验证者就该收据达成共识,并将其包含在一个区块中。
经过一段时间后,收据可以被剪除。档案节点和索引器接管维护交易数据的责任。
4. 承诺创建
数据块被切成片段,并据此创建Merkle树。
Merkle树的根成为对块的承诺,确保数据的完整性。
5. 轻客户端验证
配备数据可用性功能的轻客户端获取交易和收据的包含证明。
它使用这些证明来验证数据块提交到NearDA,确保数据确实可用并正确存储。
6. L1交互
现在,数据块的承诺(作为交易ID的一部分)被发布到以太坊第一层区块链。
这一步骤确保了数据可用性和可验证性的证据,将NearDA的承诺锚定在更安全的以太坊网络上。
7. 持续可用性
随着Rollup继续运营,它可能需要访问或引用存储在NearDA中的数据。
轻客户端可以用于验证数据或为出现的任何争议或审计提供证明,确保持续的数据可用性和完整性。
8. 档案和剪除
档案节点确保长时间存储数据块,而索引器允许在需要时检索。
随着时间的推移,不需要的数据可以按照NearDA的数据保留政策被剪除,完成交易的生命周期。
注意:以上是基于我们的内部研究,对NearDA工作方式的逐步理解。当前仍然早期以确定Near的足迹。
对L1可扩展性的日益增长的需求使得数据可用性成为区块链架构设计的一个关键问题。正如本DA系列所探讨的,像Rollup这样的扩展系统在安全运行中高度依赖参与者的去中心化网络访问交易数据。没有强大且防篡改的数据可用性,它们在吞吐量、延迟、成本和脆弱性风险方面面临限制。
先进的加密解决方案正萌芽以解决这些数据可用性的瓶颈。Celestia、Avail和NearDA代表了旨在优化Rollup性能、成本和安全的专用DA层。EigenDA在以太坊上提供DA服务,希望在指标上与专用DA链相匹配,同时受益于以太坊的安全性。以太坊本身仍在不断发展其基础层,以更好地支持Rollup的数据需求。
每个解决方案在成本、吞吐量、安全模型和易于采用等指标上都有其独特的权衡。
Celestia和Avail承诺专注于DA的应用特定性和快速最终性,这对于通用智能合约执行并不适用。
而EigenDA和NearDA则旨在提供跨用例的更灵活DA,同时受到以太坊某些方面限制的约束。
对于构建Rollup和先进扩展系统的开发者来说,评估其特定的DA需求并找到最合适的解决方案将是关键。对于用户来说,这些平台共同展示出数据可用性如何转变为一个扩展引擎,可能会改变我们与区块链的交互方式。
随着我们结束这个三部分系列,创新强调在去中心化技术堆栈中,数据结构和可用性的重要性现在与安全性和去中心化同样重要,以提供性能、成本效率和可靠性。
专业化、模块化架构和横向扩展允许这些平台在保持用户去中心化的情况下推动数据可用性的边界。随着需求的增长,数据可用性层看似即将推动区块链基础设施的新一轮牛市。
在 l2iterative.com 找到L2IV,并在Twitter上关注 @ l2iterative
- 原文链接: l2ivresearch.substack.co...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!