昨天談 MEV,看的是交易被打包上鏈前如何被套利者盯上;今天把鏡頭移到交易的另一端——一筆交易究竟由誰、以什麼形式被簽署發起。這正是「帳戶抽象」要重寫的部分,而 2025 年 Pectra 升級帶來的 EIP-7702,把這件事從實驗室推進了主流錢包。

📖 學

以太坊從一開始就有兩種帳戶。一種是外部帳戶(EOA),由一把私鑰控制,你在 MetaMask 裡看到的地址就是它;另一種是合約帳戶,沒有私鑰,行為由部署上去的程式碼決定。問題在於:能主動發起交易、能付 gas 的,只有 EOA。這意味著一切安全與便利,都被鎖死在「一把私鑰簽一筆交易」這個原始模型上。私鑰遺失就是資產歸零,沒有社交恢復;每筆操作都要單獨簽名、單獨付 ETH 當手續費;想要「授權額度後批次執行」這種在傳統支付裡稀鬆平常的事,鏈上做起來都很彆扭。

帳戶抽象要解決的,就是讓 EOA 也能擁有合約帳戶那種可程式化的行為。過去的主線方案是 ERC-4337,它不動底層協議,而是在協議之上另起一套平行系統:使用者不直接發交易,而是簽一個叫 UserOperation 的意圖物件,丟進一個獨立的記憶池;由稱作 Bundler 的角色把多筆 UserOperation 打包,送進一個全域的 EntryPoint 合約統一驗證與執行;手續費則可由 Paymaster 代付,於是「用 USDC 付 gas」甚至「應用方幫你付 gas」變得可行。這套設計很完整,但它需要你先部署一個全新的智慧合約錢包,把資產搬過去,遷移成本讓多數既有 EOA 使用者裹足不前。

EIP-7702 補上了這最後一哩。它新增一種交易型別,讓一個既有的 EOA 可以透過一筆「委派」交易,把自己的程式碼指向某個智慧合約——地址不變、資產不搬,你原本的錢包就地升級成一個具備合約能力的帳戶。技術上,委派後這個 EOA 的程式碼欄位會被填入一個 0xef0100 開頭、後接目標合約地址的指示子,之後對它的呼叫就會執行那份合約邏輯。於是社交恢復、批次交易、代付 gas、每日限額這些功能,不再需要拋棄舊地址就能擁有,7702 也因此和 4337 的基礎設施天然接軌。

🧠 記

  • 兩種帳戶的分裂:EOA 有私鑰能發起交易但不可程式化;合約帳戶可程式化但不能主動發起。帳戶抽象就是要弭平這道裂縫。
  • ERC-4337 三件套:UserOperation(意圖)、Bundler(打包者)、EntryPoint(統一入口合約),外加 Paymaster(代付手續費)。它在協議之上另建系統,代價是要遷移到新錢包。
  • EIP-7702 的關鍵字是「就地升級」:地址與資產不變,EOA 藉委派交易把程式碼指向合約,0xef0100 + 地址 是委派指示子。
  • 落地規模:Pectra 升級於 2025 年 5 月啟用 7702,首週主網就記錄逾 1.1 萬筆委派授權;到 2026 年,生態內智慧錢包已逾 2 億個,Paymaster 每日處理的代付交易以百萬計。
  • MetaMask、Rabby、Trust Wallet 都已支援 7702——這代表它不再是開發者玩具,而是進入了你我日常會碰到的錢包。

✍️ 實踐

打開你常用的錢包(MetaMask 或 Rabby),找設定裡與「智慧帳戶」或「Smart Account / 7702」相關的選項,觀察它是否提示你可以把現有地址升級。先別急著在主網操作,改到測試網(如 Sepolia)申請一點測試幣,實際發起一次委派升級,再試著送出一筆「批次交易」——例如在一次簽名裡同時完成 approve 與 swap。做完後到區塊瀏覽器查那筆交易,注意它的交易型別與你的地址程式碼欄位有沒有出現 0xef0100 開頭的委派指示子。這一趟走完,你對「EOA 就地變智慧帳戶」的理解會從文字變成手感。

🔗 延伸學習

💬 問 AI

我想搞懂以太坊的帳戶抽象。請用一個具體例子,對比說明以下三種模型下,
「使用者送出一筆 swap」的完整流程差在哪:
1) 傳統 EOA 直接發交易
2) ERC-4337 的 UserOperation + Bundler + EntryPoint + Paymaster
3) EIP-7702 讓既有 EOA 委派升級後執行批次交易
並說明 EIP-7702 委派升級可能帶來哪些新的安全風險(例如惡意委派合約),
以及使用者該如何自保。