TronGreen

以太坊開發者生態錢包安全與協議設計

以太坊基金會提「交易斷言」:簽名時寫下結果底線,不符就回滾執行部分,EIP-7906 仍只是考慮納入

以太坊基金會 Access 團隊 10 月 5 日發文,提出「原生交易斷言」:使用者在簽名時一併簽下結果規則,例如兌換至少要收到多少代幣、不得新增授權,交易執行完由唯讀程式比對淨變化,不符就回滾執行部分(驗證階段的變更保留),但交易仍上鏈、付款方照付已用 gas。

流程示意圖:以太坊交易斷言構想(EIP-7906 草案)中,一筆框架交易依序經過驗證、執行、斷言檢查三步;結果符合規則則生效,不符規則則執行部分回滾,交易仍上鏈、付款方照付已用 gas。
交易斷言(EIP-7906 草案)運作示意。TronGreen 依以太坊基金會 2026-10-05 部落格文章與 EIP-7906 規格以程式自行繪製;非官方介面,提案仍在設計中、尚未排入升級。

具體方案 EIP-7906 在 EIPs 網站仍是 Draft,基金會稱它在下一次升級 Hegotá 只屬「考慮納入」;它依賴的框架交易 EIP-8141 已在 8 月排定進 Hegotá。斷言不是強制功能,也只管單一鏈的單筆交易。

重點摘要

交易斷言把防線從「讓使用者看懂要簽什麼」延伸到「鏈上強制檢查結果」,能補上前端被駭、模擬過期與 AI 代理代簽的缺口;但規則若仍由同一個前端產生就沒有保護作用,而且 EIP-7906 尚未排進任何升級,短期內使用者仍得靠錢包的清楚簽名與模擬。

文章目錄

發生什麼:基金會想讓「交易結果」也能被簽名約束

以太坊基金會 Access 團隊 10 月 5 日在官方部落格發表研究文章,討論「原生交易斷言」(native transaction assertions)。文章指出,基金會的 Trillion Dollar Security(1TS)計畫已把盲簽與交易結果不確定列為使用者體驗風險;目前以太坊「沒有一般性的機制,讓鏈上程式檢查一筆交易產生的全部淨狀態變化」,交易斷言就是要補這個缺口。

做法是:使用者簽名時,把一條結果規則和交易一起簽下;交易中的實際操作執行完後,由唯讀邏輯比對執行前後的值,規則不成立就回滾這些操作。規則可涵蓋餘額、儲存、合約程式碼、新部署的合約與事件,基金會舉的例子包括兌換的最低收到數量、支出上限、禁止新增代幣授權,以及保持帳戶的控制邏輯不被改動。

這是研究階段的構想,不是已上線功能。文章明說設計仍在進行,也沒有宣布任何上線時間。

為什麼需要:前端被駭與「看到了還是簽下去」

基金會把簽名出錯分成兩類。第一類是「意圖不符」:使用者核准的內容和自己以為的不同,文章舉 Bybit 事件(Safe 合約實作被替換)與 BadgerDAO 攻擊(被加上未授權的代幣花費權限)為例,兩者都涉及前端遭入侵。第二類是「結果不符」:使用者簽的就是畫面顯示的內容,但結果違背自己的目標。

第二類的例子是今年 3 月 12 日的 Aave/CoW Swap 事件。依 The Block 3 月 15 日報導,一名使用者在 Aave 介面中、由 CoW Swap 驅動的兌換工具裡,把約 5,040 萬美元的 aEthUSDT 換成只值約 3.6 萬美元的 aEthAAVE;介面曾顯示 99.9% 價格衝擊警告,並要求勾選接受可能損失全部價值。Aave 事後推出預設阻擋價格衝擊超過 25% 的 Aave Shield,CoW Swap 則在事後檢討中指出寫死的 1,200 萬 gas 上限擋掉了較好的報價等多項失誤。

基金會認為既有防線各有缺口:清楚簽名(Clear Signing)仰賴解碼正確,也仰賴使用者自己看出不對;交易模擬會因鏈上狀態在打包前改變而過期,且簽出的交易可能和模擬的不同,文章以 Radiant Capital 案中惡意程式在簽名當下替換內容為例;Uniswap 的最低收到數量、Safe 的執行後檢查等合約層保護,則必須事先知道要檢查哪些狀態,看不到全部淨變化。

