安全開發人員指出现有合約風險,以太坊延後 Glamsterdam 測試
重點速覽
- •以太坊開發人員延後了 Hoodi 測試網上的 Glamsterdam 升級,取消了原定 10 月 26 日的啟用,且尚未宣布替代日期。
- •延後起因於 ChainSecurity 在 10 月 13 日發布的分析,指出 EIP-8037 與 EIP-8038 結合後,可能改變現有合約在被調用合約 gas 耗盡時的反應方式。
- •根據擬議規則,返還的 gas 可能讓失敗處理程式碼完成執行而非回滾,可能使某些錯誤永久留存。
- •ChainSecurity 估計,在現行規則下建立新的儲存槽可能需要 110,020 gas 而非 22,100 gas,這意味著在既有 gas 預算內的有效操作可能失敗。
- •Glamsterdam 已於 10 月 6 日完成 Sepolia 測試網啟用,其中還包括新的區塊構建者選擇系統,而原定將 Hoodi gas 上限提高至 2 億的計畫也已延後,等待未來決定。

在安全研究人員發現一個潛在問題,可能改變現有智能合約處理失敗交易的方式後,以太坊開發人員已延後 Hoodi 測試網上的 Glamsterdam 升級。
該升級原定於 10 月 26 日 17:42:48 UTC 啟用。Hoodi 是以太坊的公共測試網之一,升級會在抵達主網之前先於此處演練,讓開發人員能在實際活動中觀察新規則的表現。開發人員在週四的 All Core Devs Execution 會議上決定延後升級,以調查擬議的以太坊 gas 計費變更將如何與主網上已在運行的合約產生互動。目前尚未宣布替代日期。
問題核心在於 EIP-8037——這是一項以太坊改進提案,即以太坊協議變更的標準格式——它改變了以太坊對在資料庫中建立新記錄的收費方式。該提案旨在於以太坊提高網絡可處理的交易數量之際,限制資料庫的增長。
安全公司 ChainSecurity 於 10 月 13 日發布分析指出,EIP-8037 與 EIP-8038 結合後,可能改變合約在被調用的另一份合約耗盡 gas(即用於支付網絡營運者的費用)時的反應方式。
部分合約的設計是捕捉失敗的操作並繼續處理。它們可能記錄某次嘗試失敗、停用後續嘗試,或轉向另一個步驟。開發人員有時依賴剩餘 gas 不足以完成這些操作,從而使整筆交易回滾。
Glamsterdam 改變了這項計算。根據擬議規則,用於建立某些記錄的 gas 可在這些變更被撤銷時返還。因此,合約可能保留足夠的 gas 來完成一項先前會導致交易回滾的失敗理操作。在某些情況下,這可能使錯誤永久留存。
ChainSecurity 也發現了相反方向的風險。該公司計算,在一項獨立配額耗盡的情況下,建立新的儲存槽可能需要 110,020 gas,而舊規則下為 22,100 gas。因此,在既有 gas 預算內運作的合約,可能在執行原本有效的操作時失敗。
研究結果涉及現有軟體在擬議規則下的行為。ChainSecurity 已演示相關機制,但尚未公開證明某個主要生產環境協議可被利用。這次延後反映了測試網部署的目的:在主網啟用之前提出的疑慮,可以在變更仍僅限於測試網時獲得處理。
Glamsterdam 包含對以太坊的多項變更,包括一個新的區塊構建者選擇系統,以及旨在讓網絡能處理更大區塊的改進。該升級已於 10 月 6 日完成 Sepolia 測試網的啟用。
Hoodi 原定作為下一次公開演練,同時原計畫將 gas 上限提高至 2 億——即每個區塊允許的總計算量上限。這項提高現已一併延後。兩項變更目前均無排定日期,進一步決定將在未來的 All Core Devs Execution 會議上做出。