本文由比特根編輯團隊撰寫,聚焦區塊鏈智能合約在並發與並行處理上的根本挑戰。我們將剖析以太坊當前的性能瓶頸,探討底層帳本模型對交易吞吐的影響,並提出可能的技術路徑。想了解未來高效合約執行的關鍵因素,請繼續閱讀。
區塊鏈智能合約中的並發性和並行性
以太坊很慢——極其緩慢。
最近我做了一個簡單的 USDC 授權交易,花了約 3 小時才完成驗證。
台灣金管會監管提示:請自行評估法規風險。
還有一個更具啟發性的統計資料:以太坊平均每 10~20 秒產生一個區塊,每個區塊容納不足 350 筆交易,折算下來大約是每秒 30 筆交易。
在批評以太坊的慢時,常會拿 Visa 的 2000 TPS 進行對比。也許這並不公平,因為以太坊仍處於持續研發階段。
無論如何,以太坊在短期內難以主導數位金融。其低吞吐量是一個根本性瓶頸。

以太坊是基於帳戶的區塊鏈:帳本狀態被表示為從帳戶地址到一段資料的鍵值映射。
一次普通的 ETH 轉帳(價值轉移)只會增減相應帳戶的 ETH 餘額;更複雜的交易(合約呼叫)則會修改指定帳戶的資料。
台灣金管會監管提示:請自行評估法規風險。
因此,以太坊交易本質上是全域帳本狀態的轉換函式,這正是以太坊虛擬機(EVM)能夠實現圖靈完備並支援智能合約的原因——智能合約實際上是可交互的帳戶資料。
下面來看 EVM 如何處理或驗證這些交易。並行處理所有交易並不可行。
台灣金管會監管提示:請自行評估法規風險。
如果交易並行執行,EVM 將面臨競爭條件:例如兩個交易同時嘗試遞增同一個 uint 變數,結果只會增加一次而不是兩次。
台灣金管會監管提示:請自行評估法規風險。
為避免此類並發錯誤,以太坊選擇順序執行交易。換言之,EVM 是一個單執行緒的狀態機。
台灣金管會監管提示:請自行評估法規風險。
所以,以太坊實現的是 並發(Concurrency),而非 並行(Parallelism)。
可以把以太坊想像成只有一個出納員的排隊系統,排隊的對象是待驗證的交易,唯一的出納員就是虛擬機。考慮到 gas 費用後,情況更為複雜——任何人都可以額外付費「插隊」。當佇列過長時,那些不願或無法支付更高費用的使用者只能等待更久。
台灣金管會監管提示:請自行評估法規風險。
低吞吐量在 Web3.0 場景下尤為突出。以太坊已經成為眾多 Web 應用的底層平台。如果其吞吐量保持現狀,諸如為 Reddit 上的一條評論加讚這樣微不足道的操作,可能需要兩個小時以上才能完成。我們處在一個速度決定成敗的時代,以太坊的慢速已成為瓶頸。
有人會問,為什麼不對衝突的交易採用並發處理,例如對同一帳戶的價值轉移進行並行,而對其餘交易並行執行?遺憾的是,Saraph 與 Herlihy 已經證明,此類加速最多只能帶來適度提升。
台灣金管會監管提示:請自行評估法規風險。
為提升以太坊的可擴展性,已經提出了多種方案。近期的 EIP‑1559(倫敦硬分叉)雖不直接提升交易速度,但理論上能透過降低普通使用者在交易處理前需等待的潛在區塊數量,減緩大額交易高峰期的波動。隨後出現的 Layer‑2 Rollup,則有望在不犧牲區塊鏈去中心化信任的前提下,顯著提升吞吐量。
台灣金管會監管提示:請自行評估法規風險。
與此同時,其他模擬通用虛擬機的區塊鏈也在積極研發中。一些專案已經實現並行處理,承諾的吞吐量遠超以太坊的 30 TPS。值得關注的包括 Algorand、Solana、Cardano 等,它們各自採用了在智能合約層面實現並行化的獨特方式。
以上即為區塊鏈智能合約中並發性與並行性的概述,更多相關資料請關注 Bitaigen(比特根)的其他文章。
💡 註冊幣安使用邀請碼 B2345 享平台手續費折扣。詳見 幣安完整教學。