以太坊推遲 Glamsterdam 升級,八項智能合約風險浮現

ETH
Glamsterdam 升級Hoodi測試網ChainSecurityGas定價以太坊EIP-8037
1 小時前來源: crypto.news
以太坊推遲 Glamsterdam 升級,八項智能合約風險浮現

在安全研究人員發現八項現有智慧合約假設在擬議的 gas 會計變更下可能失效後,以太坊開發者已延遲 Hoodi 測試網上的 Glamsterdam 升級。

摘要

  • 在 ChainSecurity 發現八項智慧合約假設在擬議的 gas 變更下可能失效後,以太坊開發者已延遲 Hoodi 測試網上的 Glamsterdam 升級。
  • EIP 8037 與 EIP 8038 將改變以太坊對某些操作收取 gas 的方式,可能影響依賴固定 gas 成本或特定交易失敗條件的現有合約。
  • 以太坊基金會已要求開發者與稽核人員審查受影響的專案,並在核心開發者決定是否需要修改升級規格之前回報潛在問題。
  • Hoodi 硬分叉將持續暫停,直到已識別的疑慮獲得解決,而以太坊後續 Hegota 升級的開發則不受中斷地持續進行。

在11 月 6 日的部落格文章中,以太坊基金會表示,稽核公司 ChainSecurity 已識別出數個在 EIP-8037 與 EIP-8038 生效後可能變得脆弱的專案。

這兩項提案都改變了以太坊對某些操作收取 gas 的方式,尤其是涉及區塊鏈狀態建立與存取的操作。部分現有合約依賴固定 gas 成本,或依賴關於操作失敗後剩餘多少 gas 的假設。

這些發現促使以太坊全核心開發者(ACD)小組暫緩 Hoodi 硬分叉,直到相容性疑慮獲得解決。

開發者目前正在檢視受影響的合約能否獨立更新,或者是否需要修改升級規格。

以太坊 Glamsterdam 升級面臨八項相容性疑慮

這些安全疑慮在 ChainSecurity 於10 月 13 日的分析中有詳細說明,該分析檢視了 Glamsterdam 可能如何改變那些在外部呼叫失敗後仍繼續執行的合約行為。

在以太坊現行規則下,部分合約依賴失敗的操作留下太少 gas,使後續指令無法完成。Glamsterdam 修訂後的會計方式可能讓某些操作得以完成,即使開發者原本預期整筆交易會回滾。

ChainSecurity 警告,此類行為可能干擾旨在防止失敗交易被永久記錄,或防止合法操作失去重試選項的保護機制。

其中一個例子涉及在外部呼叫耗盡 gas 後將操作標記為不成功的合約。在新規則下,先前無法取得的 gas 可能再次變得可用,使合約得以記錄永久失敗。

以太坊基金會已發布一個GitHub 儲存庫,記錄八項受影響的不變量,並附有說明、範例以及供開發者檢視自身程式碼的指示。

在已識別的風險中,包括假設 gas 消耗只能單向變動、固定 gas 額度將維持足夠,或回滾的呼叫無法返還已花費於建立狀態的 gas 的合約。

該儲存庫指出,固定 gas 預算與 gas 儲備是目前為止最常見的問題,尤其是在依賴預定交易成本的合約中。

開發者已被要求審查鏈上合約與支援的鏈下系統,包括可能含有硬編碼 gas 上限的錢包、中繼者與基礎設施。

安全審查持續進行,Hoodi 啟用仍暫停

最新發現進一步說明了以太坊先前決定延後 Hoodi 啟用背後的細節,該啟用原定於 10 月 26 日 17:42:48 UTC 進行。

正如 crypto.news 先前報導,此次延後將 Amsterdam 執行層與 Gloas 共識層的啟用從 Hoodi 的時程中移除,同時也取消了原定將測試網 gas 上限提高至 2 億的計畫。

目前尚未宣布替代的啟用日期。

以太坊基金會開發者 Marius van der Wijden 表示,該組織正與 ChainSecurity 和 Dedaub 合作,同時進行內部審計,以評估對現有應用程式可能造成的影響。

該基金會承認,其審查無法涵蓋每一個以太坊專案,尤其是在漏洞可能涉及智慧合約與鏈下基礎設施之間互動的情況下。

因此,它已要求開發者和獨立審計人員找出受影響的應用程式,並在下一輪全核心開發者討論之前提交其發現。

該儲存庫要求提供受影響合約的詳細資訊、涉及的具體不變量、可能的修復方案,以及可取得時的支援測試。報告可私下提交至 [email protected]。

根據回饋意見,開發者可能會在推進升級之前考慮對 EIP-8037 和 EIP-8038 進行調整。

據該基金會表示,以太坊後續 Hegotá 升級的工作將並行持續進行,且不受 Glamsterdam 延遲的影響。

Glamsterdam 的擴容變更仍處於測試階段

Glamsterdam 已於 10 月 6 日在 Sepolia 測試網上啟用,開發者開始在 2 億 gas 上限下檢視其擴容變更。

該升級透過 EIP-7732 引入了內建的提案者-建構者分離(enshrined proposer-builder separation),將區塊建構職責納入以太坊的共識協議中。

另一項主要組成部分 EIP-7928 引入了區塊層級存取清單,旨在協助客戶端更有效率地處理交易資料,並支援平行執行。

Gas 重新定價構成該升級的另一部分。EIP-8037 改變了建立新區塊鏈狀態的成本,而 EIP-8038 則調整了存取現有狀態的費用。

在 8 月的技術評估中,以太坊基金會表示,歷史交易重播顯示大多數智慧合約未受擬議定價變更的影響。

然而,較小的一組則需要更高的 gas 上限或更大幅度的修改,以避免意外失敗。

另外,開發者於 10 月 26 日合併了一項驗證者存款修復,此前他們發現了一個可能將質押存款記入共用同一公鑰的區塊建構者名下的缺陷。

該修正處理了涉及 Glamsterdam 的 Gloas 共識變更的另一個獨立問題,並在客戶端實作納入修訂後行為之前,於規格中新增了回歸測試。