作者:PolkaWorld
Celestia 的上线引起了行业的大量关注,也带动了 “模块化区块链” 的热潮。最近,NEAR 区块链也宣布将推出 NEAR DA 数据可用性层,进军模块化区块链领域。
那么最近兴起的 “模块化区块链” 究竟是什么?Polkadot 是模块化区块链吗?两者有什么区别?
Celestia 等 “模块化区块链” 是什么?
这里我们讨论的 “模块化区块链”,是指 Celestia、Avail、EigenDA 等,以太坊生态语境下的模块化区块链。
与 “模块化区块链” 对应的概念是 “单体区块链”。
区块链的核心职责一般分为四个部分:
执行:支持交易的执行并实现与智能合约的部署和交互。
数据可用性:保证交易数据的可用性。
共识:准许交易的内容和顺序。
结算:用于完成交易、解决争议、验证证明以及在不同执行层之间进行桥接。
在单体区块链中,这些职责全部由一条链来完成,例如比特币、以太坊都是单体区块链的代表。但这带来了一个问题,就是可扩展性较差、费用较高。
单体链上的交易流程,来源:Euromoney
于是模块化区块链的概念应运而生,它的核心思想就是将不同的职责分离出来,外包给专门的独立层(模块),从而让主链的可扩展性更高、费用更低。
单体区块链和模块化区块链的对比,来源:Celestia
例如 ZK Rollup、Optimistic Rollup 等是将执行层外包,而 Celestia 和 Avail 等则是将数据可用性(DA)层外包。
除了外部的解决方案以外,以太坊自身其实也在通过 Proto-Danksharding 技术(EIP-4844)来寻求提高可扩展性。
总结一下,在以太坊生态的语境中,“模块化区块链” 是一种为了提高以太坊可扩展性而诞生的技术方案。它将区块链的执行层、数据可用性层等分离,构成不同的 “模块”。
Polkadot 是模块化区块链吗?
我们在 Polkadot 中也经常听到 “模块化区块链” 的概念,但这和上面所说的模块化不太一样。
Polkadot 是一个异构的多链系统,由一条中继链和多条异构平行链组成。中继链负责维持整个网络的共识和安全,而平行链可以专注于各自的应用和性能。平行链之间可以通过 XCM 实现跨链的数据传输和互操作。
Polkadot 架构,来源:mercuryo
因此,Polkadot 可以实现水平的可扩展性,即随着平行链的增加,网络的吞吐量也会增加。正在开发的异步支持技术,可以进一步提高可扩展性,让波卡的平行链出块时间可以达到 6 秒,可以支持上千条平行链。
也就是说,波卡通过多链(或者叫分片)的架构,已经很大程度上解决了可扩展性的瓶颈,这也是为什么我们在 Polkadot 生态中很少讨论 Rollup、DA 层等提高可扩展性的方案的原因。
但是波卡确实是模块化区块链的先驱。
波卡的架构就是模块化的
从上面的描述其实不难看出,波卡的架构本身就体现了模块化的思想。
中继链负责安全和共识,每条平行链可以专注于构建自己擅长的方面,例如 KILT 平行链专注于身份,HydraDX 平行链专注于 DEX,每个平行链其实都是一个模块。生态中的平行链可以通过发送跨链消息(XCM)来与其他平行链交互,去使用其他平行链(模块)提供的功能。
波卡还在进行 “最小化中继” 的计划,将中继链的部分功能剥离,下放到多条 “系统平行链” 中,从而给中继链减负,让中继链能够更好地专注于共识和安全性。目前,波卡已经将资产、链上集体的功能放到系统平行链上,未来还将把治理、质押、转账等功能也放到系统平行链中。在这里,每条系统平行链就是一个区块链中的 “模块”,最小化中继就是通过模块化来提高波卡区块链的可扩展性。
模块化的区块链开发框架:Substrate
Polkadot 的 Substrate 框架,是一个用于开发区块链的模块化开源框架,它提供了高度灵活和可定制的模块,让开发者可以根据自己的需求设计区块链的运行逻辑。
Substrate 中的模块叫做 Pallet,它们是一些预定义的功能模块。所以,Substrate 就像一个 “区块链乐高”,让开发者就可以利用现有的模块,快速搭建一条符合自身需求的区块链,大大降低了区块链的开发门槛。开发者也可以开发自己的 Pallet,方便其他链快速集成。
下图列出了 Substrate 框架包含的一些 Pallet:
Substrate Pallets(模块),来源:Substrate 文档
还有更多的 Pallet 提供了各种丰富的功能,而且 Pallet 的数量也在不断增加,可以在此查看最新的 Pallet:https://docs.substrate.io/reference/frame-pallets/。
最近,Parity 将 Substrate 和 Polkadot、Cumulus 代码库进行了合并,组成了 Polkadot SDK。Polkadot SDK 是一种用于开发 Polkadot 网络的区块链软件开发工具包,它可以让开发者轻松地创建自己的平行链,从而实现区块链的创新和定制。
那么 Polkadot 可能推出 DA 层吗?
理论上说,Polkadot 也可以把数据可用性解耦出来,作为 DA 层来单独提供,从而扩展更大的市场。不过这需要 Polkadot 的社区和开发者共同讨论和决定,在波卡论坛中一些社区成员已经对此进行了热烈的讨论:
https://forum.polkadot.network/t/polkadot-da-vs-competition/3403/26。
另外,也可以利用 Polkadot SDK 的模块化开发优势,来开发一条数据可用性区块链。实际上,已经有人在这样做了。Polygon 的数据可用性区块链 Avail 项目就是使用 Polkadot 的 Substrate 框架开发的,并且使用了与 Polkadot 相同的 GRANDMA + BABE 共识。
总结
模块化区块链是一种将区块链的不同职责分离出来,交由专门的独立模块来完成的技术方案,它是区块链技术演进的一个重要方向。
在以太坊生态中,模块化区块链主要是针对以太坊的可扩展性问题而提出的,例如 Celestia、Avail 等。
在 Polkadot 生态中,模块化区块链则是波卡的本质特征,波卡通过多链的架构,以及模块化的开发框架 Substrate,实现了区块链的创新和定制。