虛擬貨幣文章上線

研究人員發現合約風險後,Ethereum 延後 Glamsterdam Hoodi 測試

Claude AI
研究人員發現合約風險後,Ethereum 延後 Glamsterdam Hoodi 測試

目錄

你可能想知道

  • 為什麼 Ethereum 的 gas 計價方式變更,可能影響變更前編寫的合約?
  • 延後是否代表現有 Ethereum 合約目前正遭到攻擊?

主要議題

安全研究人員發現可能影響現有智慧合約的相容性風險後,Ethereum 開發人員延後了原訂在 Hoodi 測試網進行的 Glamsterdam 升級。疑慮在於,提議中的 gas 計價方式變更可能影響部分合約在依賴的操作失敗時如何回應。在某些情況下,合約可能會完成一項錯誤處理步驟,而依照先前規則,該步驟原本會被回滾。在另一些情況下,原本應該有效的操作可能會因 gas 耗盡而失敗。

Hoodi 原定於 Oct. 26 at 17:42:48 UTC 啟用。開發人員在週四的 All Core Devs Execution 會議中延後啟用,以便調查提議中的規則可能如何與已在 Ethereum 主網運作的合約互動。Hoodi 測試尚未公布新日期。提高 Hoodi gas 上限的計畫也已延後,Glamsterdam 的主網日期則仍未確認。

這項問題的核心是 EIP-8037,這項提案會改變 Ethereum 對在資料庫中建立新紀錄的收費方式。Ethereum 的資料庫儲存處理網路活動所需的資訊;隨著網路力求支援更多交易,資料庫的成長是長期考量之一。EIP-8037 旨在藉由改變特定儲存操作的成本,限制資料庫成長。EIP-8038 也可能與此產生交互影響,因此同樣重要:安全公司 ChainSecurity 指出,這些提案合併實施後,可能影響合約在其呼叫的另一個合約 gas 耗盡時的行為。

Gas 是用來衡量執行 Ethereum 交易所需運算工作的單位。交易或合約操作需要一定數量的 gas,可用 gas 量決定能完成多少處理工作。智慧合約可以呼叫其他合約,而如果被呼叫的合約耗盡 gas,該呼叫就可能失敗。此時,呼叫合約必須依照其程式碼,以及仍可使用的 gas 作出回應。

有些合約的編寫方式會捕捉失敗的呼叫並繼續執行。例如,合約可能會記錄某次嘗試失敗、停止後續嘗試,或進入下一個步驟。開發人員可能會依賴失敗操作後剩餘的特定 gas 量。如果 gas 太少,無法完成錯誤處理步驟,整筆交易可能會被回滾。這種回滾可能是合約預期行為的重要一環。

ChainSecurity 於 Oct. 13 發布的分析說明,提議中的計價規則可能如何改變這項計算。根據這些變更,撤銷相關變更時,用於建立特定紀錄的 gas 可以返還。因此,如果失敗的呼叫之後又回滾了相關儲存變更,呼叫合約可用的 gas 可能會與合約作者依據現行規則預期的數量不同。

如果合約取得足夠的返還 gas,得以完成先前無法完成的錯誤處理操作,這項差異就可能造成影響。合約可能會記錄操作失敗,或繼續執行,而不是回滾整筆交易。這種結果是否有問題,取決於合約設計,以及開發人員對失敗處理路徑的預期。因此,這項發現指出的是執行行為可能改變,而非證明所有合約——甚至某個特定的大型協定——都存在漏洞。

研究人員也指出另一方向的潛在風險:在某些額度用盡的情況下,提議中的規則可能使部分儲存操作變得更昂貴。ChainSecurity 計算指出,在這種情況下,建立新的儲存槽可能需要 110,020 gas,而舊規則下為 22,100。因此,依賴既有 gas 預算的合約,在嘗試執行原本有效的操作時,可能會耗盡 gas。

這些例子說明,協定層級的計價方式變更必須以現有軟體進行測試,而不能只考慮依照提議規則編寫的新合約。合約可能依賴目前 gas 費用表的行為,包括失敗呼叫後消耗、退還或剩餘的 gas 數量。即使合約程式碼本身未變,規則變更仍可能導致不同結果。

