跳至內容
0%

開發者的 Ethereum 擴容解決方案指南

Alchemy team headshot

作者 Alchemy

發布於 2022年5月17日閱讀時間 2 分鐘

Ethereum 強調去中心化與安全性,這代表交易處理速度較慢。這影響了網路吞吐量,也限制了去中心化應用程式的擴展能力。

已經有許多方案被提出來解決 Ethereum 的擴展性問題,各自提供不同的優點。本指南將介紹 Ethereum 擴展方案,說明其運作原理及重要性。

什麼是擴展性?

**擴展性指的是系統在使用量呈指數成長時,仍能維持功能不受影響的能力。**在區塊鏈技術的脈絡下,擴展性指的是區塊鏈在交易量增加的情況下,功能不受影響的承載能力。

目前,Ethereum 處理交易的能力僅限於每秒 7-15 筆交易(TPS)。相較之下,傳統的中心化資料庫——例如 Oracle Database 與 Microsoft SQL Server——每秒可處理數千筆交易。

ethereum 每秒交易數圖表

來源:Blockchair

Ethereum 設計影響擴展性的兩個面向

Ethereum 的吞吐量低、處理速度慢,是因為它將去中心化與安全性置於擴展性之前(擴展性三難困境)。

以下是 Ethereum 設計影響擴展性的幾種方式:

1. Ethereum 的共識演算法採循序處理交易

Ethereum 使用工作量證明(PoW),這代表網路上的交易必須經過所有節點的接受與驗證。這有助於去中心化,更重要的是有助於安全性。

缺點是交易的循序執行會影響交易終局性(確認一筆交易所需的時間)。這也進一步導致 Ethereum 無法支援高 TPS 速率。

2. Ethereum 將區塊大小限制在 1MB

Ethereum 限制了每個被挖出的區塊所能容納的資料量(1MB),因為限制區塊大小能讓節點更有效地儲存區塊鏈歷史紀錄,藉此提升去中心化程度。較大的區塊會讓人難以運行全節點,損害去中心化。

然而,1MB 的區塊大小限制減少了礦工能塞進單一區塊的交易資料量,進而影響網路吞吐量。較小的區塊大小也會影響 gas 的成本,也就是在Ethereum 虛擬機中執行運算所需的計算資源。

由於礦工的運算能力有限,他們常常被迫優先處理手續費較高的交易。這在 Ethereum 使用者之間造成了某種競價戰,使交易手續費出現天文數字般的上漲。

什麼是 Ethereum 擴展方案?

**Ethereum 擴展方案是專門設計用來改善 Ethereum 網路上交易執行效率的平台。**像是第二層 Rollups 與側鏈這類的 Ethereum 擴展方案,是採用不同機制來提升網路吞吐量的協定。

ethereum 擴容方案示意圖

來源:Reddit

第一層 vs 第二層擴展方案

擴展方案大致可分為兩類:「鏈上」與「鏈下」方案,兩者依執行的位置做區分。

第一層擴展方案

第一層擴展方案涉及對區塊鏈網路本身進行變更,重新改寫基礎層。所謂「鏈上」,指的是對 Ethereum 的擴展升級是在區塊鏈本身上執行的。

第一層可以透過增加區塊大小來擴展

一個潛在的第一層擴展改進方式是增加區塊大小。如果 Ethereum 的 1MB 區塊大小限制被提高,礦工就會有更多空間在區塊中容納額外的交易資料。

雖然增加 Ethereum 的區塊大小會提升 TPS 速率,但副作用是會緩慢朝向中心化發展,因為隨著區塊大小增加,區塊鏈的體積也會隨之增加——使得運行全節點變得困難(除非你擁有超級電腦)。因此,Ethereum 社群已排除以增大區塊大小作為擴展方案的選項。

第一層可以透過區塊鏈分片(Sharding)並行處理交易來擴展

區塊鏈分片是一種擴展性改進方式,以並行執行交易取代 Ethereum 預設的循序執行模型。在分片機制中,區塊鏈會被分割成較小的鏈(分片),各自驗證並處理不同的交易。

