---
title: "模块化区块链与单体区块链"
description: "了解模块化与单体区块链设计之间的差异"
---

# 模块化区块链与单体区块链

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

自最早的加密货币出现以来,单体区块链一直是行业标准,但这种局面正在迅速改变。越来越多的证据表明单体设计的性能并非最优,模块化区块链因此逐渐流行起来。模块化链只专注于特定任务,而将其余任务交给其他层处理。

本指南将从宏观层面介绍模块化区块链的概念。我们会解释模块化区块链的工作原理、它与单体区块链的区别,以及模块化设计对区块链普及的意义。

## 什么是模块化区块链?

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

### 1. 共识

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

### 2. 执行

执行是指区块链上的节点如何处理交易,从而使区块链在不同状态之间转换。参与共识的节点必须使用自己的区块链副本执行交易以完成验证,然后才能对区块进行验证。

### 3. 数据可用性

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

### 4. 结算

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

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

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

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

模块化链是更大的"模块化技术栈"中的一个组件,不同的模块化链可以组合以实现不同目的。模块化区块链就像"可插拔模块",可以根据使用场景被替换或与其他模块结合。

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

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

- **执行**:支持交易执行,并支持智能合约的部署与交互。
- **数据可用性**:保证交易数据的可用性。
- **共识**:就交易的内容与排序达成一致。
- **结算**:提供一个用于最终确定交易、解决争议、验证证明,以及在不同执行层之间进行桥接的层。

<ImageBlock
  src="https://media.alchemy.com/1704285186-modular-blockchain-architecture.jpeg"
  alt="模块化区块链堆栈中不同层级的说明。来源：Celestia"
  width={1050}
  height={650}
  caption="模块化区块链堆栈中不同层级的说明。来源：Celestia"
/>

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

一条模块化链往往会同时执行两个或更多功能,尤其是当这些功能相互依赖时。例如,数据可用性层也必须就数据的排序达成共识,否则就无法判断哪些数据代表了正确的历史版本。

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

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

##### 分片(Sharding)

分片是将一个系统(例如数据库)拆分成若干部分并行工作的过程。通过将功能拆分到多个组件上,系统可以获得比所有部分都承担相同职责时更高的产出和效率。在区块链网络中,分片将区块链拆分为多条子链,每条子链处理网络活动的一部分。