ChainSecurity 展示了可能導致行為改變的機制。不過,該公司尚未公開證實,這些機制可用來攻擊某個主要的正式環境協定。這項區別十分重要:經展示的邊界案例或相容性疑慮值得調查,但本身並不能證明資金已經損失,或已部署的合約目前正遭受攻擊。Ethereum 開發人員延後測試,以便在繼續進行前檢視相關影響。

Glamsterdam 是一項涵蓋多項變更的 Ethereum 大型升級。其中包括一套新的區塊建構者選擇系統,以及旨在讓網路處理更大區塊的改進。這項升級已於 Oct. 6 在 Sepolia 測試網完成啟用。Hoodi 原定作為下一個公開演練環節,並計畫將其 gas 上限提高至 200 million。在開發人員評估 gas 計價方式相關發現期間,這場演練和上限調整計畫目前均已延後。

這次延後並未確立新的時程。開發人員尚未公布 Hoodi 測試的替代日期,Ethereum 主網的 Glamsterdam 啟用日期也尚未確認。延後讓開發人員有時間調查 EIP-8037 和 EIP-8038 可能如何影響實際合約行為,並判斷升級繼續推進前是否需要調整、增加測試或採取其他防護措施。

報告也沒有指出現有合約目前正透過這些提議中的變更遭到攻擊。相關疑慮涉及尚未在主網啟用的規則下可能出現的行為。在提案尚未實施前,所描述的影響仍是計畫變更可能造成的結果,而非正在發生事件的證據。

核心問題在於相容性:網路升級必須改善 Ethereum,同時確保已部署軟體的行為可預測。公開測試網測試讓開發人員有機會在變更進入主網前找出意料之外的影響。在這個案例中,研究人員的分析促使開發人員暫停 Hoodi 演練,並檢視這些提案如何影響失敗處理、儲存成本及 gas 可用量。

重點摘要表

項目說明
延後 Hoodi 測試開發人員延後了原定進行的 Glamsterdam 啟用,原訂時間為 Oct. 26 at 17:42:48 UTC。尚未公布替代日期。
審查中的提案EIP-8037 和 EIP-8038 可能改變 gas 計價方式,並影響現有合約對失敗呼叫的回應方式。
可能的 gas 差異ChainSecurity 計算指出,在特定情況下,建立新的儲存槽可能需要 110,020 gas,而舊規則下為 22,100。
測試網進度Glamsterdam 已於 Oct. 6 在 Sepolia 完成啟用。Hoodi 原定作為下一個公開演練環節。
Hoodi gas 上限提高至 200 million 的計畫也已延後。
主網狀態Ethereum 主網的啟用日期仍未確認,這些發現也不能證明現有合約目前正遭到攻擊。

後續……

下一步是由 Ethereum 開發人員評估這些發現,依據各種合約行為測試提議中的計價規則,並決定何時能讓 Hoodi 安全恢復其公開演練的角色。任何時程修訂都將取決於這項工作的結果;目前尚未確認新的測試日期或主網日期。

更廣泛來看,這起事件凸顯了以已部署軟體檢驗協定升級的重要性。為管理資料庫成長或提高網路容量而進行的變更,可能產生超出其直接技術目標的影響,尤其是當合約在失敗情況下依賴精確的 gas 行為時。審慎測試與透明溝通,有助開發人員評估 Glamsterdam 提案能否依照設計推進,或是否需要進一步調整。

揭露與政策:CoinDesk 是屢獲殊榮、報導加密貨幣產業的媒體機構。其記者遵循一套嚴格的編輯政策。CoinDesk 採納了旨在維護其出版內容的誠信、編輯獨立性及免於偏見的原則。CoinDesk 隸屬於 Bullish(NYSE:BLSH),這是一家專注於機構客戶的全球數位資產平台,提供市場基礎設施與資訊服務。Bullish 擁有並投資數位資產企業及數位資產。CoinDesk 員工(包括記者)可能會獲得 Bullish 股權形式的薪酬。

最後編輯時間:2026/10/23