作者:GeekCartel
一. 引言
模块化区块链是一种创新的区块链设计范式,旨在通过专业化和分工提高系统的效率和可扩展性。模块化区块链诞生之前,一个单一(Monolithic)链需要处理所有的任务,包括执行层、数据可用性层、共识层以及结算层。模块化区块链将这些工作视为可自由组合的模块来解决这些问题,每个模块都专注于特定的功能。
执行(Execution)层:负责处理和验证所有交易,以及管理区块链状态变更。
共识(Consensus)层:就交易顺序达成一致。
结算(Settlement)层:用于完成交易,验证证明,并在不同执行层之间架起桥梁。
数据可用性(Data Availability)层:负责确保所有必要的数据对网络中的参与者是可获取的,以便于验证。
模块化区块链的趋势不仅仅是技术上的变革,更是推动整个区块链生态系统迎接未来挑战的重要策略。GeekCartel 将对模块化区块链的概念以及相关项目进行分析,旨在提供全面、实用的模块化区块链知识解读,帮助读者更好地理解模块化区块链,同时展望未来的发展趋势。注意:本文内容不构成投资建议。
二. 模块化区块链的先导者-Celestia
在 2018 年,Mustafa Albasan 和 Vitalik Buterin 发表了一篇开创性的文章,为解决区块链的可扩展性问题提供了新思路。“数据可用性抽样和欺诈证明”介绍了一种方法,通过这种方法区块链能随着网络节点增加而自动扩展存储空间。2019年,Mustafa Albasan 深入研究并撰写了“Lazy Ledger”,提出了一个只处理数据可用性的区块链系统概念。
基于这些理念,Celestia应运而生,作为第一个采用模块化结构的数据可用性(DA)网络。它利用CometBFT和Cosmos SDK构建,是一个权益证明(PoS)区块链,有效提高了可扩展性,同时保持了去中心化特性。
DA层对任何区块链的安全性都至关重要,因为它确保任何人都可以检查交易账本并对其进行验证。如果区块生产者在非所有数据可用的情况下提出了一个区块,区块可以达成最终确定性但会包含无效交易。 即使区块是有效的,但那些不能完全进行验证的区块数据将对用户和网络的功能造成负面影响。
Celestia实现了两个关键功能,分别是数据可用性抽样(DAS) 和命名空间默克尔树(NMT)。DAS 使轻节点能够验证数据可用性,而无需下载整个区块。NMTs 使得区块数据可以被划分为不同应用程序的单独命名空间,这意味着应用程序只需要下载和处理与它们相关的数据,大大减少了数据处理需求。重要的是,DAS 允许 Celestia 随着用户数量(轻节点)的增加而扩展,而不会影响最终用户的安全性。
模块化区块链正在以前所未有的方式使得构建新链成为可能,不同类型的模块化区块链可以以不同目的和不同架构的方式协作工作。Celestia官方提出了几种模块化架构设计的思路及实例,向我们展示了模块化区块链的灵活性和可组合性:
图1 Layer1 和 Layer2架构
Layer 1和 Layer 2:Celestia称之为朴素的模块化,最初是为了以太坊作为单体Layer 1的可扩展性而构建的,Layer 2 专注于执行,Layer 1提供其他关键功能。
- Celestia支持基于Arbitrum Orbit、Optimism Stack以及Polygon CDK(即将支持) 技术堆栈构建的链使用Celestia作为DA层,现有的 Layer2 可以用Rollup技术将其数据从发布到以太坊上切换到发布到 Celestia。对区块的承诺发布在 Celestia 上,这比将数据发布到单一链上的传统方法更具可扩展性。
- Celestia支持基于Dymension技术组件构造的RollApp(专用于应用程序的链)作为执行层,与以太坊的Layer1和Layer2概念类似,RollApps的结算层依赖Dymension Hub(后面将展开解释),DA层使用Celestia,链之间通过IBC协议交互(IBC基于Cosmos SDK, 是一种允许区块链相互通信的协议。使用IBC的链可以共享任何类型的数据,只要它是以字节为单位编码的)。
图2:执行、结算和DA层架构
执行、结算和数据可用性:优化的模块化区块链,比如可以将执行、结算和数据可用性层在专门的模块化区块链之间解耦。
图3:执行和DA层架构
执行和DA:由于实现模块化区块链的目的是灵活的,因此执行层不仅限于将其区块发布到结算层。例如,可以创建一个模块化堆栈,该堆栈不涉及结算层,只涉及共识层和数据可用性层之上的执行层。
在这个模块化堆栈下,执行层将是主权(sovereign)的,它将其交易发布到另一个区块链,通常用于排序和数据可用性,但处理自己的结算。在模块化堆栈的上下文中,主权Rollup负责执行和结算,而 DA 层则处理共识和数据可用性。
主权Rollup与智能合约Rollup的区别在于:
- 智能合约Rollup交易由结算层的智能合约验证。主权Rollup的交易由主权Rollup的节点进行验证。
- 与智能合约Rollup相比,主权Rollu的节点拥有自主权。在主权Rollup中,交易的排序和有效性是由Rollup自己的网络管理,而不依赖于单独的结算层。
目前Rollkit和Sovereign SDK提供了用于在 Celestia 上部署主权Rollup测试网的框架。
三. 探索区块链生态中的模块化方案
1. 执行层模块化
在介绍执行层模块化之前,我们应该了解什么是Rollup技术。
目前执行层模块化技术主要依赖Rollup,这是一种在 Layer1链外运行的扩容解决方案。这种解决方案在链外执行交易,这意味着它占用更少的区块空间,也是以太坊重要的扩容方案之一。执行交易后,它将向 Layer1 发送一批交易数据或执行证明,并在 Layer1 进行结算。Rollup 技术为Layer1网络提供了一种可扩展性解决方案,同时保持了去中心化和安全性。
图4: Rollup技术架构
以以太坊为例,Rollup 技术可以通过使用ZK-Rollup或者Optimistic Rollup来进一步提高性能和隐私。
- ZK-Rollup 使用零知识证明来验证打包的交易的正确性,从而确保交易的安全性和隐私性。
- Optimistic Rollup 在提交交易状态到以太坊主链之前,首先假设这些交易是有效的,在质询期期间,任何人都可以计算欺诈证明来验证交易。
1.1 以太坊Layer2:构建未来的扩容解决方案
以太坊最初采用侧链和分片技术进行扩容,但是侧链牺牲了一些去中心化和安全性来实现高吞吐量;Layer 2 Rollups 的发展速度比预期的要快得多,并且已经提供了大量的扩展,并且在实现Proto-Danksharding之后将提供更多。这意味着不再需要“分片链”,现已从以太坊的路线图中删除。
以太坊将执行层外包给基于Rollup技术的Layer2s来减轻主链负担,EVM为在Rollup层上执行的智能合约提供了标准化和安全的执行环境。一些Rollup解决方案在设计时考虑到了与EVM的兼容性,使得在Rollup层上执行的智能合约仍然可以利用EVM的特性和功能,如OP Mainnet,Arbitrum One和Polygon zkEVM等。
图5: 以太坊的第2层扩展解决方案
这些Layer2s执行智能合约并处理交易,但仍依赖以太坊进行以下操作:
结算: 所有Rollup交易都在以太坊主网上完成。Optimistic Rollups的用户必须等待质询期过去,或者在反欺诈计算后交易被视为有效。ZK Rollups的用户必须等到有效性得到证明。
共识和数据可用性:Rollups以CallData的形式将交易数据发布到以太坊主网,使任何人都可以执行Rollup交易并在必要时重建其状态。在以太坊主链上确认之前,Optimistic Rollups 需要大量的区块空间和 7天的挑战期。ZK Rollups 提供即时最终确定性,且将可用于验证的数据存储 30 天,但需要大量的计算能力来创建证明。
1.2 B² Network:开创比特币ZK-Rollup
B² Network是第一个比特币上的ZK-Rollup,可在不牺牲安全性的情况下提高交易速度。利用Rollup技术,B² Network提供了一个能够运行图灵完备智能合约进行链下交易的平台,从而提高了交易效率,并最大限度地降低了成本。
图6:B² Network架构
如图所示,B² Network的ZK-Rollup Layer 采用 zkEVM 解决方案,负责 Layer2 网络内用户交易的执行和相关证明的输出。
与其他Rollup不同的是,B² NetworkZK-Rollup由多个组件组成,包括账户抽象模块、RPC Service、Mempool、Sequencers、zkEVM、Aggregators、Synchronizers 和 Prover。其中账户抽象模块实现了本机帐户抽象,它允许用户灵活地将更高的安全性和更好的用户体验编程到他们的帐户中。zkEVM 与 EVM 兼容,它还可以帮助开发人员将 DApp 从其他 EVM 兼容链迁移到 B² Network。
Synchronizers确保将信息从B²节点同步到Rollup层,包括序列信息、比特币交易数据等细节。B² 节点充当链下验证者,是 B² 网络中多个独特功能的执行者。B² 节点中的比特币Committer模块构建一个数据结构来记录B² Rollup数据,并生成一个被称为“B²铭文”的Tapscript。然后,比特币Committer发送一个单位为一聪(satoshi )的UTXO到一个包含$B^{2}$铭文的Taproot地址,Rollup数据将被写入比特币。
此外,比特币Committer设置一个时间锁定的挑战,允许挑战者质疑zk证明验证的承诺。如果在时间锁定期间没有挑战者或挑战失败,那么Rollup最终在比特币上确认;如果挑战成功,Rollup将被回滚。
不论是以太坊还是比特币,从本质上讲,Layer1都是单一链,它们从Layer2 接收扩展的数据。在大多数情况下,Layer 2 的容量也取决于Layer1 的容量。因此,Layer1 和Layer2 堆栈的实现对于可扩展性来说并不理想。当Layer1达到其吞吐量上限时,Layer2也会受影响,这可能导致交易费用上升和确认时间延长,影响整个系统的效率和用户体验。
2. DA层模块化
除了Celestia的DA解决方案受到Layer2s的青睐之外,还有其他专注于DA的创新方案相继出现,在整个区块链生态系统中发挥了关键作用。
2.1 EigenDA:为Rollup技术赋能
EigenDA是一种安全、高吞吐量和去中心化的DA服务,其设计灵感来自Danksharding。Rollup 能够将数据发布到 EigenDA,以便在整个 EigenLayer 生态系统中获得更低的交易成本、更高的交易吞吐量和安全的可组合性。
在以太坊Rollup构建去中心化的暂时性数据存储时,数据存储可以由 EigenDA 运营商直接处理。运营商(Operators)是指参与网络运作,负责处理、验证和存储数据,EigenDA 可以随着质押量和运营商的增长而水平扩展。
EigenDA结合Rollup技术,同时将DA 部分转移到链下处理实现可拓展性。因此,实际的交易数据不再需要在每一个节点上复制和存储,减少了对带宽和存储的需求。链上仅处理与数据可用性相关的元数据和问责机制(问责使数据存储在链下,也可以在必要时验证其完整性和真实性)。
图7: EigenDA的基本数据流
如图所示,Rollup将交易批次写入DA层,与使用欺诈证明来检测恶意数据的系统不同,EigenDA将数据分割成块并生成KZG承诺和多重揭示证明,EigenDA 要求节点只下载少量数据 [O(1/n)],而不是下载整个blob。Rollup的欺诈仲裁协议还能够验证用 blob 数据是否与 EigenDA 证明中提供的 KZG 承诺匹配。在进行此验证时,Layer2 链可确保Rollup状态根的交易数据不会被排序器/提议者操纵。
2.2 Nubit:比特币上第一个模块化DA解决方案
Nubit是一个可扩展的、比特币原生DA层。Nubit正在开创比特币原生的未来,旨在提高数据吞吐量和可用性服务,以满足生态系统不断增长的需求。他们的愿景是将庞大的开发者社区纳入比特币生态系统,并为他们提供可扩展、安全和去中心化的工具。
Nubit 的团队成员是来自 UCSB(加州大学圣塔芭芭拉分校)的教授和博士生,享有杰出的学术声誉和全球影响力。他们不仅精通学术研究,而且在区块链工程实施方面具有丰富的经验。团队与domo(Brc20的创造者)一起撰写了模块化索引器的论文,将DA层的设计加入到比特币meta protocol的索引器结构中,参与到行业标准的建立和制定。
Nubit 的核心创新:共识机制、无需信任的桥接和数据可用性,它利用创新的共识算法和闪电网络来继承比特币完全抗审查的特性,利用DAS提高效率:
- 共识机制:Nubit 探索了一种由 SNARK 提供支持的基于PBFT(实用拜占庭容错)的高效共识,用于签名聚合。PBFT 方案与zkSNARK技术结合将验证者之间验证签名的通信复杂度显著减少,在不需要访问整个数据集的情况下验证交易的正确性。
- DAS:Nubit的DAS是通过对区块数据的小部分进行多轮随机抽样来实现的。每一轮成功的抽样增加了数据完全可用的可能性。一旦达到预定的置信水平,就认为区块数据是可访问的。
- Trustless Bridge:Nubit 使用了一个Trustless Bridge,其利用了闪电网络的支付通道。这种方法不仅与本地比特币支付方法保持一致,且不会增加额外的信任要求。与现有的桥接方案相比,为用户带来了较低的风险。
图8:Nubit的基本组件
我们进一步利用一个具体的用例来回顾图8所示的完整的系统生命周期。假设Alice想要使用Nubit的DA服务完成一笔交易(Nubit支持多种数据类型,包括但不限于铭文,Rollup data等)。
- 步骤1.1: Alice首先需要通过Nubit的无信任桥支付gas费来继续服务。特别是,Alice需要从无信任桥接器中获得一个公共挑战,记为X (h)(X是从可验证延迟函数(VDF)的哈希范围到挑战域的加密哈希函数,h是某个高度区块的哈希值)。
- 步骤1.2 和 步骤2: Alice必须获得与当前回合相关的VDF的评估结果R,提交R以及她的数据和交易元数据(如地址和nonce)发送给验证器,以便将其合并到内存池中。
- 步骤3: 验证者在达成共识后提出区块及其头的过程。块头包括对数据的承诺及其相关的Reed-Solomon Coding(RS Code),而块本身包含原始数据、相应的RS Code和基本的交易细节。
- 步骤4: 生命周期以Alice的数据检索结束。轻客户机下载区块头,而全节点获取区块及其头。
轻客户机承担DAS过程以验证数据可用性。此外,在提出阈值数量的区块后,该历史的检查点通过比特币时间戳记录在比特币区块链上。这确保validator集可以阻止潜在的远程攻击并支持快速解除绑定。
3. 其他解决方案
除了专注于模块化特定层的链,去中心存储服务可以为DA层提供长期支持。还有一些协议和链为开发者提供了定制和全栈方案,这些方案使用户轻易地构建自己的链,甚至无需代码构建。
3.1 EthStorage - 动态的去中心化存储
EthStorage是第一个实现动态的去中心化存储的模块化 Layer2,提供由 DA 驱动的可编程键值(KV)存储,以 1/100 到 1/1000 的成本将可编程存储扩展到数百 TB 甚至 PB。它为 Rollups 提供了长期的 DA 解决方案,并为游戏、社交网络、AI 等完全链上的应用程序开辟了新的可能性。
图9: EthStorage的应用场景
EthStorage的创始人,Qi Zhou,自2018年全身心投入Web3行业,持有乔治亚理工学院的博士学位,曾任职于谷歌和Facebook等顶尖公司的工程师。其团队也获得了以太坊基金会的支持。
作为以太坊坎昆升级的核心特性之一,即EIP-4844(也称为Proto-dank sharding),引入了用于Layer2 Rollup存储的临时数据块 (blob),提高了网络的可扩展性和安全性。网络无需验证区块中的每笔交易,只需确认附加到区块的 blob 是否携带正确的数据,这大大降低了Rollup的成本。但是,Blob 数据仅暂时可用,这意味着它将在几周内被丢弃。这产生了一个重大影响:Layer2 无法无条件地从 Layer1 派生出最新状态。如果无法再从 Layer1 检索到某段数据,则可能无法通过Rollup来同步链。
有了 EthStorage 作为长期的 DA 存储解决方案,Layer2s可以随时从其DA层获取完整数据。
技术特点:
EthStorage可以实现去中心化的动态存储:现有的去中心化存储解决方案可以支持大量数据的上传,但是不能修改或删除,只能重新上传新数据。而EthStorage 通过原创的键值存储范式,实现CRUD功能,即创建、更新、读取和删除存储的数据,从而显著增强了数据管理的灵活性。
基于DA层的Layer2去中心化解决方案:EthStorage 是一个模块化的存储层,只要有 EVM,有 DA来减少存储成本,就可以在任何区块链上运行它(但当前很多Layer1不具备DA层),甚至在 Layer2上也可以。
高度集成ETH:EthStorage的客户端是以太坊客户端 Geth的超集,这意味着运行EthStorage的节点的时候,依然可以正常参与以太坊的任何流程,一个节点可以是以太坊的验证者节点的同时也是EthStorage的数据节点。
EthStorage的工作流程:
用户将他们的数据上传到应用程序合约,然后该合约与 EthStorage 合约交互以存储数据。
在 EthStorage Layer2 网络中,存储提供商会收到有关等待存储的数据的通知。
存储提供商从以太坊数据可用性网络下载数据。
存储提供商向 Layer1 提交存储证明,证明 Layer2 网络中有大量副本。
EthStorage合约奖励成功提交存储证明的存储提供商。
3.2 AltLayer - 模块化定制服务
AltLayer提供了一个多功能的、无代码的Rollups-as-a-Service(RaaS)服务。RaaS 产品专为多链和多虚拟机世界而设计,支持 EVM 和 WASM。它还支持不同的 Rollup SDK,例如 OP Stack、Arbitrum Orbit、Polygon zkEVM、ZKSync 的 ZKStack 和 Starkware,不同的共享排序服务(例如Espresso和Radius)以及不同的 DA 层(例如 Celestia,EigenLayer)以及 Rollup 堆栈不同层的许多其他模块化服务。
通过AltLayer可以实现多功能的Rollup堆栈,例如,一个为应用程序而设计的 Rollup 可以使用Arbitrum Orbit构建,同时使用Arbitrum One作为 DA 和结算层,而另一个为通用用途而设计的 Rollup 可以使用 ZK Stack 构建,使用 Celestia 作为 DA 层,以太坊作为结算层。
注:看到这里你可能会疑惑,为什么结算层可以由OP和Arbitrum来实现?事实上,目前这些Layer2s的Rollup堆栈正在实现类似Cosmos提出的“链间”(interchain)工作来实现互联:OP提出了Superchain,OP Stack作为支持Optimism技术的标准化开发堆栈,将不同的Layer2网络集成在一起,促进了这些网络之间的互操作性;Arbitrum提出了Orbitchain战略,允许基于Arbitrum Nitro(技术堆栈)在 Arbitrum 主网上创建和部署 Layer3,也被称为应用链。Orbit Chains可以直接结算到Layer2s也可以直接结算到以太坊。
3.3 Dymension - 全栈模块化
Dymension是一个基于Cosmos SDK的模块化区块链网络,旨在通过使用IBC标准来确保RollApp的安全性和互操作性。
Dymension将区块链功能分为多层,Dymension Hub作为结算层和共识层为RollApp提供安全性、互操作性和流动性,RollApp作为执行层。数据可用性层是 Dymension 协议支持的DA提供者,开发人员可以根据自己的需求选择合适的数据可用性提供者。
结算层(Dymension Hub)维护RollApps的注册器和相应的重要信息,如状态、测序器列表、当前活动测序器、执行模块校验和等。Rollup服务逻辑被固定在结算层内,从而形成了一个原生互操作性的中心。Dymension Hub作为结算层有以下特点:
在结算层上本地提供 Rollups 服务: 提供了与基础层相同的信任和安全假设,但具有更简单、更安全、更有效的设计空间。
通信和交易:Dymension的RollApp通过内嵌模块在结算层上实现Inter-RollApp通信和交易,提供信任最小化的桥接。此外,RollApps还能通过Hub与启用IBC的其他链进行通信。
RVM(RollApp虚拟机):Dymension结算层在欺诈争议时启动RVM。RVM能够在各种执行环境(如EVM)中解决争议,扩展了RollApp执行范围的能力和灵活性。
抗审查:经历Sequencer审查的用户可以向结算层发布一个特殊的事务。此事务被转发到Sequencer,并请求在指定的时间范围内执行。如果交易没有在指定的时间内处理,Sequencer将受到处罚。
AMM(自动做市商):Dymension在结算中心引入了一个嵌入式的AMM,从而创建了一个核心金融中心。为整个生态系统提供共享流动性。
四. 多生态模块化区块链对比
在前文中,我们深入探讨了模块化区块链系统和众多代表性项目,现在我们将把焦点转移到不同生态间的对比分析上,旨在客观全面的理解模块化区块链。
五. 总结与展望
正如我们所看到的,区块链生态在朝着模块化的方向发展。在过去的区块链世界中,各条链孤立运作,相互竞争,这使得用户、开发者和资产在不同链之间难以流动,限制了生态系统的整体发展和创新。在WEB3世界中,问题的发现和解决是共同努力的过程。一开始,比特币和以太坊作为单一链吸引了大量关注,但随着单一链问题的暴露,模块化链逐渐受到关注。因此,模块化链的爆发不是偶然,而是发展的必然。
模块化区块链通过让各个组件独立优化和定制,提高了链的灵活性和效率。但这种架构也需面对挑战,如通信延迟和系统交互的复杂性增加。实际上,模块化架构的长期益处,如提高的可维护性、可复用性和灵活性,通常会超过其短期的性能损失。未来,随着技术发展,这些问题将找到更好的解决方案。
GeekCartel认为区块链的生态系统都有责任在整个模块化堆栈中提供可靠的基础层和通用的工具,以促进链与链直接的流畅链接,如果生态系统能够更加和谐和互联,用户将能够更轻松地使用区块链技术,也会吸引更多的新用户进入Web3。