Skip to content
所有期權指南
Ethereum 智能帳戶12 分鐘閱讀

Ethereum 智能帳戶:UserOperation、Bundler 與 Gas 贊助

了解 ERC-4337 UserOperation 如何經過 bundler 和 EntryPoint、paymaster 如何贊助 gas,以及帳戶復原和資產託管控制的分別。

本指南內容智能帳戶把可程式化的授權規則放進合約

簡短摘要

ERC-4337 讓智能合約帳戶按自身規則,透過獨立於 EOA 交易的流程提交 UserOperation。Bundler 呼叫 EntryPoint,paymaster 可贊助 gas;但不保證帳戶復原、免費交易或非託管。

智能帳戶把可程式化的授權規則放進合約

一般外部擁有帳戶(EOA)用私鑰簽署證明控制權,nonce 決定交易次序。模式雖簡單,但通常同一把密鑰可以授權所有操作。每筆 EOA 交易只有一個頂層動作,但被呼叫的合約仍可在內部繼續呼叫其他合約。Ethereum 待處理交易指南講的是與 ERC-4337 不同的 EOA 交易池。智能帳戶是可以持有資產並執行呼叫的合約。

其驗證程式碼可以要求單一簽署、多個簽署的門檻,或限時權限。ERC-4337 定義授權和執行操作的介面,但不指定某款錢包或復原政策。Ethereum.org介紹備用密鑰、受限權限和 gas 贊助等可能用途,但並非每款錢包都有。「智能錢包」這個名稱本身不能說明誰有控制權。請確認哪個合約持有資產、帳戶信任哪些程式碼和 EntryPoint,以及哪些簽署者可以授權呼叫。

如果帳戶邏輯可以升級,管理員權限和變更程序也會影響資產控制。

UserOperation 還不是已納入區塊的 Ethereum 交易

UserOperation 描述智能帳戶想執行的操作,通常包括發送帳戶地址、帳戶自己的 nonce、呼叫資料、簽署、gas 上限和費用條件。建立新帳戶的 factory 資料或申請贊助的 paymaster 資料亦可能附上。具體欄位會因 EntryPoint 版本而異。錢包不會以一般 eth_sendTransaction 直接把物件送上鏈,而是交給提供 eth_sendUserOperation 等 ERC-4337 RPC 的 bundler 或 relay。

請求會進入獨立的 UserOperation 池,與 EOA 交易池分開。UserOperation 雜湊識別請求;bundler 建立的鏈上交易則有自己的雜湊和收據。ERC-7769定義提交及查詢結果的 RPC 方法。Bundler 的回覆可能只表示請求通過該服務的檢查並進入其池。這不能證明請求已納入區塊,亦不能證明應用程式操作成功。是否傳播至其他 bundler,取決於其基建和政策。

請分清服務確認與鏈上結果。

Bundler 會模擬驗證並準備鏈上呼叫

Bundler 收到操作後會檢查是否兼容其 EntryPoint 版本,再模擬帳戶及 paymaster 的驗證程式。它會檢查簽署、帳戶是否信任 EntryPoint、nonce、gas 和贊助條件。違反規則或模擬失敗的請求可能被拒絕。ERC-4337 bundler 指南說明模擬和打包提交的作用。

之後,bundler 選取一項或多項通過檢查的操作,建立一筆呼叫 EntryPoint handleOps 的一般 Ethereum 交易。該交易能否納入區塊,仍取決於出塊情況和網絡狀態。收到 UserOperation 雜湊不代表它已在規範鏈上執行。UserOperation 池與 EOA 池不同,不同服務未必看到相同請求。Bundler 可能拒絕操作或讓它繼續等候;支援的網絡、EntryPoint 版本和政策也各有不同。查詢狀態時,請分開查看錢包畫面、操作收據和打包交易的鏈上收據。

無文字示意圖:已簽署操作經 bundler 和 EntryPoint 到達智能帳戶,可選 paymaster 為其支付 gas
ERC-4337 將簽署請求、bundler 提交、帳戶驗證和可選 gas 贊助分開處理

EntryPoint 先核實帳戶授權,然後呼叫帳戶

ERC-4337 EntryPoint 文件說明其驗證和結算職責。EntryPoint 接收 bundler 的 handleOps 呼叫,並逐一呼叫帳戶的驗證函數。帳戶會檢查呼叫是否來自可信的 EntryPoint,並驗證簽署及本身的授權規則。ERC-4337 nonce 由 192 位 key 和 64 位 sequence 組成。

EntryPoint 會按帳戶及 key 驗證並遞增 sequence;帳戶可以替 key 設定自訂用途或加入額外檢查。

可選的 paymaster 亦會核實是否願意贊助操作。驗證通過後,EntryPoint 呼叫帳戶的執行函數,運行 callData 所描述的操作並結算成本。EntryPoint 是共用合約,讓不同錢包設計不用修改底層協議也可使用智能帳戶流程。請核對錢包實際使用的部署地址、版本和網絡。模擬是有用的預覽,並不保證納入區塊。等待期間,鏈上狀態、費用、有效時間窗或外部合約都可能改變。即使驗證通過,應用程式呼叫仍可能失敗或回滾。

