跳至内容
0%

模块化区块链与单体区块链对比

Alchemy team headshot

作者 Alchemy

发布于 2022年7月8日2 分钟阅读

每条区块链都有相同的核心任务:提供共识和安全性、保证数据可用性、执行交易。通常,大多数区块链在同一层处理这些职责——这类区块链(比如 Bitcoin)被称为"单体区块链"。

自加密货币诞生以来,单体区块链一直是行业标准,但这种情况正在快速改变。越来越多的证据表明单体设计的性能并非最优,模块化区块链因此日益流行。模块化链只专注于特定任务,而将其余任务卸载给其他层。

本指南对模块化区块链的概念做高层次介绍。我们将解释模块化区块链的工作原理、它与单体区块链的区别,以及模块化设计对区块链普及为何重要。

什么是模块化区块链?

模块化区块链专注于处理少数几项特定职责,并将其余职责外包给一个或多个独立的层。要理解模块化区块链的运作方式,我们首先需要评估普通区块链的"职责":共识、执行、数据可用性和结算。

1. 共识

共识指的是节点就区块链上哪些数据可以被验证为真实准确达成一致的机制。共识协议决定了交易如何排序,以及新区块如何添加到链上。

2. 执行

执行是区块链上的节点处理交易、使区块链在不同状态间转换的过程。参与共识的节点必须使用自己的区块链副本执行交易,才能在验证区块之前进行确认。

3. 数据可用性

区块链强制执行要求交易数据可用的规则。这意味着出块者必须为每个区块发布数据,供网络节点下载和存储;这些数据必须能够按需获取。

4. 结算

最后,区块链提供"终结性"——一种保证,即已提交到链历史中的交易不可逆转(或称"不可篡改")。要实现这一点,区块链必须确信某笔交易的有效性。因此,结算功能要求链验证交易、核实证明、并裁定争议。

在了解了区块链的关键特性之后,我们现在可以审视模块化区块链设计的运作机制。

模块化区块链是如何工作的?

模块化区块链基于模块化原则运作,即把系统拆分为不同的组件,这些组件可以以各种方式组合以实现特定目标。模块化依赖于专业化:每个组件只能做少数几件事,但必须做得好。你可以把模块化组件想象成乐高积木,可以组合成不同的结构。

模块化链是更大的"模块化堆栈"中的一个组件,多个模块化链可以组合以实现不同的目的。模块化区块链充当"可插拔模块",可以根据使用场景进行替换或与其他模块合并。

什么是模块化区块链架构?

模块化区块链可以设计为处理以下任务中的一项或多项组合:

  • 执行:支持交易执行,并支持智能合约的部署与交互。
  • 数据可用性:保证交易数据的可用性。
  • 共识:就交易内容和排序达成一致。
  • 结算:提供用于最终确认交易、解决争议、验证证明以及在不同执行层之间建立桥接的层。
模块化区块链技术栈中不同层级的说明。来源:Celestia
模块化区块链技术栈中不同层级的说明。来源:Celestia

Rollups 就是模块化区块链的一个例子。Rollup 链处理交易(执行),但将共识、数据可用性和结算外包给父链。我们将在本文后面部分介绍更多模块化区块链的例子,看看它们是如何处理这些功能的。

模块化链常常会同时承担两项或以上的职能,尤其是当这些职能相互依赖时。例如,数据可用性层也必须就数据的排序达成共识,否则就无法判断哪份数据代表正确的历史版本。

Ethereum 在模块化语境下是如何运作的?

与 Bitcoin 以及许多第一代区块链一样,Ethereum 最初被设计为单体区块链。然而,为了提升可扩展性和可持续性,Ethereum 网络目前正在向模块化框架转型。以下是 Ethereum 在模块化语境下的运作方式:

分片

分片是将一个系统(例如数据库)拆分成多个部分分别运行的过程。通过在多个组件之间拆分功能,系统能够比所有部分共同承担同样职责时获得更高的产出和效率。在区块链网络中,分片将区块链拆分为多条子链,每条子链处理网络活动的不同部分。

Ethereum 正在采用分片设计,届时将有 64 条分片链并行运行。分片可以并行处理交易(执行分片),也可以作为"仓库"存储不同区块的区块链数据(数据分片)。通过数据分片,Ethereum 节点将只存储发布在其所在分片链上的数据;这与当前所有节点都必须存储相同数据的结构形成对比。

展示分片 Ethereum 区块链架构的示意图。来源:vitalik.ca
分片链

‍Ethereum 分片是模块化的一种形式,其中不同的组件(分片链)处理不同的职责。在数据分片中,各分片链存储 Ethereum 数据的不同部分,而执行分片则让每条分片链处理各自的一组交易,从而提高数据吞吐量并缩短处理时间。

