Back to top
  • 공유 Share
  • 인쇄 Print
  • 글자크기 Font size
URL copied.

Glamsterdam 升級前,8 項以太坊 Gas 假設待檢查

開發者在筆電上檢視智慧合約程式碼 / TokenPost.ai (macro)

以太坊基金會(Ethereum Foundation)要求智慧合約開發者與稽核人員,在 Glamsterdam 升級前檢查 8 項 Gas 處理假設。EIP-8037 與 EIP-8038 將改變 Gas 計算方式,可能使部分既有合約的執行結果不同。

以太坊基金會於 11 月 6 日發布公告,說明兩項提案將調整部分運算的 Gas 成本,以及狀態資料的計費方式。ChainSecurity 發現,部分依賴舊規則的專案可能因此出現問題。基金會已延後在 Hoodi 測試網啟用 Glamsterdam,目前尚未訂出新日期。

Gas 代表執行交易或智慧合約所需的運算量。EIP-8037 將分開計算建立帳戶、儲存空間等新狀態的成本;EIP-8038 則調整存取或修改既有狀態的運算成本。即使程式碼沒有變更,特定操作所需的 Gas 數量,或執行失敗後剩餘的 Gas,也可能不同。

基金會發布的檢查資料列出開發者應確認的 8 項假設,並附上說明、程式碼範例與自我檢查提示。其中包括「作業能在固定 Gas 數量內完成」、「外部呼叫因 Gas 不足而失敗時,後續儲存操作也會失敗」,以及「執行期間剩餘的 Gas 只會減少」等假設。用來建構交易或監控執行結果的鏈下程式碼也在檢查範圍內。

以太坊基金會表示,將過去的主網交易套用新 Gas 規則重新執行後,發現多數已指出的問題可透過提高 Gas 上限解決。如果程式碼固定設定 Gas 上限,或依照舊規則估算外部呼叫後儲存操作所需的 Gas,新規則可能改變執行結果。檢查資料建議調整 Gas 上限,並依新規則重新估算與測試。

ChainSecurity在分析文章中舉例說明,合約可能會在外部呼叫失敗後記錄失敗情況。依照舊規則,若剩餘 Gas 不足,失敗紀錄也可能一併回滾;新規則下,合約則可能完成紀錄。原本為了讓開發者再次嘗試而設計的失敗處理流程,可能因此產生不同結果,開發者也應檢查這類流程。

以太坊基金會表示,正與多家稽核公司共同檢查,也在進行內部稽核,但無法逐一檢查以太坊上的所有專案,以及鏈上與鏈下程式碼。基金會先前的說明指出,一般使用者不需要採取額外措施。TokenPost先前也曾報導錢包、索引器與 Gas 估算工具可能發生故障,以及部分合約有必要檢查 Gas 調整。

基金會呼籲確認受到影響的專案以電子郵件提供案例與重現方式。開發者的意見將作為下一次核心開發者會議討論是否修改 EIP-8037 與 EIP-8038 的參考資料。

<Copyright ⓒ TokenPost, unauthorized reproduction and redistribution prohibited>

Most Popular

Other related articles

Comment 0

Comment tips

Great article. Requesting a follow-up. Excellent analysis.

0/1000

Comment tips

Great article. Requesting a follow-up. Excellent analysis.
1