Ethereum 正在采用一种分片设计,届时将有 64 条分片链并行运行。分片可以并行处理交易(执行分片),也可以充当存储不同区块链数据片段的"仓库"(数据分片)。通过数据分片,[Ethereum 节点](http://www.alchemy.com/overviews/what-is-an-ethereum-node)将只存储发布在其所属分片链上的数据;这与目前要求所有节点存储相同数据的结构形成对比。

<ImageBlock
  src="https://media.alchemy.com/1703771502-shard-chains.jpeg"
  alt="展示分片 Ethereum 区块链架构的图示。来源：vitalik.ca"
  width={1542}
  height={687}
  caption="分片链"
/>

‍[Ethereum 分片](https://www.alchemy.com/overviews/ethereum-sharding-an-introduction-to-blockchain-sharding)是模块化的一种形式,其中不同的组件(分片链)承担不同的职责。在数据分片中,各分片链存储 Ethereum 数据的不同部分;而在执行分片中,每条分片链可以处理各自的交易集合,从而提高数据吞吐量并缩短处理时间。

##### Rollups

一些开发者采用了[以 rollup 为中心的方法](https://ethereum-magicians.org/t/a-rollup-centric-ethereum-roadmap/4698)来[扩展 Ethereum](https://www.alchemy.com/overviews/ethereum-scaling-solutions)。与[侧链](https://www.alchemy.com/overviews/sidechains-vs-layer2s)这类纯粹的链下扩容方案不同,rollup 与父链紧密耦合。可以说,rollup 是主链的延伸,目的是为主链扩展吞吐量。

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

<ImageBlock
  src="https://media.alchemy.com/1704285306-layer1-layer2-modular-blockchain.jpeg"
  alt="模块化区块链架构中，作为 Layer 1 基础层的 Ethereum 与 Layer 2 rollup 的架构图示"
  width={1050}
  height={492}
  caption="展示 Ethereum（Layer 1 基础层）与 rollup（Layer 2）在模块化区块链架构中如何协作的图示。来源：Celestia"
/>

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

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

#### 1. 可扩展性

区块链不可能三角指出,一条区块链在去中心化、安全性和可扩展性这三个特性中只能同时具备两个,而无法三者兼得。对某些特性(如可扩展性)的优化会导致其他方面(安全性和去中心化)出现取舍,这也是区块链扩容困难的原因所在。

然而,扩容困难通常发生在区块链试图在*单一*层上同时处理所有活动的情况下。将模块化思路应用到区块链上(即在不同层之间拆分任务)可以在不引入不良信任假设的前提下提升规模。

例如,专注于执行的 rollup 比普通链具有更强的可扩展性。同时,由于它们依赖 Ethereum 提供共识和数据可用性,因此也能获得较高的安全性。

#### 2. 启动新区块链

由于需要建立起自身的安全属性,启动一条新区块链可能相当困难。权益证明链可能需要建立广泛的代币分布以避免中心化风险,而工作量证明链则可能需要吸引足够多的矿工以防止少数几方控制网络的算力。

但如果开发者可以只专注于最基本的部分(比如执行),再接入另一个模块化区块链组件来处理特定任务(比如安全性)呢?借助模块化设计,新区块链可以更快启动,而不必担心把架构的每个部分都设计得尽善尽美。

#### 3. 灵活性

模块化提供了单体链根本无法提供的灵活性。Bitcoin 对去中心化和安全性的专注天然排除了可扩展性,而高吞吐量的链则往往要在去中心化和安全性上做出一定妥协。

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

1. 安全和数据可用性层由于交易被单独处理,可以获得额外的可扩展性收益。它只需要强制执行链下执行的有效性,并保证链下数据的可用性。这正是 Ethereum 的可扩展性从 rollup 中获益的方式。
1. 执行层(针对可扩展性进行了优化)可以借助父链的特性获得额外的安全性收益。这正是 Layer 2 从 Ethereum 的去中心化中获益的方式。

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

模块化区块链设计存在以下缺点:安全性、复杂性,以及代币价值问题。

#### 1. 安全性

与单体链不同,模块化链无法自行保证自身的安全属性。如果负责安全的层(通常处理共识和数据可用性)效果不佳,模块化链就会面临失效的风险。

#### 2. 复杂性

实现模块化区块链设计会带来新的复杂性。例如,Ethereum 的数据分片方案依赖[数据可用性抽样](https://hackmd.io/@vbuterin/sharding_proposal)来确保某个分片上的节点不会隐瞒数据。同样,执行层也必须引入一些复杂机制,比如欺诈证明和有效性证明,以便安全层能够强制执行链下状态转换的有效性。

#### 3. 代币价值

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

## 模块化区块链平台示例

### Ethereum

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

### Celestia 与 Polygon Avail

Celestia 和 Polygon Avail 是两条新的模块化区块链,主要专注于共识和数据可用性。Celestia 和 Polygon Avail 的节点只负责存储和排序交易,不解读交易数据以进行执行。预计这些链将作为其他执行层(例如 rollup)的数据可用性层。

<ImageBlock
  src="https://media.alchemy.com/1704285348-celestia-modular-blockchain.png"
  alt="Celestia，一个专注于共识和数据可用性的模块化区块链"
  width={1600}
  height={567}
/>

### Validiums

Validium 与[零知识 rollup](https://www.alchemy.com/blog/zero-knowledge-rollups)类似:它在链下执行交易,并将交易(批量)连同有效性证明一起提交给父链。区别在于,validium 链会将链下数据存储在别处,而不是父链上。这可以借助[数据可用性委员会](https://medium.com/starkware/data-availability-e5564c416424),或者由权益证明验证者组成的数据可用性网络来实现(Celestia 就是基于 PoS 的数据可用性网络的一个例子)。

Validium 的模块化技术栈如下:

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

### Rollups

如前所述,rollup 设计([乐观 rollup](https://www.alchemy.com/overviews/optimistic-rollups) 和[零知识 rollup 项目](https://www.alchemy.com/overviews/zk-rollup-projects))采用了模块化方法。运行[Optimistic Virtual Machine](<https://www.alchemy.com/overviews/optimistic-virtual-machine#:~:text=The%20Optimistic%20Virtual%20Machine%20(OVM)%20is%20the%20execution%20environment%20for,Ethereum%20through%20off%2Dchain%20execution.>)的乐观 rollup,或者[运行 zkEVM](https://www.alchemy.com/overviews/zkevm)的 ZK-rollup,都充当执行层(执行智能合约、处理交易)的角色。不过,它们在其他功能上依赖 Ethereum:

1. **数据可用性与共识**:Rollup 会以 CALLDATA 的形式将交易数据发布到 [Ethereum 主网](https://www.alchemy.com/rpc/ethereum)。这使得任何人都可以在必要时执行 rollup 的交易并重建其状态。
1. **结算**:所有 rollup 交易最终都在 Ethereum 上完成结算。对于零知识 rollup 来说,这发生在[零知识证明](https://www.alchemy.com/overviews/snarks-vs-starks)被验证之后。乐观 rollup 的用户则需要等到挑战期结束,或者在欺诈证明计算完成后交易被判定为有效。

## 什么是单体区块链?

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

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

在单体链中,所有任务都在单一层,或一组在同一层上紧密耦合运行的链上完成。后一种区分需要特别注意:一个由多条相互连接、各自承担全部角色的区块链组成的网络——比如 Polkadot 的平行链或 Avalanche 的子网——并不属于模块化架构。

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

1. Bitcoin 节点从另一个对等节点接收到一笔交易,验证签名,并确认其符合共识规则。
1. 如果交易有效,节点将其加入内存池(否则丢弃该交易)。
1. 矿工从内存池中取出交易,将其加入候选区块。
1. 如果矿工成功找到候选区块的 nonce 值(按照工作量证明规则),就可以将该区块广播给其他节点。其他节点会重新执行交易以确认其有效性,若全部通过验证,则将新区块添加到链上。
1. 这一过程会随着其他矿工不断重复,链条也随之在此前添加的区块基础上不断增长。

<ImageBlock
  src="https://media.alchemy.com/1704285398-monolithic-chain-transactions.png"
  alt="展示单体链上交易如何执行的图示。来源：Euromoney"
  width={800}
  height={500}
  caption="展示单体链上交易如何执行的图示。来源：Euromoney"
/>

### 什么是单体区块链架构?

上一节描述了工作量证明链上一笔交易的处理流程,但这在单体架构中具体是如何体现的呢?以下是单体链上的节点在处理每笔交易时需要完成的工作:

#### 1. 数据可用性

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

#### 2. 执行

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

#### 3. 共识

节点就哪些交易会被打包进新区块以及这些交易的排序达成一致。

#### 4. 结算

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

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

<EmbeddedTable
  table={{
    columns: [
      { key: "1", width: 200, title: "Architecture Type", dataType: "object" },
      { key: "2", width: 200, title: "Components", dataType: "object" },
    ],
    data: [
      {
        "1": { title: "<p>Monolithic</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Execution, Settlement, Consensus, and Data Availability</p>", tooltip: "", icon: "" },
        id: 0,
      },
      {
        "1": { title: "<p>Modular</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Execution</p>", tooltip: "", icon: "" },
        id: 1,
      },
      {
        "1": { title: "<p>Modular</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Settlement</p>", tooltip: "", icon: "" },
        id: 2,
      },
      {
        "1": { title: "<p>Modular</p>", tooltip: "", icon: "" },
        "2": { title: "<p>Consensus and Data Availability</p>", tooltip: "", icon: "" },
        id: 3,
      },
    ],
  }}
/>

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

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

#### 1. 安全性

单体区块链的优势在于能够自行保证自身的安全性。节点可以看到链上执行的交易,并在达成共识之前检查其有效性。由于区块链数据被冗余存储在多个节点上,[数据可用性问题](https://blog.polygon.technology/the-data-availability-problem-6b74b619ffcc/)也就变得相对容易解决。

#### 2. 实用性

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

#### **3. 简单性**

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

### 单体区块链有哪些缺点?

单体区块链设计存在以下缺点:执行效率低下、资源限制、灵活性不足、可扩展性、安全性,以及去中心化问题。

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

## 单体区块链平台示例

### Bitcoin

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

### Ethereum 1.0

在没有分片和 rollup 的情况下,Ethereum 是一条单体链。这也解释了它交易速度较慢(每秒 15-20 笔交易),以及更加注重去中心化和安全性的原因。

### Solana

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

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

单体链和模块化链各有优劣。选择其中一种方案需要充分理解你的项目需求以及可以接受的取舍。高价值的 DeFi 应用可能会选择单体链所提供的安全保证,而需要更便宜、更快速操作(例如高频交易)的项目,可能更适合选用针对执行进行优化的模块化链。

Alchemy 支持在单体区块链上构建,包括 [Ethereum](https://www.alchemy.com/ethereum?a=b19fd62f31)、[Solana](https://www.alchemy.com/solana?a=b19fd62f31) 和 [Crypto.org](https://www.alchemy.com/crypto-org?a=b19fd62f31)。你也可以借助模块化区块链的能力,例如乐观 rollup(如 [Optimism](https://www.alchemy.com/layer2/optimism?a=b19fd62f31)、[Arbitrum](https://www.alchemy.com/layer2/arbitrum?a=b19fd62f31))以及 ZK-rollup/Validium([StarkNet](https://www.alchemy.com/layer2/starknet?a=b19fd62f31))。

## 常见问题

### 模块化区块链与单体区块链之间的主要区别是什么?

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

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

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

### 使用模块化区块链架构有哪些主要优势?

模块化区块链能提升可扩展性、在设计取舍上提供更大灵活性,并且允许开发者专注于特定功能、借助现有基础设施完成其余部分,从而实现更快的区块链启动。

### 模块化区块链设计有哪些缺点?

模块化区块链在各层之间的协调上会引入复杂性,无法自行保证自身的安全属性,并且与单体链相比,代币的实用性可能有限。

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

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

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

例子包括 Celestia 和 Polygon Avail(数据可用性层)、Optimism 和 Arbitrum 等 rollup(执行层),以及在不同层之间拆分执行、结算和数据可用性的 validium。

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

单体区块链设计简单、易于实现,能够自行保证自身的安全属性,并且由于用户需要原生代币来完成多种功能,通常具有更好的代币实用性。

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

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