詳析ERC-4337:我們離普及智能合約錢包還有多遠?
A&T Capital
2022-09-19 11:00
本文约3779字,阅读全文需要约15分钟
一文領略以太坊錢包的前世今生和未來。

引子

引子

  • 當前主流以太坊錢包(指EOA 錢包)的用戶體驗很有限,以下便捷性功能都只能通過智能合約錢包來完成(一些鏈外輔助方案可以提供便利,但會引入不必要的外部風險,故不在本文討論範圍內)。

  • 無私鑰&助記詞體驗,社交找回(eg Argent,Unipass)

  • 批量交易(eg Gnosis Safe)

純鏈上游戲中,無需多次簽名(Session Key)

幸運的是,我們已經很接近通行的智能合約標準,而這意味著用戶很快就能擁有100 倍的以太坊錢包體驗!

釋義:智能合約錢包、賬戶抽象和ERC-4337

智能合約錢包(Smart Contract Wallet) 是當前以太坊支持的兩種錢包形態之一,而另一種是大眾所常用的EOA 錢包(eg Metamask)。

  • 顧名思義,前述的一切美好價值都得益於智能合約:

  • 智能合約賬戶由其代碼控制:通過對代碼的編寫,可以實現任意邏輯。

相比之下,EOA 錢包是由私鑰控制的區塊鏈上的地址,即通過私鑰,用戶可以從所述地址簽發交易。

  • 但「私鑰即賬戶」的特性面對的限制也很明顯:用戶不能授權另一個密鑰來為給定地址簽名,也不能在其上編寫自定義邏輯。

重要補充:智能合約錢包可以被編譯成與EOA 完全一樣的體驗(只有一個簽名密鑰,不可升級等),但反之則不行。賬戶抽象(Account Abstraction)

ERC-4337 是通過省略以太坊賬戶體系中不必要細節,來減少複雜性並提高有效性有效地(消除了對EOA 的需求和對智能合約錢包的特殊處理),最終為前述的有價值功能提供基礎! (可參照Abstraction 在Computer Science 裡的解釋【1】)

  • 是實現賬戶抽象效用的設計之一:

  • 在不修改區塊鏈底層核心協議的情況下實現。 (ERC-4337,近期將有望跑通)

對區塊鏈底層核心協議進行修改來實現。 (EIP-3074,EVM 內將是中長期計劃/ Starkware/ zksync 上已近乎完成)

框架層面對比:EOA 錢包、當前主流智能合約錢包和ERC-4337 錢包

(如果對技術細節沒有興趣,可直接跳至「ERC-4337 的優勢,相較於目前主流智能合約錢包」)

輔助閱讀tips:

EOA

上圖中,分割線將每個框架分成了三個部分:用戶簽名階段,中繼階段(在交易被出塊打包前),最終執行階段(在交易被出塊打包後)。希望這樣的分割能讓你更好的理解。

一筆交易,由用戶用其私鑰進行標準的ECDSA 簽名,隨後將其發送到以太坊Mempool,礦工將其打包至下一個區塊內。

目前智能合約錢包

與EOA 最大的區別:出於網絡安全以及更好UX 的考慮,目前的主流智能合約錢包需要建立&運營一個replayer 來將用戶的信息發送至最終的智能合約錢包。

ERC-4337

考慮到以太坊目前主流智能合約錢包(eg Safe, Argent, Loopring)之中並不存在一個通行的開發標準,每個項目都必須開發&維護自己的relayer 和相關的費用模塊,並獨立審計其採用的智能合約功能。

  • 與目前主流智能合約錢包最大的區別在於:

  • 建立通用模塊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 打包後,交易的固定成本得以被攤銷,最終降低用戶的交易成本。

我們離普及智能合約錢包還有多遠?

答案是

答案是很快很快

了。核心合約基本準備就緒,數個優秀團隊即將發布生產級的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 的核心部分。

開發進展:

④ 生產級ERC-4337 ECDSA 代理錢包智能合約

ERC-4337 的主要操作模式假設每個用戶都將獲得由代理錢包代表的身份。這意味著為此類錢包提供安全實施至關重要。這也意味著我們必須保證用戶的代理錢包地址在整個網絡中是確定性和一致的,就像EOA 一樣。

開發進展:

⑤ ERC-4337 客戶端SDK

這部分旨在使ERC-4337 集成到各種錢包和dapp 中盡可能簡單,例如繼續使用MetaMask,同時能體驗到ERC-4337 的功能。

開發情況:

⑥⑦⑧⑨... 社交找回、Paymaster 以及你想要的便捷性功能

開發進度:

開發進度:

非100% EVM L2 (eg Starknet)圖片描述

圖片描述

圖片描述

StarkNet 上Account Abstraction 的基本流程

目前,帳戶抽象的進展幾乎已達到可大規模推廣的生產級別,且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或美工,如果下圖很難看,還請諒解:)

價值捕獲:我們需要再次直面公共物品的收入模式

參考前述理論,如果基礎界面會沉澱為底層基礎設施,而大部分的便捷性功能也都將開源,那如何做價值捕獲?

尾聲

尾聲

尾聲

尾聲

正如Vitalik 多次公開對賬戶抽象的闡述那樣:賬戶抽像是區塊鍊網絡進行主流人群的必經之路!希望這篇文章能讓你對它有更好的理解。

原文鏈接

原文鏈接

原文鏈接

A&T Capital
作者文库