以太坊交易執行後,將狀態與已簽署條件進行比對的 EIP-7906 初步實作,已列入開發網測試版發布紀錄。若交易結果不符合預先設定的條件,執行部分將回滾;目前尚未確定是否納入主網。
以太坊執行規格儲存庫於10月12日將初步實作與測試項目列入測試版發布紀錄。本報先前曾報導以太坊基金會透過 EIP-7906 草案探索驗證交易結果的方案。
以太坊基金會(Ethereum Foundation)的 Access Cluster 於10月5日在官方研究文章中介紹,如何在交易中加入「交易斷言」(transaction assertion)。這項構想源於一個問題:只有交易請求的簽章,無法固定執行當下的合約程式碼與網路狀態。
如果執行時的合約程式碼或網路狀態有所變動,實際資產與合約狀態可能和使用者預期不同。交易斷言會在交易完成後,將結果與事先設定的條件比對。
檢查項目包括餘額、儲存空間、程式碼變動、新合約部署與事件。這套機制會檢視交易前後的狀態差異,以及交易期間發生的事件。
規則可設定最低收取數量或支出上限,也能禁止授權新代幣。這些條件會與交易內容一併簽署,並在執行後和實際結果比對。
交易結果檢查的時點不同於「Clear Signing」功能;後者會以易讀方式呈現交易內容。本報先前曾介紹Clear Signing 如何在錢包畫面顯示代幣兌換、最低收取金額等交易意圖。
交易模擬會根據所選網路狀態計算預期結果,但交易被納入區塊前,網路狀態仍可能改變;錢包防護機制也可能漏掉預先指定檢查項目以外的變動。
EIP-7906 草案透過定義框架交易的 EIP-8141,加入交易結束後的唯讀 POST_TX 檢查階段,用來檢視交易前後的狀態差異與事件。
若檢查未通過,交易的執行部分會回滾,但交易仍可能以失敗狀態留在區塊中。已使用的 Gas 費用也可能照常收取,因此結果檢查不會免除交易成本。
截至10月29日查閱的 Hegotá 升級元 EIP 資料,EIP-7906 列在「納入審議」階段。定義框架交易的 EIP-8141 則列為「預計納入」,兩項提案的升級納入狀態不同。
6月的以太坊開發者論壇討論中,Safe 智慧帳戶相關與會者指出,既有防護機制只會檢查預先指定的資產、授權與設定,並表示有意從錢包端進行測試。另一名與會者則認為追蹤儲存空間變動可能很複雜,建議以事件與日誌為主進行驗證。
與會者也討論了如何追蹤動態存取的儲存空間,以及能否預估檢查所需的 Gas。
即使新增檢查功能,也不代表每筆交易都會自動套用規則。錢包或協定必須將所需規則納入交易,防護功能才會生效。
以太坊基金會警告,遭入侵的前端可能提出會允許攻擊的規則。目前尚未確定 EIP-7906 是否納入升級,也沒有面向一般使用者的錢包支援時程。
留言 0