昨天講了 L1 鏈上擴容的兩種方法,分別是縮短區塊時間,以及增加區塊大小。兩種方法儘管看似美好,但背後的代價是提升了新的驗證者節點的進入門檻,導致去中心化程度與安全性降低。除了以太坊本身外,我們也介紹了如比特幣、Solana 等其他區塊鏈的做法。
區塊鏈相當於一個分散式的數位帳本,以「以太坊」為例,他的狀態 - 帳戶 - 會隨著交易的發生與驗證而改變、轉移。其中,驗證者提交的交易驗證結果如何在這個巨大的全球分散式網路中,被其他的節點一致認同,是一個大難題。因此,不同的區塊鏈網路通常都有獨特的共識演算法,以利網路中節點們能對於驗證者提出之驗證節點,相當於新狀態,達成共識。
共識演算法最重要的是達成共識,也就是確保交易的最終性(Finality),而這也進一步使網路的**安全性(Security)**得到保障。
那麼,這個我們的主題「擴容」、提升整個網路的吞吐量(Throughput)與 TPS 有什麼關係呢?不同的共識演算法,如 PoW、PoS 等等,由於底層共識機制的不同,達成共識所需花費的時間也有所不同,導致網路最終的吞吐量有所不同。
比特幣之類的區塊鏈,就因為底層的共識機制(PoW),導致 TPS 只有 7-10,不過相對的,該鏈就有更高的去中心化程度與安全性。這也正好呼應到 Day 3 提到區塊鏈的不可能三角。
接下來,將介紹以太坊的共識機制,以及其他常見的區塊鏈及其共識演算法。
早期的以太坊(又稱為以太坊 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 個區塊後,才認為區塊已達到最終性。這種機率性的區塊最終性,也導致交易確認需要花費更多時間。
以太坊在 The Merge 後轉為 PoS 共識機制,其區塊最終性由 **Gasper(LMD-GHOST + Casper FFG)**所保證,而這也是以太幣 PoS 的一個重要機制。相對於比特幣,以太坊的區塊最終性是 deterministic 的。
Gasper 同時也定義了區塊驗證者(Proposer + Attester)的獎勵與懲罰。
其中,故意作惡主要有以下兩種行為:
驗證者試圖同時在兩個不同的區塊鏈分叉上投票,也就是 Proposer 在他的 Slot 時間內,同時簽署並廣播兩個不同的區塊。
攻擊者要控制超過 2/3 質押總量的以太幣,才能建立一個與主鏈不同的最終確定分叉。
系統偵測到故意作惡後,會直接對驗證者執行 Slashing 懲罰,直接沒收並銷毀質押的以太幣。
Casper FFG(Friendly Finality Gadget)是一種最終性確認演算法,而區塊的最終性被分為兩階段。
最終性、Slashing 懲罰、不負責創建新區塊,需要底層區塊鏈與分叉選擇規則
以太坊中的主鏈(又稱規範鏈、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, 知乎