← 回到 DEVCON 8

Glamsterdam 規劃調整合約與 gas 規則,開發者須檢查相容性

Glamsterdam for App Developers: What Ethereum's Next Fork Changes for You

場次摘要

講者指出,以太坊應用開發者長期受限於智慧合約大小與堆疊存取深度,原生以太幣(ETH)轉帳也缺乏供索引工具使用的事件紀錄。他介紹 Glamsterdam 對應用層的影響,並提醒,擴大交易處理能力也會增加鏈上狀態,相關資源計費規則調整可能打破既有程式碼的假設。 規劃包括將合約上限從 24 提高至 64 KB、加入更深層堆疊操作指令,以及提供 ETH 轉帳紀錄;但部署所需 gas 增加、編譯器須配合,紀錄也有例外。gas 是衡量鏈上資源使用的單位。講者另介紹執行與狀態變更分開計算 gas 的設計,並表示相容性分析發現部分應用可能出現新安全風險,因此升級已延後,團隊仍在評估修改規格或協助應用更新,呼籲開發者測試。

值得記下的 5 件事

  1. [5:20]
    合約容量擴大,但部署資源需求也上升 講者表示,規劃中的合約大小上限將從 24 提高至 64 KB,可望減少拆成函式庫或透過代理合約分散功能的變通做法

    但較大合約的部署需要更多 gas,容量增加並非沒有代價。

  2. [8:40]
    堆疊改善仍須編譯器支援 講者說,三個新操作指令將讓編譯器更容易存取較深層的堆疊,改善 Solidity 開發者常遇到的「stack too deep」(堆疊存取過深)問題

    但升級上線不代表錯誤會立即消失,編譯器仍須配合調整。

  3. [10:00]
    ETH 轉帳紀錄有助索引,但不涵蓋所有資金變動 講者指出,交易所與索引工具目前須追蹤呼叫,才能辨識 ETH 轉帳

    規劃中的新紀錄將採用與 ERC-20 代幣轉帳紀錄相同的篩選主題,但不涵蓋 gas 支付、升級前的歷史交易、質押相關交易,以及執行失敗並回滾的呼叫。

  4. [15:20]
    gas 分開計算,既有程式碼假設須重查 講者介紹將執行與狀態變更所需 gas 分開計算的設計,後者使用稱為 reservoir 的額度池

    他提醒,查詢剩餘 gas 的 gasleft 只顯示執行部分;寫死轉交給其他合約的 gas 額度,也可能因重新定價而失效。

  5. [16:20]
    相容性風險促使升級延後,開發者應先測試 講者表示,分析發現若照當時方案推出,部分應用會出現新的安全問題,因此升級已延後;這不代表當時運作中的應用已受影響

    他呼籲檢查 gas 重新定價的影響,在 Sepolia 測試網測試,並更新工具內寫死的合約大小與 gas 限制。

下載摘要 下載 Word 摘要(.docx)

更多來自 DEVCON 8

訂閱