先看看 Ethereum 目前的運作方式:

交易會在整個網路中廣播,直到被驗證為止。分片機制不需要交易獲得所有節點的核准。相反地,每個分片都有負責核准交易的驗證者(稱為 collators)。

每個 collation(分片鏈上一組交易的集合)都必須由三分之二的 collators 簽署。此外,提交的 collation 必須先加入主鏈才能達到終局性。這些機制共同確保了系統的安全性。

透過分片機制,Ethereum 可以在不犧牲去中心化或安全性的情況下提升 TPS。由於各分片鏈可同時處理不同的交易,網路整體的處理能力因而提升。此外,網路參與者仍可透過密碼學證明來驗證分片 collation 的有效性。

ethereum 分片示意圖
來源:Genesis Block

來源:Genesis Block

第二層擴展方案

第二層(L2)擴展方案之所以得名,是因為它們是在主鏈(第一層)之外執行的。第二層擴展方案也稱為「鏈下」方案,其做法是在一條獨立的網路上處理交易,並依賴主鏈提供安全性。

L2 方案的設計通常著重於交易速度與擴展性——去中心化與安全性在此較不是重點。由於它們會將交易資料提交回 Ethereum 主層,L2 可以從主網的去中心化與安全性中受益。此外,由於 L2 方案是建構在 Ethereum 之上,它們不需要自己的原生代幣。

這些鏈下協定可以將多筆交易彙整成單一交易後加入主鏈。這減輕了網路的負擔,並提升了應用程式隨使用量成長而擴展的潛力。

第二層擴展方案的範例包括:

  • Rollups
  • 狀態通道(State channels)
  • Plasma
  • Validium

第二層 vs 側鏈

側鏈是一條與 Ethereum 主網互動、但不依賴其提供安全性的獨立區塊鏈。側鏈透過跨鏈橋與 Ethereum 連接,讓兩條鏈之間可以進行資產轉移。

側鏈在擴展性方面表現良好,因為它們採用了一套不同的設計特性以實現高吞吐量。舉例來說,Polygon 側鏈就使用權益證明(PoS)共識演算法來加快交易速度。

第二層方案與側鏈的主要差異在於其安全性保證。L2 網路享有 Ethereum 的安全保證,而側鏈則沒有。

側鏈的安全性來自其自身的共識機制,而 L2 則受益於 Ethereum 的共識機制。這也是為什麼許多人認為 L2 比側鏈更安全的原因。

為什麼 Ethereum 需要擴展方案?

好的 Ethereum 擴展方案能為 web3 開發者與使用者帶來更低的 gas 費用、更快的交易速度,同時仍維持交易的安全性。

以下是 Ethereum 需要擴展方案的原因:

1. 較低的交易手續費

Ethereum 的 gas 費用問題一直是廣受批評的話題。擴展性改進可以降低網路壅塞,大幅降低交易成本。

較低的 gas 價格能帶來更好的使用者體驗,並提升應用程式的採用率。使用者不必再面對交易失敗或支付高額 gas 費用的困擾。

2. 更快的交易速度

許多擴展方案的設計目的,正是為了改善 Ethereum 在更短時間內處理更多交易的能力。

舉例來說,Rollups 可以將數千筆鏈下交易批次處理成單一的鏈上交易。同樣地,分片機制透過鼓勵交易的並行處理來提升吞吐量。

這些改進的最終結果,是每秒交易數(TPS)速率的提升。雖然估計數字不一,但許多人預期 L2 與分片機制能將 Ethereum 的 TPS 推升至數千。

3. 改善的安全性

L2 是在不降低網路安全性的前提下擴展 Ethereum 的絕佳方式。與鏈上擴展不同,鏈下擴展方案不會影響 Ethereum 的去中心化程度。

儘管這些 L2 是獨立的鏈,它們的安全性仍與 Ethereum 區塊鏈緊密相連。這代表使用者可以安全地與這些方案互動,在享受擴展性優勢的同時,不必冒著資產風險。

五種最受歡迎的 Ethereum 擴展方案