Rollups

一些开发者已经采用了以 rollup 为中心的方法来扩展 Ethereum。与纯粹的链下扩容方案(例如侧链)不同,rollups 与父链紧密耦合。可以说,rollup 是主链的延伸,旨在扩展主链的吞吐量。

Ethereum 区块链将计算外包给 rollups,自身则专注于结算、共识和数据可用性。Rollups 可以通过更快的出块时间和更大的区块来积极优化执行,而不损害去中心化或安全性。这是因为 Ethereum 充当基础层(即"Layer 1"),供位于 Layer 2 的 rollups 使用。

模块化区块链架构示意图,展示作为 Layer 1 基础层的 Ethereum 与 Layer 2 rollup
展示 Ethereum(Layer 1 基础层)与 rollup(Layer 2)如何在模块化区块链架构中协同运作的示意图。来源:Celestia

模块化区块链设计有哪些优势?

模块化区块链设计具有以下优势:可扩展性、灵活性,以及能够快速推出新区块链的能力。

1. 可扩展性

区块链不可能三角指出,区块链只能同时具备三种可能特性中的两种,而无法三者兼得:去中心化、安全性和可扩展性。针对某些特性(可扩展性)进行优化会导致在其他方面(安全性和去中心化)做出权衡,这也是区块链扩容困难的原因。

然而,扩容困难通常只在区块链试图在单一层内同时处理所有活动时才会出现。将模块化应用于区块链(在不同层之间分离任务)可以在不引入不良信任假设的情况下提升规模。

例如,专注于执行的 rollups 相比常规链具有更强的可扩展性,同时由于依赖 Ethereum 处理共识和数据可用性,它们仍能获得高度的安全性。

2. 推出新区块链

推出新区块链可能很困难,因为需要建立其安全属性。PoS 链可能需要建立广泛分布的代币持有,以避免中心化风险;而 PoW 链则可能需要吸引矿工,以防止少数几方控制网络的算力。

但如果开发者能够只专注于最基本的部分,比如执行,并接入另一个模块化区块链组件来处理特定任务(例如安全性),会怎样?通过利用模块化设计,新区块链可以更快地推出,而无需担心把架构的每个部分都做对。

3. 灵活性

模块化提供了单体链无法提供的灵活性。Bitcoin 对去中心化和安全性的专注自然排除了可扩展性,而高吞吐量链通常需要牺牲一定程度的去中心化和安全性。

专用的模块化链在权衡取舍和设计实现方面提供了更大的灵活性。例如,一个模块化区块链系统可能包含专注于安全性和数据可用性的模块化链,同时也包含专注于执行的模块化链。以下是两者如何从模块化设计中受益:

  1. 安全与数据可用性层由于交易被单独处理,能够获得额外的可扩展性收益。它只需强制执行链下执行的有效性,并保证链下数据的可用性。这正是 Ethereum 的可扩展性从使用 rollups 中获益的方式。
  2. 执行层(为可扩展性而优化)通过利用父链的特性获得额外的安全性收益。这正是 Layer 2 从 Ethereum 的去中心化中获益的方式。

模块化区块链有哪些缺点?

模块化区块链设计具有以下缺点:安全性、复杂性和代币价值。

1. 安全性

与单体链不同,模块化链无法独立保证自身的安全属性。如果安全层(通常负责共识和数据可用性)表现不佳,模块化链就有失败的风险。

2. 复杂性

实现模块化区块链设计会引入新的复杂性。例如,Ethereum 的数据分片方案依赖数据可用性采样来确保某个分片上的节点不会隐瞒数据。同样,执行层必须要求某些复杂机制(例如欺诈证明和有效性证明),以便安全层能够强制执行链下状态转换的有效性。

3. 代币价值

由于应用场景有限,一些模块化链可能难以为其原生代币积累价值。例如,纯粹专注于共识和数据可用性的层,其效用代币的使用需求很可能低于执行层。要吸引参与者加入这类网络也可能更困难。

模块化区块链平台示例

Ethereum

如前所述,Ethereum 对数据分片和以 rollup 为中心的计算的依赖使其成为一种模块化链。在第一种情况下,它将共识与数据可用性分离;在第二种情况下,它将执行外包出去。

Celestia 和 Polygon avail

Celestia 和 Polygon Avail 是两个新的模块化区块链,主要负责共识和数据可用性。Celestia 和 Polygon Avail 的节点仅负责存储和排序交易;它们不解释交易数据以进行执行。预计这些链将作为其他执行层(例如 rollups)的数据可用性层。

Celestia,专注于共识和数据可用性的模块化区块链

