学习 DA 技术原理,对比 ETH、Celestial、EigenLayer 等 DA 项目。
作者:Maggie,Foresight Research
封面:Photo by Steve Johnson on Unsplash
1. 什么是数据可用层?
数据可用性的概念不同于去中心化文件系统和数据库,这一点在以太坊和 Celestia 网站上有所阐述。
- 以太坊:数据可用性,是指要保证区块提议者发布的区块,区块中所包含的所有交易数据,对于其它网络参与者来说是可用的。
- Celestia:数据可用性与最新区块中发布的数据是否可获取相关。
然而,去中心化文件系统和数据库主要确保用户存储的数据可以访问。他们和数据可用层解决的问题不一样。
当然,数据可用性和去中心化存储也有共通之处,技术上他们都使用了纠删码、Proof of random access 等验证方法来验证数据的可用性。
2. 数据可用性的技术如何?
目前有多类数据可用层,包括:
- 以太坊。ETH 作为第二层 Rollup 的 DA(数据可用性)层。
- 以 Celestia 为代表的模块化区块链。Celestia 是一个专门设计的 DA 层,仅处理数据可用性,并不执行交易。它在 2022 年掀起了模块化区块链的潮流。这样的模块化区块链还有 Avail 等项目。
- EigenDA 和其他 DA 产品。通过委员会确保数据可用性。
以太坊
以太坊已经是 L2 Rollup 的 DA 层。以太坊 Rollup 把二层的交易数据打包、提交到以太坊智能合约中,由以太坊来存储 L2 的数据,并保证这些交易数据的数据可用性。
虽然 rollup 可以通过链下计算扩展 ETH 的吞吐量,但它们的容量受限于 L1 ETH 区块链数据吞吐量。因此,Rollups 要使用以太坊作为数据可用性层,以太坊需要增加其数据存储和处理能力。
以太坊在积极推进 Danksharding 升级,Danksharding 可以提升以太坊存数据的能力,使 ETH 成为更强大的 DA 层。
- 在 Danksharding 的计划里,数据可用性被委托给各个分片,每个验证者只需要为其分片运行完整节点,并以轻客户端容量运行其他分片。分片增加了 Rollup 的数据空间,因为存储数据的工作被拆分到不同的分片中。
- Proto-danksharding(EIP-4844)是 Dankshading 的一个初步实现, 预计今年下半年上线。Proto-danksharding 定义好了关于数据块 Blob 的新的交易类型,以及验证 Blob 所需要的预编译代码,实现了大部分 Danksharding 的核心逻辑。每个 blob 的大小约为 125kB,而块只有 90kB。目前,每个块最多可以挂载八个 blob,导致额外存储 1MB。Danksharding 中验证者做了分片后,只需要下载部分 Blob 数据;Proto-danksharding 里数据是没有被分片的,验证者仍然要下载并直接验证所有 Blob 的数据可用性,因此这是 Danksharding 中的一步。EIP4844 实施后,Blob 可以在相同的 gas 消耗下存储比 Calldata 多 10 倍的数据。Rollup 的数据将来可以存储在 Blob 中,将交易费用降低一个数量级。一旦完全实施 Danksharding 将变得更加便宜。
总的来说,Danksharding 能让以太坊的数据存储能力提升,使得 ETH 被用做 DA 的成本下降,从而成为更强大的 DA 层。
Danksharding 的技术原理:
- 现在以太坊上的数据全部存在链上,强制区块生产者将所有交易数据发布到链上,并让验证节点下载。Danksharding 引入了一种数据 Data blob,存储在链下,只把数据的 KZG 承诺放在链上。存储时间缩短至 1-3 个月,blob 的空间大一个就有~125kB(ETH 区块大小只有~90kB)。因此数据存储时间变短,数据量变大。
- 节点验证一个 blob 就是查询 blob 是否可用,即是否能从网络中下载到它。Danksharding 依靠数据可用性抽样来验证网络是否已看到 blob 的全部内容。
- 由于数据存储时间缩短,因此可检索性降低,即对一个月以前的历史 blob 的查询能力降低。为了安全性,EVM 不能访问链下的 Blob 数据,只能访问 Blob 的链上承诺,防止久远 Blob 无法访问导致 EVM 运行失败。
- 为了验证 Blob 数据的可用性,ETH 使用了数据可用性采样的检验方法。对数据进行多轮随机抽取少量样本,验证其可用性。这使得区块链节点不需要下载完整的 Blob 就可以验证其可用性。
- 通过使用纠删码技术来冗余数据片段,来提高数据的可恢复性,且纠删码和数据可用性采样结合,能防止节点隐藏数据。
以 Celestia 为代表的模块化区块链 DA 层
Celestia 是一个模块化区块链,仅对交易进行排序和发布,而不执行它们。通过将共识层和应用执行层解耦,Celestia 模块化了区块链技术栈并为去中心化应用程序构建者打开了新的可能性。
- Celestia 负责 DA 层,由 ETH 等其它网络负责共识和结算,应用程序链负责执行。
- Celestia 负责 DA 层和共识层,而结算和执行由应用程序链处理。或者,结算可以使用 Cevmos,而执行仍由应用程序链负责。
Celestia 对数据可用性的验证方法和以太坊类似,采用了二维 Reed-Solomon 纠删码,设计了一套随机抽样来验证数据、以及恢复数据的方案从而确保数据可用。
Celestia 也与 ETH 有很大的不同。
- Celestia 专心只做 Rollup 的 DA 层和共识层,而 ETH 还给 Rollup 做了结算层。
- Celestia 只做 DA 层和共识层,不具备图灵完备的智能合约虚拟机,不支持智能合约。
- 以太坊的 Rollup 不能分叉,Celestia 的 Sovereign Rollup 是可以分叉的。
- Rollup 通过桥和 Celestia 互通资产,由于 Celestia 不支持智能合约,跨链桥的功能有限,可能只能转移 DA Token。
Celestia 的生态也发展很快。
链下 DA 层
链下 DA 层主要包括两种
- 数据可用性委员会
- 区块链生产者和可信方组成数据可用性委员会 (DAC) ,DAC 在链下存储交易数据,不存到区块链上。DAC 需要在发生争议时提供。DAC 成员也会发布链上证明,以证明上述数据确实可用。
- 比如,validiums 和 plasma 就使用 off-chain 存储来减少链上数据。
- PoS 的数据可用性委员会
- 委员会存入了押金,加了奖惩机制,以提升 DAC 的可信程度。其它方面和上述 DAC 相同。
- 比如,EigenDA 建立于二次质押协议 EigenLayer 上,吸引以太坊验证者来参与 EigenDA 的数据可用性保证工作。
3. 现在有哪些数据可用层?
目前,有多个数据可用性项目,包括:
- ETH:目前,ETH 作为 L2 optimistic rollups 和 zk rollups 的数据可用性层。下半年 EIP4844(Proto-Danksharding)上线将利好 L2 的发展,他会提升以太坊存数据的能力,降低存储成本。
- Celestia:Celestia 主要为共识和数据可用性层设计。Celestia 的测试网络于 2022 年 6 月上线,Celestia 带火了区块链模块化。Celestia 需要建立自己的生态系统,并与 Ethereum 建立竞争关系。目前已经发展出了一些生态项目。
- Avail:Avail 最初由 Polygon 在 2022 年 6 月发布。然而,在其创始人离开 Polygon 后,Avail 成为了一个独立的模块化区块链项目,并发布了一个测试网。和 Celestia 类似 Avail 是一个独立的共识和 DA 层,就像 Celestia 一样。Avail 曾经计划将主网桥接到 Polygon 并使用 MATIC 作为基础货币。与 Celestia 代币相比,MATIC 是一个更成熟的代币。
- EigenDA:EigenDA 是一个基于以太坊的 DA 层,通过 ETH 重新抵押激励验证器维护 DA 网络,消除了 Celestia 所需的启动负担。
- 其他链下 DA:Validium 将交易数据存储在链下,用 ETH 做共识和结算。随着 Celestia 和 Danksharding 的广泛采用,Validium 的采用可能会逐步降低,甚至退出。
总结
- 数据可用性层是扩展区块链的一种有前途和重要方法。以太坊是 Layer 2 Rollup 的数据可用层。Celestia 希望建立一个比以太坊更纯粹的数据可用层。还有一些链下的数据可用层方案如 EigenDA 等。
- 下半年 EIP4844 的上线使得 ETH 成为更强大的 DA 层,Celestia 的主网也可能于今年下半年上线。目前的数据可用性产品各有优势,值得我们今年密切关注。
- Celestia 的技术仍需要市场验证,未来 ETH 和 Celestia 在技术上也可能会相互靠拢。
免责声明:作为区块链信息平台,本站所发布文章仅代表作者及嘉宾个人观点,与 Web3Caff 立场无关。本文内容仅用于信息分享,均不构成任何投资建议及要约,并请您遵守所在国家或地区的相关法律法规。