Celestia : OP 堆栈的模块化数据可用性

Javed Khan热度: 14603

探讨 OP 堆栈中数据可用性的基础知识,以及我们如何通过定义良好的 DA 接口将其模块化以从 L1 发布和检索数据。

原文标题:Modular data availability for the OP Stack

原文作者:Javed Khan

原文来源:celestia blog

编译:GWEI Research

简介

自去年发布以来,OP Stack 在汇总开发人员中获得了巨大的吸引力。它被创建新汇总的开发人员和 Caldera 和 Conduit 等模块化基础设施提供商所接受,使开发人员能够快速启动他们自己的rollups 。

正如去年的公告所述,模块化是 OP Stack 愿景的一个基本方面:

Each layer of the OP Stack is described by a well-defined API, to be filled by a module for that layer. [...] Want to swap out Ethereum for Celestia as a data availability layer? Sure! Want to run Bitcoin as the execution layer? Why not!
OP Stack 的每一层都由定义良好的 API 描述,由该层的模块填充。 [...] 想要将以太坊换成 Celestia 作为数据可用性层?当然!想要运行比特币作为执行层?为什么不!

Optimism 快速接近的 Bedrock 升级将模块化 OP Stack 的执行层和证明系统,从而实现与未来欺诈和有效性证明的兼容性。

受此启发,Celestia Labs 一直专注于进一步推动 OP Stack 的模块化。因此,今天,我们很高兴地宣布 OP Stack 的模块化数据可用性 (DA) 接口的 Beta 版发布,这是 OP Labs 关注开发人员反馈的第一个 OP Stack Mod。该接口允许开发人员定义 DA 层并从他们喜欢的任何区块链继承安全性,无论是以太坊、Celestia 还是比特币。

开发人员今天可以开始试验使用 Celestia 进行 DA 并“定居”在以太坊上的 OP Stack 版本。 Caldera 将很快发布 Taro 测试网,它允许开发人员和用户使用 Modular DA 试用 OP Stack 的第一个公共测试网。

数据可用性层是 rollup 架构的基础,确保独立验证 rollup 链所需数据的可用性。下面我们将探讨 OP 堆栈中数据可用性的基础知识,以及我们如何通过定义良好的 DA 接口将其模块化以从 L1 发布和检索数据。

OP 堆栈中的数据可用性:今天

OP Stack 如何处理当今的数据可用性?出于我们的目的,我们深入研究了两个基本组件,Rollup 节点和 Batcher,如下所述。

要更广泛地了解 OP Stack 的其余部分如何在幕后工作,请查看 Optimism 文档

Rollup 节点

Rollup 节点是负责从 L1 块(及其相关的收据)派生出正确的 L2 链的组件。 rollup 节点检索 L1 块,过滤数据交易(通常以交易calldata的形式),并从该数据中导出正确的 L2 链。

Batcher——批处理提交者

批处理提交者,也称为批处理者,是将 L2 排序器数据提交给 L1 以供验证者使用的实体。 rollup 节点和 batcher 都在一个循环中工作,使得 batcher 新提交的 L2 块数据由 rollup 节点从 L1 中检索,并用于派生下一个 L2 块。

批处理程序提交的每个事务都包含calldata,它是 L2 排序器数据,分为称为帧的字节,是 Optimism 中数据的最低抽象级别。

用于 OP Stack 的模块化 DA 接口

在为 OP Stack 创建模块化 DA 接口时,我们的目标很简单:使汇总开发人员能够将任何区块链指定为其数据可用性层,无论是以太坊、Celestia 还是比特币。在没有这样的接口的情况下,新 DA 层的每次集成都可能需要开发人员实现和维护 OP Stack 的一个单独分支。

OP Stack 已经包含在代码库中指定L1Chain和L2Chain的抽象,允许我们为数据可用性链建模一个新的与区块链无关的接口,我们称之为DAChain。

使用下面定义的接口,开发人员可以实现DAChain来读取和写入任何底层区块链甚至像 S3 这样的集中式后端的数据。

Celestia编写阶段

以下为接口的 Celestia 实现编写示例概述了与批处理程序的集成:

SimpleTxManager.send是负责创建和发送实际交易的函数,它被修改为调用WriteFrame将帧写入 Celestia 并返回一个引用。

然后将引用作为calldata提交到批处理收件箱地址,以代替通常的帧数据。

Celestia

读取阶段

以下是与rollup节点集成的接口的 Celestia 实现的概述:

DataFromEVMTransactions是负责从交易列表中返回帧数据的函数。它被修改为使用从批处理收件箱calldata中检索到的帧引用来实际获取帧并将其附加到返回数据。

Celestia请注意,对NamespacedData的调用返回在给定BlockHeight提交的所有 blob 的字节切片数组,因此我们只返回我们感兴趣的TxIndex。

将 Celestia 集成为 DA 层

Celestia显示与 Celestia + OP 堆栈集成相比的 OP 堆栈架构的图表。

通过对Rollup节点和批处理程序进行一些小的修改,我们可以使 OP Stack 使用 Celestia 进行 DA。

这意味着派生 L2 链所需的所有数据都可以作为本地 blob 数据在 Celestia 上提供,而不是发布到以太坊,尽管一个小的固定大小的帧引用仍然作为批处理程序calldata发布到以太坊。帧参考用于使用 celestia-node ‌轻节点在 Celestia 上查找相应的帧。

如何整合运作?

编写阶段

如上所述,批处理程序将 L2 排序器数据作为称为帧的字节提交到以太坊 L1 上的批处理收件箱合约地址。

我们保留批处理程序和calldata事务以保证帧的排序,但我们用固定大小的帧引用替换calldata中的帧。什么是参考帧?它是对 Celestia 数据交易的引用,该交易已成功将帧数据作为 Celestia 的一部分包含在内。

我们通过在批处理服务中嵌入一个 celestia-node 轻节点来做到这一点。每当有新的 batch 等待提交时,我们首先使用轻节点向 Celestia 提交数据事务,然后在 batchercalldata中仅提交帧引用。

读取阶段

在读取阶段,我们做相反的事情,即我们使用批处理事务calldata中的帧引用来解析它并从 Celestia 检索相应的实际帧数据。同样,我们在 rollup 节点中嵌入了一个 celestia-node 轻节点来查询它的交易。

在派生 L2 链时,rollup 节点现在透明地从轻节点读取数据,并能够继续构建新区块。轻节点只下载由 rollup 提交的数据,而不是像以太坊那样下载整个链。

展望

欺诈证明是 Optimism 后 Bedrock 路线图的关键部分,我们希望探索升级我们的 OP Stack x Celestia 集成,以在以太坊主网上使用欺诈证明。

为此,我们可以利用量子引力桥 (QGB),它将跨链 DA 证明中继到以太坊,以启用链上验证汇总数据已在 Celestia 上可用,以便汇总数据可以在欺诈证明。这将允许 OP Stack Rollup 直接利用 Celestia 提供的 DA 保证。

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。
关键字:CelestiaOP