五種最受歡迎的 Ethereum 擴展方案分別是:Rollups、側鏈、狀態通道、Plasma 鏈,以及 Validium。

1. Rollups

Rollups 會將多筆鏈下執行的交易合併或「捲起」成一個批次,再傳送到主鏈上。單一個 rollup 可以包含數百甚至數千筆經過壓縮的交易,藉此減少主鏈需要處理的交易量。

除了改善擴展性之外,Rollups 還能提供接近 Ethereum 本身的安全等級,因為 rollup 中的交易會錨定在 L1 鏈上,確保交易的終局性。

Rollups 主要分為兩種類型:樂觀 rollups 與零知識 rollups。兩者的差異在於交易的運算方式以及提交到 Ethereum 的方式:

零知識 rollups(ZK-rollups)會在鏈下執行運算,並產生一種名為簡潔非互動式知識論證(SNARK)或簡潔透明知識論證(STARK)的密碼學證明。這些**「有效性證明」**向主鏈上的節點保證交易批次的有效性。

樂觀 rollups 預設假定交易為有效,不會為每個交易批次產生有效性證明。不過,樂觀 rollup 中交易的有效性可以透過詐欺證明(fraud proof)提出質疑。

那麼這兩種 rollup 方案相比如何呢?ZK-rollups 由於會產生有效性證明,因此更安全,但這也使它們比樂觀 rollups 慢。

ZK-rollups 是複雜的機制,這使得要為其編寫 EVM 相容性變得困難。因此,相較於樂觀 rollups,ZK-rollups 的功能較為受限。

Polygon 正在研發零知識 EVM(zkEVM),計畫透過 Hermez 2.0 來提升零知識 rollups 在 Ethereum 網路上的功能性。

使用樂觀 rollups 的 Ethereum L2

  • Optimism
  • Arbitrum
  • Boba Network
  • Immutable X

使用 ZK rollups 的 Ethereum L2

  • zkSYNC
  • Loopring
  • dYdX
  • StarkNet

身為開發者,你可以將 Rollups 整合進你的 dApp,藉此改善交易終局性與擴展性。如此一來,你的使用者就不必再經歷高 gas 費用、交易失敗以及緩慢處理速度等在 Ethereum 上常見的問題。

2. 側鏈

側鏈是第二層方案的一種,是一條與 Ethereum 主網並行運作的獨立區塊鏈。這些差異可能包含加密經濟誘因、共識機制等等。

專為 Ethereum 設計的側鏈具備 Ethereum 虛擬機(EVM)相容性,並可支援智能合約。這代表你可以在側鏈上部署專案,並利用其擴展性改進來提升應用程式效能。

跨鏈橋是連接側鏈與 Ethereum 智能合約平台所必需的。顧名思義,區塊鏈橋提供了使用者在主鏈與側鏈之間移動的通道。

要使用橋接,你必須在原始鏈上鎖定一定數量的資產(在此例中為 ETH)。之後,等量的資產會在側鏈上產生,並存入你的錢包中。

接著你就可以在側鏈上自由進行交易,享受其優越的交易處理能力。如前所述,側鏈的設計目的就是提供擴展性,並採用不同的機制來達成此目標。

Ethereum 側鏈範例:

  • Polygon
  • xDAI
  • SKALE

其他替代第一層(L1)區塊鏈也可以作為 Ethereum 側鏈使用,尤其是與 EVM 相容的區塊鏈。這些替代 L1 通常能提供較低的 gas 費用、較好的交易終局性,以及在某些情況下更豐富的功能性。

EVM 相容 L1 範例:

  • Avalanche
  • Fantom
  • Binance Smart Chain

3. 狀態通道

狀態通道是一種鏈下擴展方案,讓雙方可以在不需要主鏈驗證每一筆交易的情況下進行交易。狀態通道本質上是一個多重簽章智能合約,只有在所需各方都核准的情況下才會執行。

