以太坊 Glamsterdam 測試網升級喊卡,資安公司示警恐影響既有合約
以太坊基金會 10 月 22 日公告,原定 10 月 26 日 17:42:48(UTC)在 Hoodi 測試網啟動的 Glamsterdam 升級延後,新的啟動日期還沒定。核心開發者在當天的執行層開發者會議(ACDE #248)決定延後,以進一步調查 EIP-8037 與主網上既有智慧合約之間的互動。
這次延後撤銷了 Hoodi 原本排定的執行層 Amsterdam 與共識層 Gloas 啟動,也取消在同一時點把 Hoodi 的 Gas 上限調高到 2 億的計畫。基金會表示,替代的升級時程會另行公布;這份公告只針對 Hoodi,沒有設定 Glamsterdam 的主網啟動日,以太坊主網使用者與 ETH 持有人也不需要採取任何行動。
ChainSecurity 示警:失敗的操作可能變成永久紀錄
延後的起因是資安公司 ChainSecurity 10 月 13 日發布的分析。報告指出,Glamsterdam 納入的 EIP-8037 與 EIP-8038 兩項提案會改變 Gas 的收費與退還方式,即使合約程式碼完全沒改,原本會整筆撤銷的失敗流程,升級後可能順利執行完畢。
許多合約在呼叫其他合約失敗時,會記下這次失敗、停用後續重試或改走備案。開發者常依賴一個前提:呼叫若是因為 Gas 用完而失敗,剩下的 Gas 不夠完成這些記錄動作,整筆交易就會撤銷,使用者之後還能重試。ChainSecurity 說明,有心人可能刻意只給剛好不夠的 Gas,讓正常操作失敗、又留下足夠的 Gas 把失敗寫成定案,這類手法稱為 Gas 不足的惡意攻擊。
EIP-8037 把建立新狀態的費用從一般執行 Gas 分出來,另設一個獨立的狀態 Gas 額度,失敗時這部分會退回給呼叫方;清除交易中新建的儲存位置時,Gas 也會立即退回。ChainSecurity 認為,這些退還機制可能讓合約在呼叫失敗後還有足夠的 Gas 走完失敗處理,原本靠 Gas 不足而撤銷的保護因此失效。
也可能反向出錯:寫入新儲存位置成本跳到 5 倍
風險也可能出在相反方向。依 ChainSecurity 計算,在狀態 Gas 額度用完時,寫入一個全新的冷儲存位置需要 110,020 單位的執行 Gas,現行 Osaka 規則下只要 22,100 單位。EIP-8038 也調高了不建立新狀態的操作成本,例如第一次修改既有非零的冷儲存位置,從 5,000 單位提高到 12,100 單位。原本預留的 Gas 預算在升級後可能不夠,讓正常操作意外失敗。
ChainSecurity 表示,這些分析說明的是既有軟體在新規則下可能出現的行為,並建議開發者在分叉前檢查所有允許呼叫失敗後繼續執行的程式路徑。CoinDesk 報導指出,ChainSecurity 已示範這些機制,但尚未公開證實有大型協議可被利用,目前也沒有跡象顯示既有合約正因此遭到攻擊。
Sepolia 已完成升級,主網仍無日期
Glamsterdam 帶來多項改動,包括選擇區塊建構者的新機制,以及讓網路能處理更大區塊的改進。Glamsterdam 已於 10 月 6 日在 Sepolia 測試網完成升級,Hoodi 原本是下一場公開演練。
以太坊基金會提醒,Hoodi 節點與驗證者營運者應在 10 月 26 日前確認執行層與共識層客戶端已更新到移除這次啟動排程的版本;目前 Besu、Nethermind 與 Lodestar 等客戶端已發布對應版本。
風險提示
加密貨幣投資具有高度風險,其價格可能波動劇烈,您可能損失全部本金。請謹慎評估風險。




