数据可用性层是扩展区块链的一种有前途和重要方法。以太坊是Layer 2 Rollup的数据可用层。Celestia希望建立一个比以太坊更纯粹的数据可用层。还有一些链下的数据可用层方案如EigenDA等。
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 在技术上也可能会相互靠拢。