模块化区块链生态了解这些就够了
10 月 20 日,随着 Celestia 公布了由 Bain Capital Crypto 和 Polychain Capital 领投的新一轮融资后,模块化公链再次成为了人们讨论的热点之一。本文带读者一览 Celestia 生态中正在构建的项目:Cevmos,Fuel,dYmension,Eclipse。
什么是模块化解决方案?
简而言之,模块化解决方案即将单体区块链功能模块化的功能堆栈,具体功能可大致分为:
执行:处理状态的改变;
结算:验证执行层状态并解决争议、负责资产跨链的桥梁;
共识:全节点对状态转换的有效性达成共识,简而言之,节点至少就交易及其排序达成一致;
数据可用性(DA):确保数据可存储、可验证且可用,即确保 rollup 区块头后面的交易数据已经公布并可用,以便任何人都可以重新创建状态。
为什么要分离各个模块?
因为单体区块链在保证足够吞吐量的前提下,无法同时通过打破计算和验证成本之间的相关性来保持网络的去信任和去中心化,这个瓶颈也被称为「区块链的不可能三角」。
为什么有了 rollup 还需要模块化公链呢?
其实二者并不冲突,以往我们熟知的 rollup 仅作为执行层存在的「纵向扩容」,而以 Celestia 为首的模块化区块链方案以 rollup 为基础实现了结算层的模块化,通过构建模块化堆栈的」横向扩容「让打破「区块链不可能三角」成为可能。
Celestia
Celestia 的前身 LazyLedger 就是一个可插拔的共识和数据可用性层,仅验证数据可用性和交易排序,为整个区块链网络模块化架构提供了极大的灵活性。为什么说 Celestia 与 rollup 分不开呢?在模块化以前,rollup 的提出已经让如何验证 Layer2 交易数据的 DA 成为了一大难题。
具体来说,当 block producer 发布一个有效的区块头、但故意隐藏或篡改交易数据时,轻节点只能依赖区块头来验证,因此很容易受到欺骗并接受无效区块。而全节点却无法为轻节点生成 DA 和欺诈证明,这意味着轻节点不得不自己验证 DA 或假设大多数数据是可信的。所以,这就是为什么大多数节点必须下载全部交易数据并验证区块数据可用性的原因。然而,这么做又会给网络扩展解决方案带来了可扩展性限制和问题。
Celestia 采用了链下的方式来实现 DA,即通过 Reed-Solomon 纠删码以及专门的 Namespaced Merkle Trees 结构来确保数据的可用性,让 DA 变得更便宜并以更有效的方式进行。具体的 Celestia DA 的工作方式如下:
节点接收由 rollup 提交的交易
节点确保支付了适当的费用
节点对交易进行排序
集体验证数据的完整性
根据与插入 Celestia 的特定 rollup 相对应的 DNS 映射划分数据
当然,Celestia 的核心竞争力不仅在于它的 DA 和共识功能,其利用 rollups 为执行层提供了多样化的可选方案。当然,Celestia 的核心竞争力不仅在于它的 DA 和共识功能,其利用 rollups 为执行层提供了多样化的可选方案。Celestia 还把 rollup 分成了以太坊原生与 Celestia 原生,Celestia 原生 rollup 可通过两种方式来插入 Celestia:
主权 rollup(Sovereign rollups)
强制结算 rollup(Settlement Enforced rollups like Cevmos, Celestiums, etc)
值得注意的是,两种方案的最大区别在于共识层是以太坊还是 Celestia,而关于两种 rollup 可构建方案,不同团队提出了不同的想法。
Cevmos
Cevmos 是 Cosmos EVM 应用链 Evmos 与 Celestia 合作共同开发的 rollup 堆栈,旨在成为 Celestia 上基于 EVM rollup 构建的最佳结算层。而 Cevmos 是 Celestia,Evmos 和 Cosmos 的缩写。
作为强制结算 rollup 方案中的一种,Cevmos 尝试通过为 rollup 提供专门的结算层来实现成本的降低与效率的提升(受限的 EVM)。具体来说,在这个堆栈中,Cevmos 将作为一个结算层,将以 Evmos 为基础,在其之上构建 EVM 的递归 rollup(rollup 中的 rollup)。
Cevmos 使用 Optimint(Optimistic Tendermint)而不是现有 Cosmos 上使用的 Tendermint Core 共识引擎来构建 Celestia rollup。Optimint 是 Tendermint BFT 的替代品,使开发者能够使用现有的共识和 DA(如 Celestia)部署 rollup。
由于 Cevmos 结算层本身就是一个 rollup,因此在其之上构建的 rollup 被统称为结算 rollup。每个构建的 rollup 都会有一个与 Cevmos rollup