---
title: "Modular 與 Monolithic 區塊鏈比較"
description: "探索 Modular 與 Monolithic 區塊鏈設計的差異"
---

# Modular 與 Monolithic 區塊鏈比較

每個區塊鏈都有相同的核心任務:提供共識與安全性、保證資料可用性,以及執行交易。通常,大多數區塊鏈會在同一層處理這些工作——這類區塊鏈,例如 Bitcoin,被稱為「單體式區塊鏈」(monolithic blockchain)。

單體式區塊鏈自最早的加密貨幣出現以來一直是產業標準,但這個情況正在快速改變。隨著越來越多證據顯示單體式設計的效能並非最佳解,模組化\*區塊鏈正逐漸受到歡迎。模組化鏈只專注於特定\*任務,將其餘工作交由其他層來處理。

本指南將對模組化區塊鏈的概念做高層次的介紹。我們會說明模組化區塊鏈如何運作、它與單體式區塊鏈有何不同,以及模組化設計對區塊鏈普及為何重要。

## 什麼是模組化區塊鏈?

模組化區塊鏈是一種只專注於處理少數幾項工作,並將其餘工作外包給一個或多個獨立層的區塊鏈。要理解模組化區塊鏈如何運作,我們必須先了解一般區塊鏈的「工作項目」:共識、執行、資料可用性,以及結算。

### 1. 共識

共識是指節點就區塊鏈上哪些資料可以被驗證為真實且準確一事達成一致的機制。共識協定決定交易如何排序,以及新區塊如何加入鏈中。

### 2. 執行

執行是指區塊鏈上的節點如何處理交易,使區塊鏈在不同狀態之間轉換。參與共識的節點必須先使用自己的區塊鏈副本執行交易以進行驗證,才能對區塊進行驗證(validate)。

### 3. 資料可用性

區塊鏈會強制執行要求交易資料必須可用的規則。這代表區塊生產者必須為每個區塊發布資料,供網路上其他節點下載並儲存;這些資料必須能在被要求時提供。

### 4. 結算

最後,區塊鏈提供「最終性」(finality)——保證已被提交到鏈上歷史紀錄的交易是不可逆的(或稱「不可竄改」)。要達成這一點,區塊鏈必須確信一筆交易是有效的。因此,結算功能要求該鏈驗證交易、驗證證明,並仲裁爭議。

在探討完區塊鏈的關鍵功能後,我們現在可以來檢視模組化區塊鏈設計的運作機制。

### 模組化區塊鏈如何運作?

模組化區塊鏈運作的原則是模組化(modularity),也就是將一個系統拆分成不同的元件,這些元件可以用各種方式組合以達成特定目標。模組化仰賴專業分工:每個元件只能做少數幾件事,但必須把這些事做_好_。你可以把模組化元件想像成樂高積木,可以組合成不同的結構。

模組化鏈是一個更大的「模組化堆疊」中的一個元件,這些區塊鏈可以組合起來達成不同的目的。模組化區塊鏈就像「可插拔模組」,可以依據使用情境替換,或彼此合併。

#### 什麼是模組化區塊鏈架構?

模組化區塊鏈可以被設計成處理以下其中一項或多項任務的組合:

- **執行**:支援交易的執行,並讓智能合約得以部署與互動。
- **資料可用性**:保證交易資料的可用性。
- **共識**:就交易的內容與排序達成一致。
- **結算**:提供一個層,用於將交易最終確定、解決爭議、驗證證明,以及在不同執行層之間橋接。

