Glamsterdam 規劃調整合約與 gas 規則,開發者須檢查相容性
Glamsterdam for App Developers: What Ethereum's Next Fork Changes for You
場次摘要
講者指出,以太坊應用開發者長期受限於智慧合約大小與堆疊存取深度,原生以太幣(ETH)轉帳也缺乏供索引工具使用的事件紀錄。他介紹 Glamsterdam 對應用層的影響,並提醒,擴大交易處理能力也會增加鏈上狀態,相關資源計費規則調整可能打破既有程式碼的假設。 規劃包括將合約上限從 24 提高至 64 KB、加入更深層堆疊操作指令,以及提供 ETH 轉帳紀錄;但部署所需 gas 增加、編譯器須配合,紀錄也有例外。gas 是衡量鏈上資源使用的單位。講者另介紹執行與狀態變更分開計算 gas 的設計,並表示相容性分析發現部分應用可能出現新安全風險,因此升級已延後,團隊仍在評估修改規格或協助應用更新,呼籲開發者測試。
值得記下的 5 件事
- [5:20]
合約容量擴大,但部署資源需求也上升 講者表示,規劃中的合約大小上限將從 24 提高至 64 KB,可望減少拆成函式庫或透過代理合約分散功能的變通做法
但較大合約的部署需要更多 gas,容量增加並非沒有代價。
- [8:40]
堆疊改善仍須編譯器支援 講者說,三個新操作指令將讓編譯器更容易存取較深層的堆疊,改善 Solidity 開發者常遇到的「stack too deep」(堆疊存取過深)問題
但升級上線不代表錯誤會立即消失,編譯器仍須配合調整。
- [10:00]
ETH 轉帳紀錄有助索引,但不涵蓋所有資金變動 講者指出,交易所與索引工具目前須追蹤呼叫,才能辨識 ETH 轉帳
規劃中的新紀錄將採用與 ERC-20 代幣轉帳紀錄相同的篩選主題,但不涵蓋 gas 支付、升級前的歷史交易、質押相關交易,以及執行失敗並回滾的呼叫。
- [15:20]
gas 分開計算,既有程式碼假設須重查 講者介紹將執行與狀態變更所需 gas 分開計算的設計,後者使用稱為 reservoir 的額度池
他提醒,查詢剩餘 gas 的 gasleft 只顯示執行部分;寫死轉交給其他合約的 gas 額度,也可能因重新定價而失效。
- [16:20]
相容性風險促使升級延後,開發者應先測試 講者表示,分析發現若照當時方案推出,部分應用會出現新的安全問題,因此升級已延後;這不代表當時運作中的應用已受影響
他呼籲檢查 gas 重新定價的影響,在 Sepolia 測試網測試,並更新工具內寫死的合約大小與 gas 限制。
更多來自 DEVCON 8
Arrow 的硬體 DAO 實驗:AI 協作、在地製造與責任分工
A DAO Shipped an Aircraft: What It Takes to Coordinate Atoms with Tokens
Thomas Garrison
Kohaku:以 SDK 將隱私與安全功能帶入以太坊錢包
Kohaku : privacy for everyone, by default
Nico、Vitalik
私密區塊鏈的取捨:隱私、去中心化與合約協作
Private State, Public Network: The Tradeoffs Behind Privacy
Zachary Williamson