Validiums

Validium 与 zero-knowledge rollup 类似:它在链下执行交易,并(分批)将其连同有效性证明一起提交给父链。区别在于,validium 链将链下数据存储在其他地方,而非父链。这可以借助数据可用性委员会,或由 PoS 验证者组成的数据可用性网络来完成(Celestia 就是基于 PoS 的数据可用性网络的一个例子)。

Validium 的模块化堆栈如下:

  • 执行层(validium 链)
  • 结算与安全层(父链)
  • 数据可用性与共识层(DAC 或 PoS 验证者网络)

Rollups

如前所述,rollup 设计(optimistic rollups 和 zero-knowledge rollup 项目)都采用了模块化方法。运行 Optimistic Virtual Machine 的 optimistic rollup,或运行 zkEVM 的 ZK-rollup,充当执行层(执行智能合约、处理交易)。不过,它们在其他功能上依赖 Ethereum:

  1. 数据可用性与共识:Rollups 将交易数据以 CALLDATA 的形式发布到 Ethereum Mainnet。这使得任何人都能执行 rollup 的交易,并在必要时重建其状态。
  2. 结算:所有 rollup 交易都在 Ethereum 上最终确认。对于 zero-knowledge rollups,这发生在 zero-knowledge proof 被验证之后。Optimistic rollup 的用户则需等待挑战期结束,或者在欺诈证明计算之后交易被判定有效。

什么是单体区块链?

"Monolithic"意为"由单一整体构成",这解释了它为何被用来描述采用统一结构模型的区块链。单体链是指节点同时负责共识、数据可用性和执行的链。由于交易在链上验证,单体链也充当结算层。

单体区块链是如何工作的?

在单体链中,所有任务都在单一层,或一组紧密耦合、在同一层运行的链上处理。后一种区分很重要:像 Polkadot 的平行链或 Avalanche 的子网这样处理所有角色的互联区块链网络,并不算作模块化架构。

为了理解单体链的运作方式,我们以 Bitcoin 协议为例:

  1. Bitcoin 节点从另一个节点收到一笔交易,验证其签名,并确保其满足共识规则。
  2. 如果交易有效,节点将其加入内存池(否则丢弃该交易)。
  3. 矿工从内存池中取出交易,将其加入候选区块。
  4. 如果矿工成功找到候选区块的 nonce(按照工作量证明规则),他们就可以向其他节点广播该区块。其他节点重新执行交易以确保有效性,如果全部通过,则将新区块添加到链上。
  5. 这一过程随着其他矿工的参与不断重复,最终通过在先前添加的区块之上构建新区块来延长链条。
展示单体链上交易执行方式的示意图。来源:Euromoney
展示单体链上交易执行方式的示意图。来源:Euromoney

什么是单体区块链架构?

上一节描述了工作量证明链上一笔交易的工作流程,但这如何转化为单体架构?以下是单体链上的节点为每笔交易所做的事情:

1. 数据可用性

每个节点都持有整条区块链的副本,并存储每一笔交易。节点始终可以向其他节点请求交易数据。

2. 执行

所有节点重新执行交易以检查有效性。在基于账户的区块链(通常是支持智能合约的区块链)中,节点执行交易以计算新的网络状态。

3. 共识

节点就哪些交易将被处理进新区块,以及其中交易的排序达成一致。

4. 结算

结算要求将交易永久提交到链的历史记录中。提出交易的节点必须为区块的完整性押上经济代价。对于工作量证明区块链而言,这种"押注"是挖掘新区块所消耗的能量;而权益证明区块链则要求验证者为区块的有效性质押代币——如果有恶意方试图将虚假或不准确的交易写入链上,这些代币可能会被没收。

单体区块链架构要求节点执行所有这些角色。这与模块化链不同,后者将执行与结算、共识和数据可用性分离开来。

Architecture Type
Components

Monolithic

Execution, Settlement, Consensus, and Data Availability

Modular

Execution

Modular

Settlement

Modular

Consensus and Data Availability

单体区块链设计有哪些优势?

单体区块链设计具有以下优势:安全性、实用性和简洁性。

1. 安全性

单体区块链的优势在于能够自行保证安全性。节点可以看到链上执行的交易,并在达成共识之前检查其有效性。由于区块链数据被冗余存储在多个节点上,数据可用性问题也就变得容易解决。

2. 实用性

除其他职责外还负责执行的单体区块链具有更好的价值主张。由于用户会因多种用途而购买原生代币,从长期来看它能积累更多价值。

3. 简洁性

单体区块链更容易设计和实现,因为开发者可以借鉴多年来在区块链技术上积累的实验经验。设计安全且高效的模块化链则需要更高的技能水平,并在设计过程中引入更多需要考虑的因素。