<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 條分片鏈(shard chain)將平行運作。分片鏈可以平行處理交易(執行分片),或作為儲存不同區塊鏈資料區塊的「倉庫」(資料分片)。透過資料分片,一個[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 區塊鏈將運算工作外包給 rollups,自身則專注於結算、共識與資料可用性。Rollups 可以透過更快的區塊時間與更大的區塊,積極地針對執行進行優化,而不會損害去中心化程度或安全性。這是因為 Ethereum 作為位於 Layer 2 的 rollups 的基礎層(即「Layer 1」)。

<ImageBlock
  src="https://media.alchemy.com/1704285306-layer1-layer2-modular-blockchain.jpeg"
  alt="模組化區塊鏈架構中，Ethereum 作為 Layer 1 基礎層與 Layer 2 rollup 的示意圖"
  width={1050}
  height={492}
  caption="展示 Ethereum（Layer 1 基礎層）與 rollup（Layer 2）如何在模組化區塊鏈架構中運作的示意圖。來源：Celestia"
/>

### 模組化區塊鏈設計有哪些優點?

模組化區塊鏈設計提供以下優點:可擴展性、彈性,以及能夠推出新區塊鏈的能力。

#### 1. 可擴展性

區塊鏈三難困境指出,一條區塊鏈在三種可能特性中——去中心化、安全性、可擴展性——只能同時具備其中兩種,永遠無法三者兼得。針對某些特性(可擴展性)進行優化,會導致其他方面(安全性與去中心化)產生取捨,這也是為什麼擴展區塊鏈如此困難的原因。

然而,擴展上的困難大多發生在區塊鏈試圖在_單一_層之下同時處理所有活動時。將模組化應用於區塊鏈(將任務分散到不同層)可以在不引入不良信任假設的情況下提升規模。

舉例來說,專注於執行的 rollups 比一般鏈提供更高的可擴展性。儘管如此,它們仍能透過依賴 Ethereum 進行共識與資料可用性,達到高度的安全性。

#### 2. 推出新區塊鏈

推出一條新的區塊鏈可能相當困難,因為需要建立起其安全性的相關特性。採用權益證明(proof-of-stake)的鏈可能需要建立廣泛的代幣分佈,以避免中心化風險;而採用工作量證明(proof-of-work)的鏈則可能需要吸引礦工,以防止少數方掌控網路的算力。

但如果開發者可以只專注於最基本的部分,例如執行,再插入另一個模組化區塊鏈元件來處理特定任務,例如安全性,那會如何?透過運用模組化設計,新的區塊鏈可以更快推出,而不必擔心架構的每個部分是否都正確無誤。

#### 3. 彈性

模組化提供了單體式鏈所無法提供的彈性。Bitcoin 專注於去中心化與安全性,這自然排除了可擴展性;而高吞吐量的鏈則往往在去中心化與安全性上做出某種程度的取捨。

專為特定用途打造的模組化鏈,在取捨與設計實作方面提供了更大的彈性。舉例來說,一個模組化區塊鏈系統可能包含專注於安全性與資料可用性的模組化鏈,而其他鏈則專注於執行。以下說明兩者如何從模組化設計中獲益:

1. 安全性與資料可用性層能從額外的可擴展性中獲益,因為交易是分開處理的。它只需要強制執行鏈下執行結果的有效性,並保證鏈下資料的可用性。這正是 Ethereum 的可擴展性受益於使用 rollups 的方式。
1. 執行層(針對可擴展性進行優化)透過運用父鏈的特性,獲得額外的安全性。這正是 Layer 2 從 Ethereum 的去中心化程度中受益的方式。

### 模組化區塊鏈有哪些缺點?

模組化區塊鏈設計有以下缺點:安全性、複雜度,以及代幣價值。

#### 1. 安全性

與單體式鏈不同,模組化鏈無法自行保證其安全性。如果安全層(通常負責共識與資料可用性)效果不佳,該模組化鏈就有失敗的風險。

#### 2. 複雜度

實作模組化區塊鏈設計會引入新的複雜度。舉例來說,Ethereum 的資料分片計畫依賴[資料可用性抽樣](https://hackmd.io/@vbuterin/sharding_proposal)(data availability sampling),以確保某個分片上的節點不會扣留資料。同樣地,執行層必須具備某些複雜的機制,例如詐欺證明(fraud proof)與有效性證明(validity proof),讓安全層能夠強制執行鏈下狀態轉換的有效性。

#### 3. 代幣價值

有些模組化鏈可能因應用場景有限,難以為其原生代幣吸引價值。舉例來說,一個純粹專注於共識與資料可用性的層,其效用代幣的使用需求很可能會低於執行層。這類網路吸引參與者也可能更加困難。

## 模組化區塊鏈平台範例

### Ethereum

如前所述,Ethereum 對資料分片以及以 rollup 為中心的運算方式的依賴,使其成為某種模組化鏈。在第一種情況下,它將共識與資料可用性分離;在第二種情況下,它將執行外包出去。

### Celestia 與 Polygon Avail

Celestia 與 Polygon Avail 是兩個新的模組化區塊鏈,主要專注於共識與資料可用性。Celestia 與 Polygon Avail 的節點只負責儲存與排序交易;它們不會為了執行而解讀交易資料。預期這些鏈將作為其他執行層(例如 rollups)的資料可用性層。

<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)(data availability committee),或是由權益證明驗證者組成的資料可用性網路(Celestia 就是基於 PoS 的資料可用性網路的一個例子)

Validium 的模組化堆疊如下:

- 執行層(validium 鏈)
- 結算與安全層(父鏈)
- 資料可用性與共識層(DAC 或 PoS 驗證者網路)

### Rollups

如前所述,rollup 設計([樂觀 rollups](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. **資料可用性與共識**:Rollups 會以 CALLDATA 的形式,將交易資料發布到 [Ethereum Mainnet](https://www.alchemy.com/rpc/ethereum)。這讓任何人都能執行該 rollup 的交易,並在必要時重建其狀態。
1. **結算**:所有 rollup 交易都在 Ethereum 上完成最終確定。對於零知識 rollups 而言,這會在[零知識證明](https://www.alchemy.com/overviews/snarks-vs-starks)驗證完成後發生。樂觀 rollup 的使用者則需要等到挑戰期(challenge period)結束,或是交易在經過詐欺證明計算後被判定為有效。

## 什麼是單體式區塊鏈?

「Monolithic」意指「由單一整塊構成」,這也說明了為何用它來描述採用統一結構模型的區塊鏈。單體式鏈是指節點負責共識、資料可用性與執行的鏈。由於交易是在鏈上驗證的,單體式鏈同時也扮演結算層的角色。

### 單體式區塊鏈如何運作?

在單體式鏈中,所有任務都在單一層,或一組緊密耦合、運作在同一層的鏈上處理。後面這個區別很重要:一個由多條互相連接的區塊鏈組成、共同處理所有角色的網路,例如 Polkadot 的 parachains 或 Avalanche 的 subnets,並不能算是模組化架構。

為了理解單體式鏈如何運作,我們以 Bitcoin 協定為例:

1. 一個 Bitcoin 節點從另一個節點接收到一筆交易,驗證其簽章,並確認它符合共識規則。
1. 如果交易有效,節點會將其加入記憶池(mempool)(否則就會丟棄該交易)。
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. 狀態膨脹(State bloat):將交易資料儲存在鏈上,會導致區塊鏈的大小隨時間呈指數成長。這可能對節點提出更高的硬體需求,並損害去中心化程度。

## 單體式區塊鏈平台範例

### Bitcoin

Bitcoin 是最原始的單體式鏈,要求節點針對自己的區塊鏈副本執行每一個區塊。雖然這提升了去中心化程度與安全性,但也限制了 Bitcoin 支援高吞吐量或擴展以容納更多使用者的能力(Bitcoin 區塊鏈每秒可處理 5 到 7 筆交易)。

### Ethereum 1.0

在沒有分片與 rollups 的情況下,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)。你也可以善用模組化區塊鏈的優勢,例如樂觀 rollups(例如 [Optimism](https://www.alchemy.com/layer2/optimism?a=b19fd62f31)、[Arbitrum](https://www.alchemy.com/layer2/arbitrum?a=b19fd62f31))以及 ZK-rollups/Validium([StarkNet](https://www.alchemy.com/layer2/starknet?a=b19fd62f31))。

## 常見問題

### 模組化與單體式區塊鏈之間的主要差異是什麼?

單體式區塊鏈在單一層上處理所有核心功能——執行、共識、資料可用性與結算——而模組化區塊鏈則將這些工作拆分到專門的層或鏈當中。

### 為什麼模組化區塊鏈比單體式區塊鏈更具可擴展性?

模組化設計會將執行等任務外包給獨立的層,讓每個元件都能各自進行優化,並在不犧牲基礎層去中心化程度或安全性的情況下,實現更高的吞吐量。

### 使用模組化區塊鏈架構有哪些主要優點?

模組化區塊鏈能提升可擴展性、在設計取捨上提供更大的彈性,並讓開發者能專注於特定功能,同時運用現有基礎設施處理其他功能,進而加快區塊鏈的推出速度。

### 模組化區塊鏈設計有哪些缺點?

模組化區塊鏈會在各層之間的協調上引入複雜度,無法自行保證其安全性,且與單體式鏈相比,其代幣的效用可能較為有限。

### Ethereum 如何以模組化區塊鏈的形式運作?

Ethereum 正透過分片(將資料拆分到多條鏈上)以及以 rollup 為中心的做法轉向模組化,在這種做法中,Ethereum 負責結算、共識與資料可用性,而將執行外包給 Layer 2 rollups。

### 模組化區塊鏈平台有哪些例子?

例子包括 Celestia 與 Polygon Avail(資料可用性層)、Optimism 與 Arbitrum 等 rollups(執行層),以及將執行、結算與資料可用性分散到不同層的 validiums。

### 單體式區塊鏈設計有哪些優點?

單體式區塊鏈在設計與實作上較為簡單,能自行保證其安全性,且由於使用者需要原生代幣來執行多種功能,其代幣通常具有更好的實用性。

### Solana 是單體式還是模組化區塊鏈?

Solana 是一條單體式區塊鏈,將執行、資料可用性與共識全都放在同一處理,並針對可擴展性進行優化,宣稱速度最高可達每秒 65,000 筆交易。