技術上怎麼做:EIP-7906 在框架交易尾端加一道唯讀檢查

基金會提到的一種具體方案是 EIP-7906「透過狀態差異操作碼的交易斷言」。EIPs 網站顯示它是 2025 年 2 月建立的 Draft(草案),作者包括 Yoav Weiss、Alex Forshtat 等人,並依賴 EIP-8141。EIP-8141 定義新的「框架交易」(交易類型 0x06),把一筆交易拆成多個框架,分別負責驗證、決定由誰付 gas 與執行操作,作者包括 Vitalik Buterin 等人,定位是實現原生帳戶抽象。

EIP-7906 在框架交易最後加上唯讀的斷言框架(規格稱 ASSERT 模式,基金會文章稱 POST_TX frame)。依 EIP-7906 現行草案,它新增兩個只能在此框架內使用的操作碼:TXTRACE(0xb6)依參數逐欄讀取這筆交易的淨狀態差異,包括餘額、儲存槽、合約程式碼雜湊與 nonce 的「執行前/執行後」值,以及發出的事件、gas 預扣額與付款方;EVENTDATACOPY(0xb7)把事件的非索引資料複製到記憶體。基金會文章的描述略有不同,列出 TXTRACE、TXDIFF、EVENTDATACOPY 三個操作碼,其中 TXDIFF 負責查詢指定地址或儲存槽的起始與最終值;但現行規格沒有 TXDIFF,這項功能由 TXTRACE 的參數承擔。操作碼的數量與名稱仍可能隨草案修訂改變。基金會文章也說,同一個儲存槽即使被寫入五次,也只會以一筆「起始值與最終值」呈現。

斷言失敗時,整個執行部分回滾到設定付款方的驗證框架之後的狀態,驗證階段的變更保留,被回滾操作發出的事件也會丟棄;交易仍會被打包、以失敗狀態記錄,付款方要付到失敗為止已用掉的 gas。基金會與規格都解釋,這是為了避免攻擊者逼區塊建構者免費執行注定失敗的交易。

進度與限制:只是「考慮納入」,不是強制

時程上要分開看。依以太坊研究者 Christine Kim 8 月 28 日的 ACDE #244 會議紀錄,核心開發者已把 EIP-8141 框架交易「排定納入」(SFI)Glamsterdam 之後的下一次升級 Hegotá;基金會文章則說 EIP-7906 在 Hegotá 規劃中屬「考慮納入」(CFI),尚未確定。Hegotá 沒有官方主網日期;連 Glamsterdam 本身也還沒有:基金會 10 月 22 日公告,原訂 10 月 26 日的 Hoodi 測試網升級已延期、新日期未定,且該公告並未設定 Glamsterdam 主網日期(10 月 16 日公告的 Hoodi 時程已被取代)。

基金會文章也列出限制:EIP-7906 不強制使用斷言,交易建構者可以不加;要發揮作用,錢包得在自家交易中加入必要斷言,協議則要檢查呼叫是否來自帶有指定斷言的框架交易。已部署的不可升級合約無法加上這種檢查;呼叫方與整合方都要支援框架交易;保證只在單一鏈的單筆交易內成立,不涵蓋跨鏈路徑。EVM 該揭露狀態變化還是事件、操作碼可在哪些交易類型或階段使用等設計選擇,也仍未定案。

文章特別強調「規則的來源和檢查本身一樣重要」:規則必須來自使用者獨立核准的意圖、帳戶的常設政策,或被駭元件改不了的協議邏輯。基金會把斷言定位為 5 月推出的清楚簽名標準(ERC-7730 等)的互補,而不是取代:清楚簽名說明 calldata 要做什麼,斷言則在執行後強制檢查結果。

AI 觀點分析與推論

AI 觀點:真正的價值在 AI 代理與錢包政策,不在單次兌換

