僅供教育參考,不構成財務或安全建議。Gas 上限、目標、計價規則、單筆交易上限、操作碼成本與用戶端政策會因鏈、分叉及觀察時間而異。
直接答案
區塊 Gas 上限是記錄在以太坊區塊標頭中的執行 Gas 容量上限。區塊收錄的交易必須符合協定核算規則,使總 gasUsed 不超過 gasLimit。Gas 是抽象計量單位,其操作碼、呼叫資料、記憶體、儲存與退款規則會隨分叉變動;它不直接等同 CPU 指令數、位元組數或交易數。
Fusaka 後,以太坊主網用戶端協調採用的基準是每區塊 60,000,000 gas,但實際區塊標頭才是權威值,驗證者偏好仍可依目前相對父區塊規則逐步調整上限。EIP-1559 的彈性係數為 2,長期目標因而是 30,000,000 gas;區塊可暫時用滿上限,而父區塊用量超過目標時,下一區塊的基礎費用會上升。EIP-7825 另將使用者交易宣告的 Gas 上限限制為 2^24 = 16,777,216 gas,EIP-7934 則獨立規定 8,388,608 bytes 的 RLP 執行區塊上限。這些數值只適用於特定日期的主網,並非通用 EVM 常數。
運作方式
- 固定鏈、網路、區塊雜湊與編號、已啟用分叉、用戶端或 RPC,以及觀察時間。讀取區塊標頭的
gasLimit、gasUsed和baseFeePerGas,不要以網站的靜態參數表取代。 - 區分區塊 Gas 上限、EIP-1559 Gas 目標、交易宣告的 Gas 上限、交易實際 Gas 使用量與每單位 Gas 價格。也要區分執行 Gas、Blob Gas、RLP 執行區塊位元組數及 L2 特有計量方式。
- 依已啟用的 Gas 規則重現交易有效性與執行。納入固有 Gas、呼叫資料、存取清單、記憶體擴展、冷存取與熱存取、儲存寫入、預編譯合約及退款。估算取決於狀態與區塊標籤,並非保證。
- 核對區塊容量。加總收據 Gas 使用量,或使用最後一張收據的累計值,確認
gasUsed <= gasLimit,並考量交易順序與狀態相關成本。交易數既不等於 Gas 上限,也不代表固定 TPS。 - 正確套用 EIP-1559。彈性係數為
2時,目標是gasLimit / 2;父區塊用量高於目標會提高下一區塊基礎費用,低於目標則會降低。依目前規則,子區塊上限還必須位於相對父區塊約1/1024的嚴格範圍內。基礎費用為需求定價,上限則約束可接受的執行工作量。 - 檢查運作邊界。即使區塊仍有 Gas 空間,超過已啟用單筆上限的交易也無效;即使總 Gas 低於上限,過大的 RLP 執行區塊同樣無效。未使用的交易 Gas 配額會釋出,退款計數器則是另一個受分叉上限約束的減免機制。
REVERT會保留剩餘 Gas,而頂層執行耗盡 Gas 會回復狀態並用完所提供的執行配額。 - 對滿區塊執行時間、狀態成長、區塊傳播、漏塊、鏈重組、建構者與驗證者容量、用戶端多樣性及參數變更進行壓力測試與監控。比較實際區塊與節點指標後,才能將較高上限視為可持續吞吐量。
實例
- 簡單轉帳上限。 在
60,000,000 gas上限下,一個區塊理論上可容納floor(60,000,000 / 21,000) = 2,857筆普通 ETH 轉帳。30,000,000 gas目標可容納1,428筆;按理想化的12-second時槽計算,即1,428 / 12 = 119 transactions/second。這只是同質交易的上限示例,並非實測 TPS。 - 混合目標區塊。 假設一個目標區塊包含轉帳
400 * 21,000 = 8,400,000 gas、兌換80 * 180,000 = 14,400,000 gas,以及合約部署6 * 1,200,000 = 7,200,000 gas。總用量為30,000,000 gas,共486 transactions;依既定時槽假設為486 / 12 = 40.5 transactions/second。相同 Gas 目標可支援截然不同的交易數量。 - 交易上限與實際收費。 某交易宣告
200,000 gas,但成功執行時gasUsed = 146,000。有效價格為22 gwei時,費用是146,000 * 22 = 3,212,000 gwei = 0.003212 ETH;未使用的54,000 gas不收費。相較之下,宣告18,000,000 gas超過目前16,777,216 gas協定上限,無論區塊剩餘容量多少都無效。 - 基礎費用反應。 當
gasLimit = 60,000,000時,目標是30,000,000。基礎費用從24 gwei起,父區塊用滿60,000,000 gas會使下一區塊基礎費用按最高12.5%上升至27 gwei;空父區塊則使其下降12.5%至21 gwei。這不會改變區塊上限,也不保證下一區塊的使用率。
風險
- 使用過時的主網 Gas 上限值。
- 將以太坊參數套用到其他 EVM 鏈或 L2。
- 混淆區塊上限與 EIP-1559 目標。
- 混淆區塊上限與單筆交易上限。
- 混淆交易宣告的 Gas 與實際 Gas 使用量。
- 將 Gas 視為固定的 CPU、位元組或交易單位。
- 使用過時的操作碼、呼叫資料或退款規則,或忽略獨立的 RLP 區塊大小上限。
- 使用
eth_estimateGas時未指定預期狀態與區塊標籤。 - 忽略狀態相關執行與交易順序。
- 混淆未使用的交易配額與獨立的退款計數器。
- 忽略執行耗盡 Gas 或回復時仍須支付的 Gas。
- 將執行 Gas 與 Blob Gas 當成同一資源。
- 僅以同質轉帳推導 TPS。
- 忽略漏塊、鏈重組與最終性延遲。
- 增加最壞情況下的區塊執行與傳播時間。
- 加快狀態成長並提高封存需求。
- 提高驗證者、建構者與 RPC 的硬體需求。
- 增加中心化或用戶端分歧風險。
- 漏掉驗證者偏好、用戶端預設值或分叉變更。
- 將更高容量誤認為費用或需求必然降低。
常見誤解
- 區塊 Gas 上限是固定且通用於以太坊或 EVM 的常數。
60,000,000 gas上限表示每個區塊都應使用 6,000 萬 Gas,或 EIP-1559 目標也是 6,000 萬。- 將區塊上限除以
21,000就能得到鏈的真實 TPS。 - 只要區塊有空間,單筆交易就能用完整個區塊;目前單筆上限是獨立約束。
- 提高 Gas 上限會自動降低費用,而無須承擔節點、狀態、傳播、需求或中心化方面的權衡。
相關主題
資料來源
- Ethereum gas and fees: technical overview - Ethereum.org(存取日期:2026-08-18)
- EIP-1559: Fee market change for ETH 1.0 chain - Ethereum Improvement Proposals(存取日期:2026-08-18)
- EIP-3529: Reduction in refunds - Ethereum Improvement Proposals(存取日期:2026-08-18)
- EIP-7825: Transaction Gas Limit Cap - Ethereum Improvement Proposals(存取日期:2026-08-18)
- EIP-7934: RLP Execution Block Size Limit - Ethereum Improvement Proposals(存取日期:2026-08-18)
- EIP-7935: Set default gas limit to 60M - Ethereum Improvement Proposals(存取日期:2026-08-18)
- Fusaka Mainnet Announcement - Ethereum Foundation Blog(存取日期:2026-08-18)
- JSON-RPC API - Ethereum.org(存取日期:2026-08-18)