单体区块链有哪些缺点?

单体区块链设计具有以下缺点:执行效率低下、资源限制、灵活性不足、可扩展性、安全性和去中心化方面的问题。

  1. 执行效率低下:单体链上的节点必须重新执行交易以验证有效性。
  2. 资源限制:节点资源(如存储和带宽)方面的限制会影响区块链的效率。
  3. 灵活性:单体链缺乏灵活性,无法在不牺牲其他特性的前提下针对某项特性进行优化。
  4. 可扩展性:为实现更高吞吐量,单体链会采用更快的出块时间和更大的区块大小。这会对节点提出更高的硬件要求,并减少能够验证该链的节点数量——从而导致中心化和更大的安全风险。
  5. 安全性与去中心化:为实现高度去中心化,单体区块链会限制出块时间和区块大小。这会增加验证节点的数量,但让每个节点都处理交易会导致吞吐量降低。
  6. 状态膨胀:将交易数据存储在链上会导致区块链体积随时间呈指数级增长。这可能对节点提出更高的硬件要求,并损害去中心化。

单体区块链平台示例

Bitcoin

Bitcoin 是最初的单体链,要求节点根据自己的区块链副本执行每一个区块。这虽然提升了去中心化程度和安全性,但也限制了 Bitcoin 支持高吞吐量或扩容以接纳更多用户的能力(Bitcoin 区块链每秒处理 5-7 笔交易)。

Ethereum 1.0

未采用分片和 rollups 之前的 Ethereum 是一条单体链。这也解释了它较慢的交易速度(每秒 15-20 笔交易),以及对去中心化和安全性的更多侧重。

Solana

Solana 是另一条单体链,在同一处理理执行、数据可用性和共识。与 Ethereum 不同,Solana 针对可扩展性进行了优化,号称速度可达每秒 65,000 笔交易。不出所料,这些可扩展性上的优势是以牺牲去中心化和安全性为代价的——尤其是运行验证者节点所需的硬件要求很高,许多验证者运行的是裸金属环境而非云基础设施。

如何选择:模块化区块链 vs. 单体区块链

单体链和模块化链各有优缺点。选择其中任何一种都需要理解你的项目需求以及可以接受的权衡。高价值的 DeFi 应用可能会选择单体链所提供的安全保障,而需要更低成本、更快速操作的项目(例如高频交易)可能更适合选用针对执行进行优化的模块化链。

Alchemy 支持在单体区块链上构建,包括 Ethereum、Solana 和 Crypto.org。你也可以利用模块化区块链的能力,例如 optimistic rollups(如 Optimism、Arbitrum)以及 ZK-rollups/Validium(StarkNet)。

常见问题

模块化区块链和单体区块链的主要区别是什么?

单体区块链在单一层上处理所有核心功能——执行、共识、数据可用性和结算,而模块化区块链则将这些职责拆分到专门的层或链上。

为什么模块化区块链比单体区块链更具可扩展性?

模块化设计将执行等任务卸载到独立的层,使每个组件都能独立优化,从而在不牺牲基础层去中心化或安全性的前提下实现更高的吞吐量。

采用模块化区块链架构的主要优势是什么?

模块化区块链提供了更好的可扩展性、更大的设计权衡灵活性,并通过让开发者专注于特定功能、同时利用现有基础设施处理其他功能,从而实现更快速地推出新区块链。

模块化区块链设计的缺点是什么?

模块化区块链在各层之间的协调上引入了复杂性,无法独立保证自身的安全属性,并且相较于单体链,其代币效用可能更有限。

Ethereum 是如何作为模块化区块链运作的?

Ethereum 正通过分片(将数据拆分到多条链上)和以 rollup 为中心的方式向模块化转型:它负责结算、共识和数据可用性,而将执行外包给 Layer 2 的 rollups。

模块化区块链平台有哪些例子?

例子包括 Celestia 和 Polygon Avail(数据可用性层)、像 Optimism 和 Arbitrum 这样的 rollups(执行层),以及在不同层之间分离执行、结算和数据可用性的 validiums。

单体区块链设计有哪些优势?

单体区块链在设计和实现上更简单,能够自行保证安全属性,并且由于用户在多种功能上都需要使用原生代币,通常具有更好的代币效用。

Solana 是单体区块链还是模块化区块链?

Solana 是一条单体区块链,在同一处理理执行、数据可用性和共识,并针对可扩展性进行了优化,号称速度可达每秒 65,000 笔交易。

Background gradient

构建区块链应用

Alchemy 将最强大的 Web3 开发者产品和工具与资源、社区及专业支持结合在一起。