簡而言之:當發送至網路的交易數量超過下一個區塊的容納量時,就會發生區塊鏈擁塞。 每條區塊鏈對每個區塊可處理的運算量或資料量都有上限。當需求超過此上限時,未確認交易的等待區「記憶體池」(mempool)中便會累積待處理交易。擁塞會導致用戶為爭奪有限的區塊空間而支付更高手續費、確認速度變慢,以及使用者體驗變差。其根本原因包括:區塊容量固定、熱門活動引發的需求激增、手續費市場動態,以及在設計上優先考量安全性與去中心化,而非純粹的吞吐量。
簡單的解釋
區塊鏈會以稱為「區塊」的批次來處理交易。每個區塊都有容量上限:
Ethereum:gas 限制,目前約為每區塊 3,000 萬 gas
Bitcoin:每個區塊的重量上限為 400 萬重量單位
Solana:每個插槽中運算單元與帳戶鎖定的混合配置
無論機制為何,每條區塊鏈在單個區塊中能容納的工作量都存在上限。
當收到的交易數量少於區塊所能容納的數量時,一切運作順暢。交易會被納入下一個區塊,手續費低廉,且確認速度快。
當交易數量超過區塊所能容納的上限時,便會形成一個佇列。這個佇列就是「記憶池」(mempool):這是每個節點上的一個暫存區,用來存放那些有效但尚未確認的交易,等待被納入未來的區塊中。
交易池並非遵循「先到先得」的原則。它是一個按手續費排序的優先級佇列。區塊生成者(礦工或驗證者)會選擇手續費最高的交易,因為這樣能為他們帶來最高收益。
當記憶池(mempool)滿載時,希望快速獲得確認的用戶必須透過支付更高的手續費來壓過其他人的出價。這種競價戰正是導致網路擁塞時 gas 費飆升的主因。無法或不願支付更高手續費的用戶,其交易將在記憶池中滯留數分鐘、數小時,甚至數天。
需求激增
造成網路擁塞最顯而易見的原因,是區塊空間需求突然激增。通常會由特定事件觸發這些需求激增:
NFT 鑄造:一場熱門的鑄造活動可能在幾分鐘內產生數萬筆交易,因為收藏家們爭相搶購限量代幣。
上線與空投:每當有新的 DeFi 協議推出或進行空投,都會讓大量用戶一擁而入,湧向新的智慧合約。
市場崩盤:價格急跌引發一波清算、平倉及恐慌拋售,DeFi 用戶紛紛趕緊調整策略。
Ethereum 部分最嚴重的塞車問題,正是源自單一應用程式:
2017年12月爆發的「CryptoKitties」熱潮,導致網路癱瘓了好幾天。
Yuga Labs 於 2022 年 5 月發行的 Otherside NFT 鑄造活動,將 gas 費推升至 8,000 gwei 以上。部分用戶支付了數千美元的手續費,但交易仍以失敗告終。
Uniswap 的 UNI 及Arbitrum 的 ARB 空投領取活動,因數百萬個符合資格的錢包蜂擁領取,導致網路擁塞持續數小時。
迷因代幣的交易會導致Solana 和Base 等鏈上反覆出現擁塞,一次爆紅的發行便可能在數小時內引發數百萬筆交易。對於預先規劃的活動,使用者至少知道擁塞即將發生;但迷因代幣的暴漲則難以預測,往往在幾乎沒有預警的情況下就讓網路不堪負荷。
固定區塊容量與產出率
更深層的原因在於,區塊容量與區塊生成時間是由協議所規定的,而需求卻會波動,有時甚至波動劇烈。
Ethereum 每 12 秒產生一個區塊,Gas 限制約為 3,000 萬。典型成本:
一筆簡單的 ETH 轉帳:21,000 gas
一次 Uniswap 交易:150,000 至 300,000 氣費
一項複雜的 DeFi 互動:500,000 氣費或更多
在理想情況下,這大約相當於每秒 15 至 30 筆交易,具體取決於交易的複雜程度。當數千名使用者同時嘗試鑄造 NFT、兌換代幣或領取空投時,15 至 30 TPS 的處理量根本near 遠遠不夠。
Bitcoin 它具有相同的限制,但門檻更為嚴格。每 10 分鐘產生一個區塊,每個區塊約可容納 2,000 至 3,000 筆交易。這相當於每秒約 5 至 7 筆交易(TPS)。當需求高漲時,Bitcoin 的記憶池(mempool)可能會積壓數十萬筆未確認交易,而手續費較低的交易甚至可能需要等待數天。
這些限制並非隨意設定的。它們是為了維護去中心化。如果區塊更大或處理速度更快,能跟上數據處理速度的節點將會減少,而網路將逐漸集中於擁有昂貴硬體的營運者手中。這種吞吐量與去中心化之間的權衡,是區塊鏈設計的核心。這通常被稱為「區塊鏈三難困境」:即難以同時兼顧可擴展性、安全性與去中心化這三者。
MEV 與優先天然氣拍賣
「最大可提取價值」(MEV)以較不顯著的方式加劇了網路擁塞。MEV 是指區塊產出者與搜尋者透過重新排序、插入或刪除區塊中的交易,所能獲得的利潤。
當出現有利可圖的 MEV 機會時(例如兩個去中心化交易所之間的套利),多名搜尋者會競相透過支付越來越高的手續費來發送交易,以搶佔此機會。這種優先權 Gas 競標不僅佔用區塊空間,還會導致所有人的手續費上漲,甚至包括那些交易與此完全無關的使用者。
「三明治攻擊」是一種直接衝擊一般用戶的 MEV 模式。攻擊者會在記憶池中發現一筆大額的交換交易,隨即在該交易之前下達買單(搶跑),並在該交易之後下達賣單(追跑),藉此從受害者交換交易引發的價格波動中獲利。這些額外的交易不僅佔用區塊空間,更會造成超出一般用戶需求的網路擁塞。
第二層解決方案與擁塞緩解
諸如Arbitrum 、Base 、Optimism 及zkSync 等第二層(L2)網路,其建置部分目的在於緩解Ethereum 第一層(L1)的擁塞問題。這些網路在獨立的鏈上處理交易,並將壓縮後的摘要發回至Ethereum ,從而大幅提升總吞吐量。一筆在擁塞的Ethereum L1 上需耗費 5 美元 gas 費的交易,在 L2 上可能僅需 0.01 美元。不過,在交易量劇烈激增時,L2 仍可能出現擁塞,且它們會繼承所對應 L1 的某些限制。
Solana 透過本地化手續費市場,以不同方式處理網路擁塞問題。與其採用單一全球手續費市場(在該市場中每筆交易都必須競爭相同的處理空間),Solana 試圖將擁塞隔離在特定的「熱門」帳戶中。涉及繁忙合約(例如熱門的 DEX 流動性池)的交易,需支付較高手續費;而涉及無關合約的交易則不受影響。此舉雖無法完全消除擁塞高峰,但能限制其波及效應。
區塊鏈的擁塞狀況會持續多久?
這要視乎原因而定。
像大型 NFT 鑄造或空投領取這類預定活動,通常會引發價格急遽飆升,但一旦搶購熱潮消退,價格便會在數分鐘至數小時內回歸平穩。
持續性的擁塞則有所不同。當某條鏈長期處於near 的運轉狀態時——例如在漫長的牛市期間,或是某個病毒式流行迷因代幣週期中——高手續費和確認速度緩慢的情況可能會持續數天。
Bitcoin 擁塞狀況通常比Ethereum 消退得更慢。其 10 分鐘的區塊時間意味著記憶池會以較大、較不頻繁的步長逐漸排空。最明顯的跡象是記憶池規模縮小,同時優先級手續費也隨之下降,這表明擁塞狀況正在緩解。
擁塞與區塊鏈整體速度變慢的原因密切相關,但這並非系統中斷。如果網路完全停止產出區塊,那便是「鏈停」,而非擁塞。
不同區塊鏈的區塊限制有何差異?
每條區塊鏈都會限制單個區塊能容納的工作量,因此各網路在出現擁塞前所能承受的負荷空間差異極大。下表列出了決定各網路在負載下會以多快速度出現擁塞的近似上限。
區塊鏈 | 區段時間 | 容量指標 | 約略吞吐量 |
|---|---|---|---|
Bitcoin | 約 10 分鐘 | 4M 重量單位 | 每秒 5 至 7 筆交易 |
Ethereum L1 | 約 12 秒 | 每個區塊約 3,000 萬 gas | 每秒 15 至 30 筆交易 |
Solana |
高吞吐量的區塊鏈和第二層解決方案更能有效應對需求激增,但沒有任何設計能完全免疫。若想進一步了解速度與容量的關聯性,請參閱「吞吐量與延遲」以及「何謂第二層區塊鏈」。
「擁塞」與「鏈式中止」之間有何區別?
對使用者而言,網路擁塞與區塊鏈停滯在外觀上都可能像是「網路故障」。但這兩者是截然不同的問題,成因與解決方法也各不相同。在網路擁塞期間,區塊鏈仍會產出區塊;只是這些區塊已滿且生成成本高昂。而在區塊鏈停滯期間,區塊的產出則會完全停止。
面向 | 交通壅塞 | 鏈式停止 |
|---|---|---|
區塊生產 | 照常繼續 | 停止 |
交易 | 確認過程緩慢,手續費高昂 | 切勿確認 |
根本原因 | 需求超過區塊容量 | 共識失敗或客戶端錯誤 |
簡而言之,擁塞是定價與容量問題,而鏈上停滯則是可用性問題。優先權 gas 拍賣這類 MEV 活動可能會加劇擁塞。了解何謂 MEV,有助於解釋為何手續費的漲幅會比單純基於用戶需求所預期的還要快。
開發商該如何減輕交通壅塞的影響?
應用程式無法防止網路擁塞,但即使在擁塞期間,它們仍能保持穩定運作:
請使用動態手續費估算,而非硬編碼的 gas 價格。
加入重試邏輯,並妥善管理非重複數 (nonce)。
將非緊急的交易排入較清閒的時段處理。
針對資料,應採用推送式傳輸而非密集的輪詢迴圈,以確保資料擷取速度能跟上區塊擴增的步調。
了解RPC 請求的運作原理、選擇串流而非輪詢,以及針對提供者RPC 速率限制進行規劃,這些措施都能降低因網路擁塞導致資料遺失或交易失敗的機率。
常見問題
為什麼在網路擁塞時, gas 費用會飆升?
區塊空間有限,而記憶池(mempool)是一個基於手續費的優先順序隊列。當競爭的交易數量超過區塊容量時,使用者便會提高手續費出價,以爭取優先被納入區塊。這種出價競爭會推高當前的 gas 價格,直到需求回落至低於區塊容量的水準為止。
網路擁塞是否代表區塊鏈當機了?
不。在網路擁塞期間,區塊鏈仍會持續產生區塊並確認交易;只是速度較慢且成本較高。若網路停止產生區塊,則表示該網路正經歷「區塊鏈停滯」,這屬於另一種問題。
第 2 層網路也會發生擁塞嗎?
是的。第二層(Layer 2)的吞吐量遠高於Ethereum 的第一層(L1),因此能承受更大的流量激增,但極端的用資需求仍可能耗盡其容量並推高手續費。此外,它們也會繼承所對應的第一層(Layer 1)所帶來的某些限制。
我該如何判斷鼻塞是否正在緩解?
請密切關注待處理區(mempool)的大小與優先費。未確認交易積壓量減少,加上優先費持續下降,這是需求已回落至區塊容量的最明顯跡象。
為什麼區塊鏈不直接把區塊做得更大呢?
區塊越大或處理速度越快,會提高運行節點的硬體成本,這將迫使規模較小的營運商退出,進而導致網路集中化。容量限制是一種刻意權衡的取捨,旨在維護去中心化,這種矛盾常被稱為「區塊鏈三難困境」。
交通壅塞如何影響在該地區進行開發的開發商Quicknode
網路擁塞既會影響開發人員傳送交易的方式,也會影響他們擷取資料的方式。
在發送端,手續費過低的交易會卡在記憶池中,或直接被捨棄。應用程式需要可靠的費用估算、重試邏輯以及非ce管理機制,才能妥善處理網路擁塞問題。Quicknode 的Core API即使在網路擁塞高峰期,也能以穩定效能可靠地傳送交易。增強版的 API 方法可協助應用程式根據當前網路狀況,估算出適當的 gas 價格。
在資料方面,擁塞意味著每個區塊的交易量增加、區塊大小增大、事件數量增多,以及資料量增加。基於輪詢的系統在此處難以應對。由於每個區塊所包含的資料量增加,而輪詢間隔卻保持不變,因此會造成積壓。
Quicknode Streams 由於採用基於推送的設計,其擴展能力可隨區塊大小而調整,因此能有效處理擁塞情況。無論一個區塊包含 100 筆或 1,000 筆交易,Streams 都能以相同的傳送保證與順序,將完整資料傳送至您的目的地。可配置的批次處理與壓縮功能,有助於在長時間擁塞期間管理額外的資料。
延伸閱讀
什麼是 Mempool?——《Quicknode 指南》
高效 RPC 請求指南-Quicknode
Streams 入門指南-Quicknode 文件