交易進入區塊本身不代表預期的代幣轉帳或合約操作成功。

Paymaster 獲批後才會贊助 gas

如果 UserOperation 包含 paymaster 資料,EntryPoint 會詢問該合約是否願意贊助。應用程式可代用戶支付費用,或讓帳戶沒有 ETH 的用戶開始操作。有些設計容許用代幣付款或設有其他資格條件,視乎錢包和 paymaster 的實作。贊助不會令成本消失。Paymaster 可以限制應用程式、用戶、操作次數或金額,檢查請求後拒絕。它存入 EntryPoint 的款項用來支付操作成本。如另有 stake 要求,stake 是驗證規則下的抵押,並非可用來付 gas 的同一筆存款。

ERC-4337 paymaster 指南和EIP-4337說明驗證和結算流程。應用程式顯示費用為零,不代表沒有成本。贊助方可能先支付,再透過訂閱、代幣收費或服務條款收回價值。請查看最終由誰承擔成本、贊助是否有限額,以及操作失敗時是否仍會耗用 gas。

分開評估多個呼叫及其費用

如錢包支援,一項 UserOperation 可以同時包括應用程式授權和兌換,兩者作為一項操作經 EntryPoint 執行。這與一筆一般 EOA 交易不同,也不同於 bundler 把多項獨立 UserOperation 打包成一筆鏈上交易。請在錢包預覽中確認結構。假設一項獲批的贊助操作實際耗用 0.0012 ETH gas。費用可能從 paymaster 存於 EntryPoint 的款項結算,而非用戶帳戶餘額。這只是解說用數字,並非目前報價。

實際費用取決於 gas 用量、費用條件和網絡。打包不一定更便宜或更安全。多個呼叫是否具原子性,取決於智能帳戶如何處理失敗。請確認單一呼叫失敗會否回滾整個批次、其他操作能否完成,以及 gas 由誰支付。gas 估算不準亦可能導致拒絕或執行失敗。Ethereum gas 費用指南說明一般費用欄位。

帳戶實作決定復原方式,並非 ERC-4337

帳戶可以設有備用簽署者,或要求可信 guardian 達到門檻後才可更換密鑰。部分設計設有等候期,讓舊密鑰持有人提出異議。如果帳戶永遠只要求一個簽署,遺失該密鑰可能令帳戶無法復原。ERC-4337 容許帳戶使用自己的規則,但不會預設為所有帳戶提供備用密鑰或社交復原。Guardian 太少或更換密鑰規則太弱,可能留下攻擊途徑。Guardian 太多或要求過嚴,則可能拖慢真正持有人的復原。請查看門檻、等候時間、取消權和復原密鑰的保管方式。

這些規則同時決定誰可以阻止操作。合約錢包不會自動等於託管或非託管。控制權取決於誰持有簽署密鑰、誰有管理或升級權限,以及託管簽署者或復原服務可以授權甚麼。請把持有資產的合約與控制它的密鑰和服務分開檢查。助記詞復原指南討論另一種復原方式。

提交前檢查操作和控制路徑

在錢包預覽中檢查網絡、帳戶地址、目標合約、呼叫資料、代幣授權範圍和呼叫數量。簽署可能授權畫面重點以外的操作。如不明白簽署資料,請先閱讀應用程式和錢包的官方說明。要了解贊助條件,請閱讀資格、使用上限、其他付款方式和失敗時的費用規則,不要只看 paymaster 名稱。顯示已贊助不代表應用程式無條件免費,paymaster 仍可拒絕。網絡擠塞和區塊延遲是另一回事。如果 UserOperation 等候很久,不要直接套用 EOA 的「加速」或「取消」方式。

先查操作雜湊和收據;如有 bundler 交易雜湊,也查看區塊收據和執行結果。RPC 收據可區分單項操作的實際費用和成功狀態,以及整筆打包交易的收據。

常見問題

Q1UserOperation 是否等同 Ethereum 交易?

不是。它是經獨立池提交的智能帳戶請求。Bundler 提交 EntryPoint 呼叫後,鏈會記錄打包交易和每項操作的結果。

Q2有 paymaster 是否代表用戶不用支付 gas?

用戶可能不用直接從帳戶支付 ETH,但網絡成本仍存在。可能有使用限額、代幣付款或服務條款;操作失敗亦可能耗用 gas。

Q3遺失密鑰後可以復原 ERC-4337 錢包嗎?

只有帳戶設有備用簽署者或復原政策才可以。請檢查門檻、等候期、更換密鑰權限及復原服務的控制權。

資料來源與延伸閱讀

回報問題

我們會準備一封包含本文連結的電郵。寄出後,Mark 才會收到你的回報

快速檢查

讀完指南後,用 3 道題檢查一下

問題 1 / 3

問題 01

Bundler 傳回 UserOperation 雜湊。單憑這個回覆可證明甚麼?

選擇答案即可查看解釋

期權術語表