iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0
自我挑戰組

以太坊擴容之路:從 Layer 1 到 Layer 2 的技術全攻略系列 第 6

Day 6 - L1 擴容(二):共識演算法 - 1

  • 分享至 

  • xImage
  •  

上集回顧

昨天講了 L1 鏈上擴容的兩種方法,分別是縮短區塊時間,以及增加區塊大小。兩種方法儘管看似美好,但背後的代價是提升了新的驗證者節點的進入門檻,導致去中心化程度與安全性降低。除了以太坊本身外,我們也介紹了如比特幣、Solana 等其他區塊鏈的做法。

引言

區塊鏈相當於一個分散式的數位帳本,以「以太坊」為例,他的狀態 - 帳戶 - 會隨著交易的發生與驗證而改變、轉移。其中,驗證者提交的交易驗證結果如何在這個巨大的全球分散式網路中,被其他的節點一致認同,是一個大難題。因此,不同的區塊鏈網路通常都有獨特的共識演算法,以利網路中節點們能對於驗證者提出之驗證節點,相當於新狀態,達成共識。

共識演算法最重要的是達成共識,也就是確保交易的最終性(Finality),而這也進一步使網路的**安全性(Security)**得到保障。

那麼,這個我們的主題「擴容」、提升整個網路的吞吐量(Throughput)與 TPS 有什麼關係呢?不同的共識演算法,如 PoW、PoS 等等,由於底層共識機制的不同,達成共識所需花費的時間也有所不同,導致網路最終的吞吐量有所不同。

比特幣之類的區塊鏈,就因為底層的共識機制(PoW),導致 TPS 只有 7-10,不過相對的,該鏈就有更高的去中心化程度與安全性。這也正好呼應到 Day 3 提到區塊鏈的不可能三角。

接下來,將介紹以太坊的共識機制,以及其他常見的區塊鏈及其共識演算法。

以太坊共識機制:從 PoW 到 PoS

早期的以太坊(又稱為以太坊 1.0)也採用 PoW(Proof of Work)作為其底層共識機制。因此,同樣有礦工競爭解決數學難題,導致以下幾個問題:

  • 資源浪費
  • 交易最終性確認時間(區塊出塊時間)不確定
  • 交易時間慢
  • 礦工算力集中到大型礦場導致逐漸中心化

然而,2022 年 The Merge 後,以太坊轉為 PoS(Proof of Stake),被稱為以太坊 2.0。以太坊改為 PoS 後,不再需要讓節點競爭,而是透過質押 32 ETH,並由系統隨機選擇某一節點作為 Block Proposer(提倡者),剩餘節點則為 Attester(證明者)。

如昨天提到,以太坊將時間的基本單位設為一個 Slot(12 秒),Block Proposer 會在這個 Slot 內將廣播、提交到 mempool 中的交易打包至一個區塊中,以手續費高的交易優先。接著,進行交易驗證,包含餘額檢查、交易順序,若發現錯誤則重新排序,直到區塊內交易正確無誤。最後,Proposer 將區塊廣播至網路上,讓其他 Attester 驗證結果無誤。

以太坊區塊最終性

然而,一個區塊驗證無誤後,並不代表區塊中的交易已處在最終狀態(Finality)。

以比特幣的 PoW 為例,區塊最終性的確認其實是「機率性」的。

比特幣區塊遵循「最長鏈原則」,網路上可能同時有多個分叉,直到某一個分叉得到網路上相對更多數的節點認同,變得最長而能確保該分叉上區塊的最終性。因此,通常比特幣區塊會要求使用者等待其後挖出 6 個區塊後,才認為區塊已達到最終性。這種機率性的區塊最終性,也導致交易確認需要花費更多時間。

Gasper

以太坊在 The Merge 後轉為 PoS 共識機制,其區塊最終性由 **Gasper(LMD-GHOST + Casper FFG)**所保證,而這也是以太幣 PoS 的一個重要機制。相對於比特幣,以太坊的區塊最終性是 deterministic 的。

Gasper 同時也定義了區塊驗證者(Proposer + Attester)的獎勵與懲罰。

  • 獎勵:當驗證者誠實地參與驗證,系統會給以太幣作為獎勵
  • 懲罰:離線時,會失去能獲得的獎勵;故意作惡,會沒收質押的以太幣

其中,故意作惡主要有以下兩種行為:

  1. 雙重投票

驗證者試圖同時在兩個不同的區塊鏈分叉上投票,也就是 Proposer 在他的 Slot 時間內,同時簽署並廣播兩個不同的區塊。

  1. 建立另一條最終確定的鏈

攻擊者要控制超過 2/3 質押總量的以太幣,才能建立一個與主鏈不同的最終確定分叉。

系統偵測到故意作惡後,會直接對驗證者執行 Slashing 懲罰,直接沒收並銷毀質押的以太幣。

1. Casper FFG

Casper FFG(Friendly Finality Gadget)是一種最終性確認演算法,而區塊的最終性被分為兩階段。

  1. Justified:當網路上 2/3 個節點驗證後,區塊被認為是 Justified
  2. Finalized:當下一個 Justified 區塊出現後,前一個區塊則變成 Finalized

最終性、Slashing 懲罰、不負責創建新區塊,需要底層區塊鏈與分叉選擇規則

2. LMD-GHOST

以太坊中的主鏈(又稱規範鏈、Canonical chain)上的大部分區塊處於最終狀態(Finalized),但主鏈末端的新區塊,處於 Justified 狀態,可能存在分叉。

當分叉出現時,就需要 LMD-GHOST 這類的分叉選擇演算法選擇正確的分叉。該算法的規則是:「選擇具有最大累積證明權重的分叉作為新的主鏈」。

最後,如果想要更深入了解 Gasper,推薦可以去看 Vitalik 提出的兩篇論文,裡面有非常詳細的介紹。

結語

今天介紹了比特幣與以太坊的共識機制,可以看到不同的機制,以及最終性確認方式,導致交易驗證、區塊被確認時間的不同,間接使得網路的吞吐量、TPS 有所不同。

舉例來說,比特幣一個區塊要 10-15 分鐘才能被確認,而以太坊只需要 12 秒即可。

明天,我們將繼續共識演算法的討論,看看其他區塊鏈(如 Solana、Avalanche)設計了怎麼樣的機制,大幅提升了網路吞吐量。

參考資料

[1] Gasper, Ethereum
[2] Gemini
[3] Casper the Friendly Finality Gadget, arxiv
[4] Combining GHOST and Casper, arxiv
[5] 详解以太坊PoS共识Gasper, 知乎


上一篇
Day 5 - L1 擴容(一):區塊的權衡 - 大小與時間
下一篇
Day 7 - L1 擴容(二):共識演算法 - 2
系列文
以太坊擴容之路:從 Layer 1 到 Layer 2 的技術全攻略10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言