昨天我們把跨鏈橋講清楚:基礎設施負責在互不信任的鏈之間搬資產、傳訊息。但把資產搬到目標鏈之後,真正操作它的那把「鑰匙」,體驗其實糟得離譜——你得先自己準備一點原生代幣付 gas,還得背下一串十二個英文單字的助記詞,一旦弄丟或被騙走就永久歸零,沒有客服、沒有找回按鈕。這正是至今擋在多數人門外的最後一道牆:錢包。今天我們回到使用者端,講帳戶抽象(Account Abstraction)——ERC-4337 如何在不動共識層的前提下,把「錢包」從一把死板的私鑰,升級成一個可以代付 gas、社交恢復、批次交易、用指紋登入的智能合約,以及 2025 年上線的 EIP-7702 如何讓你手上這個舊帳戶「當場升級」。
📖 學
EOA 與合約帳戶:以太坊天生的兩種帳戶
以太坊上其實一直存在兩種帳戶。第一種是外部帳戶(EOA,Externally Owned Account),也就是絕大多數人用的 MetaMask 地址:它由一把私鑰(對應一串助記詞)直接控制,誰握有私鑰誰就是主人。EOA 的規則被寫死在協定裡——只能用固定的橢圓曲線簽章(ECDSA/secp256k1)驗證、一次只能發一筆交易、而且必須用 ETH 付 gas。它沒有程式邏輯,不能設條件、不能改驗證方式,簡單但僵硬。
第二種是合約帳戶(Contract Account),也就是智能合約。它沒有私鑰,行為完全由部署上去的程式碼決定,可以寫任意規則——多簽、每日限額、白名單、時間鎖。它靈活得多,但有個致命限制:在傳統以太坊裡,合約帳戶不能自己主動發起交易,必須由某個 EOA 先發一筆交易來「戳」它。所以長久以來,使用者的入口一定是那把僵硬的 EOA,靈活的合約錢包反而動不了。帳戶抽象要解的核心問題,就是打破這個分裂:讓使用者的主帳戶本身就是一個能自訂驗證邏輯、又能主動發起交易的智能合約。
帳戶抽象是什麼,為什麼難
「帳戶抽象」這個詞的意思,是把「帳戶如何驗證一筆交易合不合法」這件事,從協定寫死的規則裡抽離出來,交還給使用者自訂的程式碼。白話說:你的帳戶要不要簽章、用什麼演算法簽、誰付 gas、能不能一次做好幾件事,全都由你的合約自己決定,而不是協定替你決定。
這件事講了很多年卻遲遲做不到,因為最乾淨的做法(EIP-2938、EIP-3074 那類)需要修改以太坊的共識層——動核心協定風險極高、要全網硬分叉、各方難以達成共識。ERC-4337 的聰明之處,就是完全不碰共識層:它不新增交易類型、不改節點驗證規則,而是在協定「之上」另外搭一套平行系統,用一堆智能合約與鏈下服務模擬出帳戶抽象的效果。這也是它 2023 年 3 月就能直接上主網、無需任何硬分叉的原因。
ERC-4337 的四個角色:UserOperation、Bundler、EntryPoint、Paymaster
ERC-4337 的核心,是把使用者的意圖包成一個叫 UserOperation 的物件,它長得很像交易,但不是協定認得的正式交易——裡面裝著「我要做什麼、驗證邏輯的簽章、願意付多少 gas、由誰代付」等資訊。這些 UserOperation 不進以太坊原本的交易記憶池,而是進入一個獨立的替代記憶池(alt mempool)。
接著由 Bundler(打包者) 登場:它是一個鏈下服務,從替代記憶池裡撈出多個 UserOperation,先在本地模擬、確認它們都合法且付得起 gas,再把它們「打包」成一筆真正的以太坊交易送上鏈。Bundler 自己是個 EOA,由它先墊付 gas,事後再從使用者帳戶拿回補償——這一步正是「合約帳戶不能自己發起交易」限制的破解方式。
這筆打包交易會送進 EntryPoint:一個全網唯一的單例合約(singleton),是整套系統的總機。它逐一處理每個 UserOperation——先呼叫你帳戶的 validateUserOp 檢查簽章是否合法,再執行你真正想做的動作,最後結算 gas、退還多收的部分。2026 年主網上並存 v0.6 與 v0.7 兩個版本的 EntryPoint。把驗證邏輯交給你自己的帳戶合約,正是「抽象」發生的地方。
最後是 Paymaster(代付者):一個可選的合約,負責「誰來付 gas」的政策。有了它,dApp 可以幫使用者付 gas(讓新手完全不必先持有 ETH),或允許使用者用 USDC、甚至用要轉的那顆代幣本身來付手續費。EntryPoint 會先問 Paymaster「這筆你願不願意付」,願意才放行。這四個角色合起來,就在不改共識層的情況下,兌現了帳戶抽象。
帳戶抽象帶來的超能力
一旦帳戶變成可程式化的合約,過去做不到的體驗一次解鎖:
Gas 代付/免 gas(sponsored / gasless):透過 Paymaster,使用者第一次用 dApp 不必先去交易所買 ETH、轉進錢包,門檻大幅降低;也能用穩定幣付費,不必為了付 gas 而長期持有波動的 ETH。批次交易(batching):傳統上「授權代幣(approve)」和「兌換(swap)」得分兩筆簽兩次、付兩次 gas,合約錢包能把它們塞進一筆 UserOperation 原子化執行,要嘛全成、要嘛全不成。社交恢復(social recovery):不再把身家壓在一張助記詞紙上,你可以指定幾位守護者(朋友、其他裝置、機構),私鑰弄丟時由他們多數同意幫你換上新金鑰,帳戶地址不變、資產不動。通行金鑰登入(passkey / WebAuthn):合約帳戶可以改用手機安全晶片裡的 passkey(指紋、Face ID)產生的簽章來驗證,不必再抄助記詞,且天生抗釣魚。Session Key(會話金鑰):授權一把有限權限、有到期時間的臨時金鑰——例如「這把鑰匙一小時內、只能在這款鏈遊戲裡、每筆最多花 10 USDC」,讓你玩遊戲時不必每個動作都彈窗簽名,體驗接近 Web2。
EIP-7702:讓你手上的舊 EOA 當場升級
ERC-4337 雖強,但有個現實痛點:它要求你改用一個全新的合約錢包地址。你原本那個用了三年、綁滿各種紀錄的 MetaMask EOA 地址,享受不到這些好處。EIP-7702 就是來補這一刀的——它於 2025 年 5 月 7 日隨以太坊 Pectra 硬分叉上主網,由 Vitalik 等人提出,取代更早的 ERC-3074。
它的機制是:讓一個 EOA 透過簽署一份授權(authorization),「暫時借用」某個智能合約的程式碼。簽了之後,你這個 EOA 地址在執行時就同時擁有合約帳戶的能力——可以批次交易、可以讓 Paymaster 代付 gas、可以設 session key,但地址不變、私鑰不變,原本收到的資產與代幣完全照舊。等於給你原地換了一顆更聰明的引擎,車牌沒改。這也讓 EIP-7702 與 ERC-4337 是互補而非取代:7702 把既有的幾億個 EOA 一次接上帳戶抽象的世界,很多錢包直接把兩者疊在一起用。2026 年 Rabby、Trust Wallet 等錢包都已支援對 7702 授權的簽署與顯示。Circle 也示範了用 7702 讓使用者以 USDC 完成「免 gas」轉帳。
破除迷思:智能錢包不是免死金牌
迷思一:「帳戶抽象=不用私鑰,所以更安全」——錯。帳戶抽象只是把「驗證方式」抽換掉,不代表沒有金鑰。passkey 背後仍是一把私鑰(存在裝置安全晶片裡)、session key 本身就是金鑰、7702 的授權還是要用你 EOA 的私鑰去簽。金鑰沒有消失,只是換了保管方式;保管方式選錯(例如 passkey 只存在單一裝置又沒設恢復),照樣一失全失。
迷思二:「智能錢包沒有攻擊面」——恰恰相反,它多了一整層攻擊面。你的帳戶現在是一段程式碼,程式碼就會有漏洞:合約錢包本身可能被寫錯、社交恢復的守護者可能串謀或被一鍋端(若你把守護者全設成自己的裝置、又放在同一個地方,等於沒分散)、session key 若權限開太大、期限太長、又難以撤銷,就從「便利層」變成「後門」。7702 授權更危險——你若被誘導簽下一份指向惡意合約的授權,等於把整個帳戶的控制權交出去,一次簽名就能被掏空。多一分能力,就多一分要審的東西。
迷思三:「Paymaster 代付=真的免費」——不是。gas 從來沒有消失,只是換人付。Paymaster 幫你付的 ETH,成本最終會回到某個地方:可能由 dApp 補貼(羊毛出在使用者身上,或有補貼用完的一天)、可能從你要轉的代幣裡先扣掉、也可能之後以其他形式向你收費。「免 gas」是體驗上的免、不是經濟上的免;看到「gasless」時該問的是「那這筆 gas 到底誰出、他為什麼願意出、什麼時候會停」。
🧠 記
- 以太坊天生有兩種帳戶:EOA(私鑰直控、規則寫死、必須用 ETH 付 gas、不能自訂邏輯)與合約帳戶(可程式化但不能自己主動發起交易)。帳戶抽象要打破這個分裂。
- ERC-4337 最關鍵的一點:完全不改共識層,靠一套平行的合約+鏈下服務模擬帳戶抽象,所以 2023 年就能直接上主網、無需硬分叉。
- 四個角色:UserOperation(意圖物件,走替代記憶池)、Bundler(打包並墊付 gas 上鏈)、EntryPoint(全網單例合約總機,呼叫你帳戶的 validateUserOp)、Paymaster(決定 gas 誰付、可用穩定幣付)。
- 超能力:gas 代付/免 gas、批次原子交易、社交恢復(守護者換金鑰、地址不變)、passkey 登入(抗釣魚)、session key(有限權限+到期的臨時金鑰)。
- EIP-7702(2025-05 Pectra 上線)讓既有 EOA 簽授權「暫借」合約程式碼,地址與私鑰不變就取得智能錢包能力,與 4337 互補而非取代。
- 三個迷思要破:金鑰沒消失只是換保管方式(安全不等於免責)、智能錢包多了合約與授權的攻擊面、Paymaster「免 gas」只是換人付而非真免費。
✍️ 實踐
今天用約 30 分鐘,親手體驗一次帳戶抽象並看清它的信任面。步驟:(1)花 10 分鐘,用手機打開 Coinbase Wallet 或任一支援 passkey 的智能錢包,建立一個新的智能帳戶——注意它建立時不會給你助記詞,改用裝置的指紋/Face ID(passkey),感受一下入口門檻的差別。(2)花 10 分鐘,去一個支援 gasless 的測試網 dApp 做一筆免 gas 交易(許多 L2 的水龍頭或 dApp 有 Paymaster 代付),在區塊瀏覽器上找到這筆交易,看看 gas 實際是由哪個 Paymaster 地址付的——把「免費」背後的付款人揪出來。(3)最後花 10 分鐘,打開你現有的錢包,找找有沒有「EIP-7702 授權」或「委派/delegate」相關的簽名請求畫面,讀清楚它要你把帳戶委派給哪個合約地址、那個地址是否已驗證。做完把三個答案寫下來:我這個帳戶用什麼在驗證?這筆 gas 誰付?我簽的授權把控制權交給了誰?
🔗 延伸學習
- EIP-4337: Account Abstraction Using Alt Mempool(以太坊官方標準原文):UserOperation、Bundler、EntryPoint、Paymaster 的權威定義來源。
- Alchemy — What is Account Abstraction (ERC-4337)?:從開發者視角把整套 4337 stack 與運作流程講清楚。
- Circle — Pectra 與 EIP-7702:用 USDC 完成免 gas 轉帳:7702 讓 EOA 升級、以穩定幣付 gas 的真實案例。
- Session Keys Explained:臨時錢包權限如何運作(2026):拆解 session key 的權限、期限與撤銷設計及其風險。
💬 問 AI
想搞懂一個智能錢包功能到底幫你解了什麼、又把風險藏在哪,別只問「這個安不安全」,把信任與成本逼出來。試著這樣問:
我在用(錢包/dApp 名稱),它提供(gas 代付/社交恢復/passkey 登入/session key/EIP-7702 授權,擇一)功能。
請幫我拆解:
1. 這個功能實際上是用 ERC-4337 還是 EIP-7702 實現的?兩者差在哪?
2. 我的帳戶現在「用什麼」驗證一筆交易?金鑰/授權存在哪裡、由誰保管?
3. 這個功能多開了哪些攻擊面?(合約漏洞、守護者串謀、session key 權限過大、惡意授權)我該檢查哪幾項參數?
4. 如果它標榜「免 gas」,這筆 gas 究竟是誰付、他為什麼願意付、什麼情況會停?
最後用「這個便利,我付出的代價與最壞情況是什麼」一句話總結。