去年,以太坊創辦人Vitalik Buterin (V神)宣布了新的提案 ERC-4337,該提案將重塑以太坊錢包的設計方式。如果成功實現,它將可能是實現「帳戶抽象」和「社交恢復」夢想的智能錢包關鍵。
(前情提要:科普教學》V 神譽為比冷錢包安全 : 多簽錢包是什麼?優缺點和應用場景?)
(相關補充:Vitalik撰文「以太坊Layer3的願景」: 怎樣的L3才合理?不該重複堆疊Rollups (全文)
當前主流以太坊錢包(指 EOA 錢包)的用戶體驗很有限,以下便捷性功能都只能通過智能合約錢包來完成(一些鏈外輔助方案可以提供便利,但會引入不必要的外部風險,故不在本文討論範圍內)
- 無私鑰&助記詞體驗,社交找回(eg Argent,Unipass)
- 批量交易(eg Gnosis Safe)
- 純鏈上游戲中,無需多次簽名(Session Key)
幸運的是,我們已經很接近通行的智能合約標準,而這意味著用戶很快就能擁有 100 倍的以太坊錢包體驗!
釋義:智能合約錢包、帳戶抽象和 ERC-4337
智能合約錢包 (Smart Contract Wallet) 是當前以太坊支持的兩種錢包形態之一,而另一種是大眾所常用的 EOA 錢包(eg Metamask)。
顧名思義,前述的一切美好價值都得益於智能合約:
- 智能合約帳戶由其代碼控制:通過對代碼的編寫,可以實現任意邏輯。
- 相比之下,EOA 錢包是由私鑰控制的區塊鏈上的地址,即通過私鑰,用戶可以從所述地址簽發交易。
- 但「私鑰即帳戶」的特性面對的限制也很明顯:用戶不能授權另一個密鑰來為給定地址簽名,也不能在其上編寫自定義邏輯。
重要補充:智能合約錢包可以被編譯成與 EOA 完全一樣的體驗(只有一個簽名密鑰,不可升級等),但反之則不行。
帳戶抽象 (Account Abstraction) 是通過省略以太坊帳戶體系中不必要細節,來減少複雜性並提高有效性有效地(消除了對 EOA 的需求和對智能合約錢包的特殊處理),最終為前述的有價值功能提供基礎!(可參照 Abstraction 在 Computer Science 裡的解釋【1】)
ERC-4337 是實現帳戶抽象效用的設計之一:
- 在不修改區塊鏈底層核心協議的情況下實現。(ERC-4337,近期將有望跑通)
- 對區塊鏈底層核心協議進行修改來實現。(EIP-3074,EVM 內將是中長期計劃 / Starkware/ zksync 上已近乎完成)
框架層面對比:EOA錢包、當前主流智能合約錢包和 ERC-4337 錢包
輔助閱讀 tips:
上圖中,分割線將每個框架分成了三個部分:用戶簽名階段,中繼階段(在交易被出塊打包前),最終執行階段(在交易被出塊打包後)。希望這樣的分割能讓你更好的理解。
EOA
- 一筆交易,由用戶用其私鑰進行標準的ECDSA簽名,隨後將其發送到以太坊Mempool,礦工將其打包至下一個區塊內。
目前智能合約錢包
- 與 EOA 最大的區別:出於網路安全以及更好 UX 的考慮,目前的主流智能合約錢包需要建立&運營一個 replayer 來將用戶的信息發送至最終的智能合約錢包。
- 考慮到以太坊目前主流智能合約錢包(eg Safe, Argent, Loopring)之中並不存在一個通行的開發標準,每個項目都必須開發&維護自己的 relayer 和相關的費用模塊,並獨立審計其採用的智能合約功能。
ERC-4337
與目前主流智能合約錢包最大的區別在於:
- 建立通用模塊Useroperation Mempool & Bundler 來替代每個項目獨立開發的 relayer 模塊;
引入 Entry Point 智能合約來優化用戶創建新錢包體驗以及智能合約錢包驗證 user-operation可行性等流程
具體流程是這樣的,不同於 transaction,用戶發出的 User Operation會匯集到 User Operation Mempool,並由 Bundler 對數筆 User Operation 進行打包(並附上 gas fee)後發給以太坊的 transaction mempool,隨後由出塊節點包含至下一個區塊。 - 上述打包的 User Operation 將由 Entry Point 智能合約處理,包括初次部署智能合約帳戶以及驗證用戶 User Operation 對象。
- 最終,用戶 User Operation 由用戶選擇的智能合約錢包處理。
ERC-4337 的優勢,相較於目前主流智能合約錢包
- 每個智能合約錢包無需單獨運營一個 relayer;
- 便捷性極強的智能合約功能模塊是通用的,大量節約重新造輪子的成本;
- 通過Bundler打包後,交易的固定成本得以被攤銷,最終降低用戶的交易成本。
我們離普及智能合約錢包還有多遠?
100% EVM 鏈
(感謝 https://hackmd.io/@erc4337 【2】)的巨大幫助)
答案是很快了。核心合約基本準備就緒,數個優秀團隊即將發布生產級的 ERC-4337 原生客戶端錢包!
要部署 ERC-4337——整個 EVM 生態系統的通用標準,需要開發幾個主要模塊(如上圖紅點所示):
① 生產級 ERC-4337 源生客戶端錢包
雖然 ERC-4337 沒有指定簽名方案,但依賴 MetaMask 為 UserOperation 使用 ERC-191 或 ERC-712 簽名的dapp 並不是最佳的用戶體驗。Market 需要客戶端錢包通過專用的標準簽名方案原生支持代理錢包地址及其UserOperation 交易。
開發進展:
② UserOperation Block Builder Bundler
ERC-4337 網路的主要操作模式至少需要一定部分的網路塊構建結構(eg 礦工、驗證器、排序器等)才能在其公共 P2P 內存池中原生支持 UserOps,並使用這些 UserOps 創建捆綁包並包含 Entry Point 交易在 block 中。
開發進展:
③ Entry Point智能合約
ERC-4337 的核心部分。
開發進展:
④ 生產級ERC-4337 ECDSA 代理錢包智能合約
ERC-4337 的主要操作模式假設每個用戶都將獲得由代理錢包代表的身份。這意味著為此類錢包提供安全實施至關重要。這也意味著我們必須保證用戶的代理錢包地址在整個網路中是確定性和一致的,就像EOA 一樣。
開發進展:
⑤ ERC-4337 客戶端SDK
這部分旨在使 ERC-4337 集成到各種錢包和dapp 中盡可能簡單,例如繼續使用 MetaMask,同時能體驗到 ERC-4337 的功能。
開發情況:
⑥⑦⑧⑨… 社交找回、Paymaster 以及你想要的便捷性功能
雖然這些功能不是 ERC-4337 錢包的必備部分,但 ERC-4337 錢包的價值必將建立在其之上。
開發進度:
非100% EVM L2 (eg Starknet)
答案是比 EVM 環境更早。目前,開發人員已經可以在測試網中使用它進行編碼,並且許多強大的功能已經進入生產級。
作為非 EVM 等價區塊鏈,Starkware 可以通過在協議級別上進行一些修改來更輕鬆地實現帳戶抽象(與以太坊和 100% EVM 環境相比)。
目前,帳戶抽象的進展幾乎已達到可大規模推廣的生產級別,且 Starkware 已發布了涵蓋帳戶抽象改進的StarkNet Alpha 0.10.0(受ERC-4337啟發)
[DevConnect StarkNet 黑客松] 期間已經出現了一些很有趣的東西:
- Session Key:通過創建儲存在瀏覽器中的一次性簽名密鑰,用戶只需在遊戲一段時間內簽一次名。這消除了玩家簽署重複交易的需要。(Briq & Realms 【3】)
- Dead Man’s Switch:在一定的長時間內,若帳戶未使用,該設計允許受信任的帳戶訪問你錢包中的資產,並將帳戶所有權轉交給既定人選,以此解決如果原持有人消失後的帳戶資產轉交問題。(deadman 【4】)
- 遊戲工會多簽系統:允許token持有者在保有所有權的情況下,在工會內開放其NFT的使用權限。(Guildly 【5】)
產品形態和價值捕獲
產品形態:最終可能會與當前見過的都不太一樣
回想一下前述的內容,帳戶抽象的主要合約甚至錢包客戶端SDK都會是開源的,這意味著在基於帳戶抽象框架來推出一個基礎錢包(不含各種花樣功能)是非常容易的。隨後,開源社區已經有很多很棒的便捷性功能,並且可以期待還會有更多。最重要的是,這些基礎錢包和便捷性功能都在同一個標準下!
- 那麼,產品形式大概會是這樣:任何人都可以構建一個標準化的前端,並加載一個便捷性功能的插件市場,讓用戶可以他們想要使用的插件,並展示當前正在使用的插件(我不是PM 或美工,如果下圖很難看,還請諒解:)
價值捕獲:我們需要再次直面公共物品的收入模式
參考前述理論,如果基礎界面會沉澱為底層基礎設施,而大部分的便捷性功能也都將開源,那如何做價值捕獲?
- 當然,錢包可以繼續通過swap功能來實現流量變現。
- 但對這些極具價值的便捷性功能而言,目前的市場缺乏針對這類公共物品的適當的激勵機制,那誰來負責豐富更多的便捷性功能呢?畢竟這是智能合約錢包最重要的價值所在。
- 大眾用戶能習慣對公共物品的按次付費嗎?
尾聲
正如 Vitalik 多次公開對帳戶抽象的闡述那樣:帳戶抽像是區塊鏈網路進行主流人群的必經之路!希望這篇文章能讓你對它有更好的理解。
儘管仍然存在許多實際限制(eg 許多不支持 EIP-1271 的 dapp >>> 智能合約錢包無法與這些 dapp 進行交互),並且它不適合多鏈場景。但就像 L2 是以太坊的未來一樣,我相信帳戶抽像是以太坊錢包的未來!
當然,我也鼓勵大家在多鏈用例中嘗試 MPC 錢包,它應該是近期最好的錢包解決方案了。如果你對多鏈體系下的帳戶抽象錢包有任何想法,請聯繫我!
感謝 @沙漏時間 @cejay @kristofgazso 的幫助!
參考內容:
https://hackmd.io/@s0lness/BJUb16Yo9
https://medium.com/nethermind-eth/ethereum-wallets-today-and-tomorrow-eip-3074-vs-erc-4337-a7732b81efc8
【1】https://en.wikipedia.org/wiki/Abstraction_(computer_science)
【2】https://hackmd.io/@erc4337
【3】https://twitter.com/lordOfAFew/status/1519057227834818561
【4】https://deadman.me/
【5】https ://www.notion.so/33c8008e033d4040b9438edf5225c580
【6】https://www.stackup.sh
【7】https://www.candidewallet.com
【8】https://twitter.com/soulwallet_eth
【9】https://nethermind.io/
【10】https://github.com/NethermindEth/nethermind/tree/master/src/Nethermind/Nethermind.AccountAbstraction
【11】https://github.com/NethermindEth/mev-aa-geth
【12】https://twitter.com/infinitism8
【13】https://github.com/eth-infinitism/account-abstraction
【14】https://github.com/stackupfinance/stackup/blob/main/apps/contracts/contracts/entrypoint/EntryPoint.sol
【15】https://www.biconomy.io/
【16】https://github.com/eth-infinitism/account-abstraction
📍相關報導📍
Web3錢包Omni完成1100萬美元融資,MEXC Ventures、Spartan等參投
科普教學》V 神譽為比冷錢包安全 : 多簽錢包是什麼?優缺點和應用場景?
Vitalik撰文「以太坊Layer3的願景」: 怎樣的L3才合理?不該重複堆疊Rollups (全文)