以太坊區塊鏈關於賬戶抽象的 EIP–4337 提案,是當前智能合約錢包熱潮中的焦點。讓用戶在鏈上自行管理資產,是區塊鏈技術給互聯網帶來的一個主要變革,而這也是所謂「可擁有」的 Web3.0 給出的最大承諾。但目前,對於用戶來說,依賴於助記詞、私鑰的鏈上賬戶有著極高的使用門檻;而對開發者來說,當前的賬戶本身沒有編程性可言。
EIP–4337 的「錢包合約賬戶」或將改變上述鏈上賬戶的尷尬狀態,並成為眾多 Web3.0 應用提供給用戶自行保管資產的主要方式,且有可能會推動 Web3 的大規模採用。在這裡,我將基於提案技術規格和項目組的官方代碼實現,來探討它帶來的機遇及如何實際開發。
編者註:本份研究報告作者採用了與傳統 Web2 解決方案對比介紹的撰寫手法,通過掰開揉碎、深入淺出的方式,使得非技術背景人員也能夠獲益良多。
作者:方軍,Web3Caff Research 特邀研究員
封面: Photo by Resource Database™ on Unsplash
目錄
- 前言
- 一個使用場景
- EIP-4337 帶來的六個變化
- EIP-4337 相關術語表
- 為什麼需要 EIP-4337
- 以太坊賬戶:EOA 外部賬戶與合約賬戶
- 當前實踐中的以太坊賬戶改進
- 現有改進之一: 多簽錢包
- 現有改進之二: 無需燃料費的元交易
- EIP-4337 的三種場景
- 場景一: 用戶的「錢包合約賬戶」自付燃料費
- 場景二: 由代付者(Paymaster)支付燃料費
- 場景三: 使用聚合簽名
- EIP-4337 的原理與組件
- 運行 EIP-4337:通過運行理解
- 準備工作: 合約部署與運行打包者
- 創建賬戶: 首次操作錢包
- 資產轉賬: 轉賬 ETH 與 ERC20 Token
- 代付機制: 代付者支付燃料費
- EIP-4337 的組件詳解
UserOperation
- 入口點合約 EntryPoint
- 打包者、打包者網絡與 UO Mempool
- 運行 EIP-4337:通過運行理解
- 應用與錢包開發者的視⻆
- 錢包應用的兩項關鍵任務
- 錢包合約與部署者合約
- 鏈外簽名與鏈上簽名驗證
- 代付者合約
- 總結與展望