狀態通道的運作方式

  1. Alice 想跟每天早上賣她咖啡的 Bob 開設一個狀態通道。假設她在通道中存入 0.4 ETH,這筆交易會被發布到主網上。

  2. 在這筆開通交易之後,Alice 和 Bob 可以隨心所欲地在鏈下執行交易。唯一的限制是雙方都必須簽署交易,也就是說 Alice 和 Bob 必須核准每一次的咖啡付款。

  3. 如果 Alice 用完了她存入的金額,她可以在主鏈上發布一筆退出交易。這筆交易會反映通道的最後已知狀態,並記錄下來以達到終局性。Alice 和 Bob 或許進行了十幾次交易,但 Ethereum 網路只會記錄兩筆交易——進入交易與退出交易。

狀態通道讓雙方可以安全地進行鏈下交易,而不必經歷漫長的等待時間與高額的交易手續費。它也改善了擴展性,因為礦工需要處理的交易數量減少,能夠更快地完成工作。

使用狀態通道的 Ethereum 擴展方案:

  • Raiden Network
  • Connext Network
  • Celer Network

4. Plasma 鏈

Plasma 白皮書提出了「子鏈」的概念,這些子鏈源自主區塊鏈,也就是「根鏈」。雖然 Plasma 鏈可以驗證交易,但它們仍依賴根鏈提供安全性。為了證明交易的有效性,子鏈會向根鏈提交密碼學證明。

Plasma 鏈與側鏈類似,都是透過智能合約與 Ethereum 區塊鏈連接。使用 Plasma 鏈需要先在根鏈的智能合約中鎖定 ETH,才能在子鏈上取得代幣。

Plasma 被視為一種 L2 擴展方案,因為它直接從 Ethereum 的基礎層取得安全性。這也是它比側鏈更安全的原因。

Plasma 會將每個區塊的 Merkle 根 發布到 Ethereum 主鏈上。區塊根是一小段資訊,可用來驗證與交易相關的資訊。如果 Plasma 鏈遭受攻擊,使用者可以安全地退出到主鏈,並使用相應的證明提領自己的資金。

使用 Plasma 的 Ethereum 擴展方案

  • OMG Plasma
  • Gluon Network

5. Validium

Validium 與 ZK-rollups 類似,都是在 Ethereum 主層之外進行運算,但主要差異在於 Validium 採用「鏈下資料可用性」,而不是像 ZK-rollups 那樣將壓縮後的資料發布到主鏈上。

Validium 將資料儲存在鏈下的資料提供者那裡,這在某種程度上使其具有託管性質。不過,像 StarkWare 這類方案會使用資料可用性委員會(DACs)來確保資料提供者誠實運作。

Validium 具有非常低的手續費和快速的交易速度(可達每秒 100,000 筆交易)。不過,與 ZK-rollups 等其他擴展方案相比,它們需要更多的信任假設。

使用 Validium 的 ETH 擴展方案:

  • DiversiFi
  • Immutable X

擴展方案有哪些缺點?

Ethereum 擴展方案的兩個主要缺點是:實作複雜,以及可能提供較低的安全性保證。

1. 複雜性

許多擴展方案的實作相當複雜,這可能會影響其功能性。舉例來說,由於分片升級所需的工作量龐大,Ethereum 開發團隊一再延後其發布日期。

2. 較低的安全性保證

雖然許多 L2 和 L1 擴展方案依賴 Ethereum 提供安全性,但它們終究無法達到與 Ethereum 相同的安全程度。每種擴展方案都會為了速度而犧牲一些要素(例如去中心化與安全性)。使用者在使用這些平台之前,必須充分了解這些風險。

結語

本指南所介紹的這些擴展方案專案,很可能會在 Ethereum 邁向擴展性的過程中扮演重要角色。不過,這是否足以保證長期的擴展性,仍有待觀察。

打算在 L2 上擴展你的下一個 dApp 嗎?

立即註冊 Alchemy 免費帳號,這是全球最大的區塊鏈開發平台,支援包括 Arbitrum、Optimism、Polygon 和 StarkNet 在內的熱門 L2。

Background gradient

打造區塊鏈魔法

Alchemy 結合最強大的 Web3 開發者產品與工具,並提供資源、社群與卓越的支援。