新聞加密貨幣Ethereum Foundation 警告:Glamsterdam Gas 重定價可能使部分合約失效

Ethereum Foundation 警告:Glamsterdam Gas 重定價可能使部分合約失效

作者: Cryptofrontnews·

重點速覽

  • EIP-8037 將提高並標準化建立帳戶、儲存槽與已部署 bytecode 的 gas 成本。
  • EIP-8038 將提高存取既有狀態的 gas 成本,包括 SLOAD、SSTORE 與 cold account access。
  • 在提議的定價下,大多數歷史主網交易的結果不變,但有一小部分表現不同。
  • 依賴固定 gas 假設的合約,包括 2,300-gas transfer 與 send stipend,若未更新程式碼,可能仍然無法運作。
  • Ethereum Foundation 已提供受影響合約資料庫,並建議開發者在主網啟用前先於 glam-devnet-8 測試修正。
Ethereum Foundation 警告:Glamsterdam Gas 重定價可能使部分合約失效

Ethereum Foundation 已警告,來自 Glamsterdam 的 gas 重定價若未配合開發者更新,可能導致部分智能合約失效。

EIP-8037 與 EIP-8038 將提高並標準化 Ethereum 上狀態建立與存取的 gas 成本。開發者可在 Glamsterdam devnet 上測試合約,而錢包與 RPC 供應商則必須更新 gas 估算,以符合新的費率安排。

在規劃中的 Glamsterdam 升級下,Ethereum 開發者正面臨新的 gas 規則,部分合約若未調整可能停止運作。Ethereum Foundation 表示,EIP-8037 與 EIP-8038 將改變狀態建立與存取的成本。大多數合約預期不受影響,但依賴硬編碼 gas 假設的開發者,可能需要在重定價到達主網前更新程式碼。

由於這些變更影響核心 EVM 操作的定價,實際影響與其說取決於應用類型,不如說取決於合約邏輯與工具中埋藏的特定 gas 假設。對於自先前網路升級後就未檢視舊常數的團隊而言,測試因此格外重要。

Glamsterdam 改變 Ethereum 的 gas 成本

這兩項 EIP 著重於 Ethereum 如何對整個網路的狀態操作收費。EIP-8037 將提高並標準化建立帳戶、儲存槽與已部署 bytecode 的成本。

EIP-8038 則會提高存取既有狀態的成本,包括 SLOAD、SSTORE 與 cold account access;同時也會調整 EXTCODESIZE 與 EXTCODECOPY 的成本。

根據 Ethereum Foundation 的說法,這些變更反映了 Ethereum 更大狀態規模下各項操作的實測工作負載。這些操作的 gas 價格上次變動是在 2021 Berlin 升級期間。

Foundation 表示,近期 gas limit 的提高加速了狀態成長。新的定價模型採用一項效能目標,約可支援高出三倍的基礎吞吐量。

部分智能合約可能失效

Ethereum Foundation 以提議中的 gas 排程重播了歷史上的主網交易。大多數交易在新定價規則下產生相同結果,但有一小部分在重定價後出現不同結果。

有些交易仍然成功,但消耗的 gas 數量不同。另一些則僅因原本的 gas 上限已不足而失敗。開發者可透過提高提供的 gas 上限來處理這些情況。

不過,還有一小部分即使大幅提高上限也可能仍然損壞。這類合約常在程式碼中依賴固定的 gas 假設,例如 Solidity 的 2,300-gas transfer 與 send stipend。

硬編碼的 call value、gasleft() 檢查,以及固定 gas 上限,也可能造成問題。Foundation 表示,受影響最嚴重的合約團隊已開始收到直接聯繫。

開發者可在主網前進行測試

維護 Layer 1 合約的開發者,可使用其合約地址搜尋 affected-contracts 資料庫。該工具會辨識失敗類型,以及導致各項問題的重定價原因。

Foundation 也建議開發者在名為 glam-devnet-8 的 Platåberget testnet 上測試修正。錢包與 RPC 開發者必須更新 gas 估算,以反映新的排程。

否則,快取的 gas 常數可能低估交易成本並導致失敗。一般使用者無需採取任何行動,因為更新後的錢包與基礎設施將處理這些變更。

該重定價已在 devnet 上上線,並將在主網啟用前轉移至公開 testnet。