我傾向認為,交易斷言最重要的應用不是保護一般人的單筆兌換,而是替「代你簽名的程式」設上限。基金會文章列出的用途之一就是代理委託:對每個代理動作的結果設限制。當錢包讓 AI 代理或自動化策略代為操作時,使用者很難逐筆看懂 calldata,但可以事先寫下「這個帳戶每筆淨流出不超過多少、不能新增授權、帳戶邏輯不能被換」這類常設政策。若這些政策由錢包或帳戶合約保存、而不是由每次互動的前端產生,前端或代理被入侵時,單筆損失就有可計算的上限;至於多筆累計的損失,單筆上限本身擋不住,還需要另設跨交易的額度政策。

反過來說,若規則仍由同一個網頁介面即時產生,斷言對 Bybit 類的前端攻擊幾乎沒有幫助:攻擊者換掉交易內容時,也能一併換掉規則。這正是基金會強調規則來源的原因。對 Aave/CoW 這類「警告已顯示、使用者仍確認」的案例,斷言也未必能救:如果使用者在同一個畫面上確認了極低的最低收到數量,鏈上檢查只會忠實執行這個錯誤規則。我認為真正有用的組合,是錢包端的常設政策加上像 Aave Shield 那種預設擋下極端價格衝擊的設定。

受益者主要是錢包、帳戶抽象服務商與做代理交易的團隊;受影響的是不可升級的舊協議與不支援框架交易的整合方,它們短期內得不到這層保護。會讓我改變判斷的訊號有三個:EIP-7906 是否在 Hegotá 從 CFI 升為 SFI;主流錢包是否承諾把斷言做成預設帳戶政策,而不只是進階選項;以及 Hegotá 的實際時程。若 EIP-7906 最終沒有進入 Hegotá,斷言就只能停留在各錢包、各協議自行實作的合約層檢查,覆蓋面會小很多。

對讀者的影響與下一步觀察

對一般 ETH 使用者,現在不需要做任何事,交易斷言也還沒有可用的錢包功能。短期內真正可用的防線仍是:使用支援清楚簽名的錢包、重視價格衝擊與授權警告、簽名前核對要授權的合約與額度。對開發者,基金會建議關注 EIP-7906 在 Ethereum Magicians 的討論與 Hegotá 的範圍決定;同時留意 Glamsterdam 的進度:基金會 10 月 22 日公告說,Hoodi 升級延期是為了進一步調查 EIP-8037 與主網智慧合約的互動,調查仍在進行中,結果與新日期都尚未公布。

後續可觀察的是:Hegotá 範圍會議對 EIP-7906 的決定、EIP-8141 的客戶端實作與測試網進度,以及錢包團隊是否公布以框架交易為基礎的帳戶政策設計。本文依以太坊基金會文章、EIP 規格與會議紀錄整理,提案內容在定案前仍可能改變。

原始來源與延伸閱讀

  1. Ethereum Foundation Blog:How native transaction assertions could enforce a transaction's final outcome ↗官方研究文章 · 原始發布 2026-10-05 · 查閱 2026-10-21
  2. EIP-7906: Transaction Assertions via State Diff Opcode ↗技術規格草案 · 原始發布 2025-02-21 · 查閱 2026-10-21
  3. EIP-8141: Frame Transaction ↗技術規格草案 · 原始發布 2026-01-29 · 查閱 2026-10-21
  4. Christine Kim:ACDE #244 Frame Transactions SFI'd for Hegotá ↗開發者會議紀錄 · 原始發布 2026-08-28 · 查閱 2026-10-21
  5. Ethereum Foundation Blog:Clear Signing announcement ↗官方公告 · 原始發布 2026-05-12 · 查閱 2026-10-21
  6. The Block:Aave and CoW Swap publish dueling post-mortems after $50 million DeFi swap disaster ↗媒體報導 · 原始發布 2026-03-15 · 查閱 2026-10-21
  7. Ethereum Foundation Blog:Glamsterdam Hoodi Testnet Announcement(Hoodi 時程已被 s8 取代) ↗官方公告 · 原始發布 2026-10-16 · 查閱 2026-10-21
  8. Ethereum Foundation Blog:Glamsterdam on Hoodi Postponed ↗官方公告 · 原始發布 2026-10-22 · 查閱 2026-10-23

更正與更新

本文發布後沒有更新。之後若有修改,會建立新版本並在這裡標示更新時間。

內容有誤?請見更正方式,或寄信至 [email protected](請附文章網址、段落與參考資料)。

延伸閱讀

更多 ETH 新聞