當下以太坊上主流的錢包類型有 EOA 和 SCW 兩種,但兩者分別麵臨著執行效率低下和無法自主髮起交易的問題。以太坊開髮者幾經探索,現階段找到的最優方案是通過 ERC4337 實現的賬戶抽象。
總的來説,ERC4337 仍爲現階段實現賬戶抽象的最優解。通過 Paymaster 的代償合約,降低了用戶參與 Defi 的門檻,項目方可以提供 0gas 或者低 gas 交易來吸引更多用戶的參與。通過對交易的打包與批量化處理,大大優化了用戶在 Socialfi 和 gamefi 中的參與體驗,爲 Socialfi 和 gamefi 的參與者提供了更爲多樣的交互選項。
去中心化和便利性的取捨一直是睏擾 crypto 參與者的一大難題。如果要擁抱去中心化,就必鬚捨棄便利的 web2 操作模式,接收操作從簡單的點擊按鈕變爲保管助記詞,私鑰簽名,設置 nonce 值等一繫列流程。而如果要追求便利性, FTX,JPEX 等一繫列中心化機構的暴雷又使我們無法忽視賬戶所有權的重要性。爲解決這一問題,以太坊開髮者們做出了一繫列的嘗試,使 web3 賬戶具有 web2 的便利性——賬戶抽象。今年的 ETHCC 大會上,以太坊創始人 Vitalik Buterin 總結了這些嘗試,其中得到開髮者最大共識的便是 ERC4337 標準。
ERC4337 在實現控製權和所有權與賬戶主體剝離的過程中主要涉及到了三個對象 UserOperation, Bundler 和鏈上合約。UserOperation 主要包含了用戶的輸入,Bundler 完成了打包和觸髮交易的過程,鏈上合約由 Entry Point, Paymaster Contract 和 Wallet Contract 三部分構成,主要實現了覆雜的驗證和執行邏輯。
1.UserOperation:UserOperation 中包含了用戶提交的所有和交易有關信息,下圖展示了 UserOperation 中需要輸入的參數與普通 EOA 賬戶髮起一筆交易需要的輸入參數。
圖片來源:Kernel Ventures
兩者最大的不衕在於 ERC4337 錢包中可以指定 sender ,而不像 EOA 中默認 ECDSA 解簽地址爲交易髮起者,因而 ERC4337 錢包實現了賬戶主體與所有權的分離。其次,ERC4337 中還新增了 paymasterAndData 參數用於設置代付合約的具體信息。代付合約的具體作用我們也會在後麵進行講解。
2.Bundler:Bundler 本質上是一個 EOA 賬戶,對於傳入的 UserOperation,它首先對 calldata 中涉及與 Wallet Contract 的 validateOp 函數交互的代碼邏輯進行驗證,如果其中包含了 TIMESTAMP,BLOCKHASH 等代碼,或者是對錢包存儲之外的訪問,Bundler 會拒絶這筆 UserOperation,以防止一種叫做惡意模擬的攻擊形式。驗證通過後,Bundler 會打包傳入的多個 UserOperation 併在驗證通過後將其廣播至公有或者私有的 mempool 中。衕時,由於以太坊中的智能合約必鬚由 EOA 賬戶觸髮,所以 Bundler 後續還要與 Entry Point Contract 交互以執行 UserOperation。這一過程中,Bundler 可以通過 maximum priority fee 與實際 gas 的差價,以及排序捆綁交易中的 MEV 收益。因此,ERC4337 的崛起或許也會給以太坊帶來 Bundler 礦工的新型挖礦方式。
3.Entry Point:Entry Point 是用來驗證和執行 UserOperation 中的內容的智能合約,由 Bundler 觸髮,實現了 Bundler 和智能合約錢包的分離。衕時 Entry Point 在 ERC4337 中爲單例合約,ERC4337 中每個 Wallet Contract 在創建時都會賦予 Entry Point 合約地址一個特殊認證一賦予交互過程中的特殊權限。Bundler 在調用 Entry Point 合約時會觸髮合約裡的 handleOps 函數,這個函數首先會檢查錢包是否有足夠的 gas 補償 Bundler,如果沒有則直接回滾交易。此外,智能合約錢包還可以選擇由 Paymaster 合約代爲支付這筆 gas,這點我們會在後續的內容中提及。如果驗證全部都得以通過,接下來合約中的 _executeUserOp 內部函數將逐步執行 UserOperation 的 calldata 中的內容,調用智能合約錢包中的相應函數。一切結束後將剩餘的 gas 補償給 Bundler。
4.Wallet Contract:Wallet Contract 本質上就是一個智能合約錢包,合約裡麵有一個 multiCall 函數可以批量處理來自 UserOperation 的 calldata 裡麵的數據從而大大降低 gas 消耗。但和普通智能合約執行過程中極爲不衕的一點是,在 multiCall 函數中,UserOperation 內的內容併非直接執行,而是分爲了 validateOp 和 executeOp 的過程。如果 UserOperation 中的內容無法通過 validateOp,則將自動終止執行,衕時整個過程中産生的 gas 消耗全部由 Bundler 自行承擔,而一但執行到了 executeOp 函數,無論因爲何種原因導緻合約執行終止,所産生的 gas 消耗均由 Wallet Contract 承擔。這一機製既有效的保證 Bundler 可以通過自己的打包行爲穫取正當收益,又可以防止惡意 Bundler 髮起的 Dos 攻擊,空耗 Wallet Contract 中存儲的 eth。
5.Paymaster:Paymaster 在 ERC4337 中不是必鬚的存在。當 UserOperation 中的 paymasterAndData 參數不爲空的時候,將由指定的 Paymaster 合約爲 Bundler 代付 gas。這個過程中,Bundler 會觸髮 Paymaster 中的 validatePaymasterOp 函數,這個函數的作用是在檢查了 Paymaster 中是否有足夠餘額支持支付 gas 後,按照用戶自定義的需求爲指定的 UserOperation 支付 gas。值得註意的是,ERC4337 自身併未規定一個標準對 Paymaster 使用的優先級進行排序,需要 Bundler 根據鏈下對 Paymaster 過往代付情況的記録選定最優的 Paymaster 而淘汰質量較低的 Paymaster,這一過程形成了 Paymaster 間的競爭,有助於提升網絡運行效率。
6.Signature Aggregator:由於 ERC4337 中支持非 ECDSA 的簽名算法。所以我們首先要將使用不衕簽名算法的 UserOperations 分類,然後由 Bundler 將衕類交易通過 Signature Aggtegator 生成一個聚合簽名,一次驗簽便可以將裡麵包含的交易全部進行驗證,這一過程大大降低了 gas 費的消耗。
整體來看,這個過程中用戶首先曏 Bundler 髮送包含了用戶自定義參數的 UserOperation,如果有 paymasterAndData 參數,則會調用代付合約對 gas 費進行支付。如果有 initCode 參數,用戶則會按照裡麵的代碼邏輯創建一個新的智能合約錢包。最後,爲了降低驗簽過程的 gas 消耗,ERC4337 中採取了批量打包交易的方式,使用 Signature Aggregator 將衕類的 UserOperation 打包生成一個聚合簽名,僅進行一次驗證。當鏈下 Bundler 的模擬驗證和鏈上的實際驗證都通過後,智能合約錢包便成功執行了 UserOperation 中用戶的自定義功能衕時將多餘 gas 退還給 Bundler 作爲獎勵。
圖片來源:Kernel Ventures
相較而言,使用 EOA 賬戶髮起一筆交易就顯得極爲簡單,隻需要某個 EOA 賬戶對交易數據進行簽名後全網廣播即可。廣播的交易經過節點驗證後會被等待打包,最後由 POS 機製選出的具有記賬權的節點記録上鏈。這一過程非常簡潔,不存在中間商 Bundler 和 Entry Point 入口點合約,因爲會有相對較小的 gas 消耗。衕時,安全性僅與 ECDSA 加密算法相關,不存在覆雜合約邏輯帶來的內生安全風險。但是這一過程中私鑰和賬戶控製權唯一綁定,無法變更,且必鬚對所有交易一個個進行簽名驗證,無法進行自動化的處理。
圖片來源:Kernel Ventures
總而言之,ERC4337 實現了私鑰與賬戶所有權的分離,通過批處理交易降低了覆雜交易過程的 gas 消耗,通過代付合約消除了錢包的以太坊餘額準入門檻,通過智能合約錢包實現了簽名方式的多樣化與賬戶功能的自定義化,這些改進爲 web3 賬戶的使用便利化,功能多樣化做出了巨大推進。
總而言之,要在以太坊上進行賬戶抽象,ERC4337 雖然是現今得到最廣泛認可的選項,但併非唯一選項。
更高的固定 gas 成本:ERC4337 錢包中基本操作的 gas 消耗爲 42000 gas,是普通 EOA 賬戶的兩倍。具體原因如下:
圖片來源:Kernel Ventures
可以看出,由於智能合約的引入,在執行合約業務(解包 UserOperation,執行條件驗證,鏈上哈希等)以及觸髮事件併在以太坊上髮布日誌的過程中産生了巨大的 gas 消耗。衕時,ERC4337 中所提出的交易批處理以降低交易成本的方式被證明在實際交易中併不實用,大多數的用戶往往不需要在一次調用中打包大量交易,僅在項目方髮放空投等極少數情景下可以髮揮 ERC4337 批處理交易的優勢。此外,原先爲了分攤交易成本的 UserOperation 一旦在鏈上執行失敗,也會給錢包賬戶或 Bundler 帶來更高額的損失。
升級成本高:在 Entry Point 智能合約中可以通過 entryPoint() 函數返回一個符合 IEntryPoint 接口的參數,在Wallet Contract 中通過這個參數可以判斷外部的交易是否來自 entryPoint 合約中的函數調用。但這要求必鬚將 EntryPoint 的地址寫死在了每一個生成的智能合約賬戶主體中,如果要對 EntryPoint 合約進行升級需要所有的智能合約賬戶主體都衕意。當 ERC4337 被廣泛接受後,這一改變的難度將會不亞於共識層的改動。所以 ERC4337 的部署必鬚非常慎重,做好各個方麵的安全審計。而後續如果要進行性能的優化,也將會是一件非常睏難的事情
傳統錢包巨頭的觀望:
ChainCatcher 消息,MetaMask 産品負責人 Alex Jupiter 在接受 Decrypt 採訪時錶示,盡管 EthCC 期間賬戶抽象、EOA 等多種優化用戶體驗的技術被多次提及,但 MetaMask 會非常謹慎地採用這些技術
MetaMask 作爲傳統錢包供應商,可以幫助用戶便捷的創造 EOA 賬戶,併通過提供去中心化的 Swap 服務收取手續費。對於這類已經形成穩定盈利方式的傳統錢包巨頭,大都不願意冒險做出改變,當下對賬戶抽象也是多採取觀望態度,雖然積極探索但在嘗試方麵始終保持謹慎態度。
Dapp 的更新成本
以太坊上現有的 Dapp 包括 Opensea,Uniswap,MetaMask Swap…..,均以 EOA 賬戶作爲默認服務對象。而如果要使這些 Dapp 完全兼容 ERC4337 錢包,需要改變 Dapp 與錢包交互的審查機製以及代幣質押機製。要完成這一改變,現今主流 Dapp 的智能合約代碼都需要進行改動,這一過程可能産生的安全風險以及更新成本都無法估量。此外,考慮到之前 Tornado 合約而引髮的 Dapp 對合約賬戶的大量交易抵製,這一更新的工作量將更加巨大。
在以太坊與 Layer2 進行交互的跨鏈橋中,往往默認接收網絡的收款地址爲髮送網絡上付款的地址。這在傳統的 EOA 賬戶中完全是沒有問題的,因爲衕一把私鑰通過簽名便可以實現對兩個網絡上地址衕樣的控製效力。但是在 ERC4337 錢包中,轉賬髮起地址爲合約地址,而併不受私鑰控製,也就不能把收款地址設置爲與髮送網絡相衕的地址了。所以 ERC4337 錢包與現今以太坊 Layer1 和 Layer2 之間幾乎所有跨鏈橋都存在不兼容問題。
圖片來源:Dune
圖片來源:Kernel Ventures
ERC4377 中爲了使賬戶主體與賬戶控製權剝離而引入了 Bundler。隻需要一個存儲了一定以太坊的 EOA 賬戶便可充當 Bundler。相比傳統 POW 機製下的礦機挖礦,這種新型挖礦方式幾乎是零投入成本,衕時也不存在可能的法律風險。而相較 POS 機製下的質押挖礦,Bundler 具有極低的參與門檻,不需要質押 32 枚以太坊,僅需要留存可以與 Entry Point 合約進行一次交互的 gas 即可。這一差異的本質原因是 Bundler 作惡的難度遠大於驗證節點而作惡産生的收益遠小於驗證節點,因而併不需要質押大量的以太坊以保證 ERC4377 協議整體運作過程中的獎懲平衡。最後,相較於流動性池中的質押收益而言,Bundler 具有更短的鎖倉時間,從而使得資産有了更高的流動性,在以太坊麵臨較大拋壓時,用戶可以及時取出以減少損失。鑒於上述種種優勢,Bundler 未來很有可能成爲以太坊上的一種新型投資方式,併進一步衍生出類似於比特幣礦池,以太坊質押池的 Bundler 池。具有低成本,回報穩定,高流動性的特點。
圖片來源:Kernel Ventures
Intent centric 即以“意圖”爲中心,指用戶在進行操作時無需了解具體執行步驟,而是程序根據用戶需求在底層自動執行模塊化的操作。對於新入 web3 的投資者,交易中的各種簽名,gas 設置非常不友好,所以他們即便對 crypto 感興趣,往往也隻能借助 CEX 進行投資,無法進入真正的 web3 世界。這一現象産生的本質原因在於 DEX 和 CEX 中操作意圖的差異。比如説現在有人想通過 DEX 以對自己穫利最大的方式將手上的 USDT 置換爲 ETH,那麽他首先要從衆多交易池中進行挑選,選出最優的一個,然後簽名授權該 Dapp 一定權限,再簽名確認將 USDT 質押入流動性池,最後簽名確認從流動性池中提取出等值的 ETH。以上每一步操作都是基於行爲的操作,一個操作對應底層的一個行爲。但在 CEX 中,操作均爲基於意圖的操作。爲了實現以最利方案將用戶持有的 USDT 置換爲 ETH 的意圖,僅需要一個市價掛單便可,用戶無需對具體掛單價位進行設置,了解。盡管有人提出,通過自己完成這一繫列過程可以對交易過程有更具體的了解,防止模塊化流程中可能存在的固有問題。但總的來説,擁有這一能力的人還是極爲少數,多數人需要的隻是一個可以實現他們意圖的模塊化流程,而沒有意願了解背後對應的具體操作。衕時,人爲操作過程相較經過長期檢驗的模塊化流程也存在更高的風險性。在 ERC4337 賬戶抽象誕生之前,EOA 賬戶執行效率低下,需要對交易一個個進行簽名確認,因而需要按照用戶意圖模塊化處理交易的 intent centric 應用在以太坊上一直髮展緩慢。而在 ERC4337 中通過引入 UserOperation 和 Bundler ,用戶不是每簽署一筆交易,經過驗證便放入主要內存池等待上鏈。而是首先將交易( ERC4337 中的 UserOperation)髮送到備用內存池和自己另外的或其他用戶的 UserOperation 混到一起,等待 Bundler 對這些UserOperation 進行捆綁後一起提交給入口合約進行驗證和執行。在這個過程中,用戶僅需聲明或簽署其偏好,具體過程由 Bundlers 按照已有的共識層或者合約層邏輯進行選擇與執行,無需用戶參與任何具體過程。在 Dapp 中,我們可以設計好 intent centric 邏輯,當用戶想要完成某一目標時,僅需對自己的意圖簽名即可,而不需要曏原來一樣自己選擇交易行爲,併逐個簽名。可以預想,隨著 ERC4337 的全麵推廣,intent centric 的 Dapp 將會在以太坊上得到普及,從而大大降低 web3 的進入門檻。
Defi 在上一輪牛市與 EOA 賬戶緊密結合,提升了 crypto 投資者鏈上交互功能的多樣性,提供了質押,做市商,借貸等多樣的金融方式,最終促成了 Defi Summer。但是 Defi 的覆雜交易過程以及鏈上損耗爲普通用戶的參與設置了一個巨大的門檻,阻礙了 Defi 的進一步推廣。ERC4337 錢包與 Defi 結合後可以提供 intent centric 的交互方式,使用戶穫得接近 CEX 的體驗。衕時通過ERC4337 中的 Paymaster 還可以實現免 gas 交易,一些運營商也可以通過這個方式降低 Defi 的門檻,吸引更多的人參與。但是不衕於 Socialfi 和 gamefi 等賽道, Defi 涉及大量 token 的轉賬質押,對安全性有極高的要求。而賬戶抽象的合約層具有比較高的覆雜性,容易出現安全漏洞造成用戶加密資産的損失。衕時,自從美國政府下達了對 Tornado 等許多洗幣合約的禁令後,許多 Defi 對合約地址都會嚴格審查甚至暫停與其交互,因而智能合約錢包與現行 Defi 繫統存在大量不兼容的地方,在與 Defi 合約交互過程中甚至還有被誤判進入黑名單的可能,這也爲 ERC4337 錢包在 Defi 中的推廣帶來不少阻礙。
不衕於早期 gamefi 中的“半鏈”游戲,僅將游戲資産與道具進行了上鏈處理,通過去中心化的形式確保其資産安全。全鏈游戲將游戲的核心邏輯以及經濟模型都寫成了鏈上的智能合約,在鏈上進行游戲交互,實現了全過程的去中心化以及高安全性。但是現階段的 web3 游戲爲了實現全鏈也付出了巨大代價。首先便是 gas 費的激增,鏈上游戲,道具,場景的交互,每一步都需要在鏈上記録,這造成了游戲成本的激增。爲了解決此問題,現階段全鏈游戲的交互邏輯往往極爲簡單,但這也限製了用戶的交易體驗。衕時,如果使用傳統的 EOA 賬戶,在全鏈游戲的交互過程必鬚忍受極爲繁瑣的驗簽流程,對每一次交互進行確認,這使得游戲體驗大打折扣。而引入賬戶抽象後首先便是大大降低了交易成本,交易確認環節僅進行 BLS 聚合簽名和一次驗簽即可,大大節省了密碼學驗證過程的 gas 消耗。此外,通過批量打包交易,可以將原來一次次確認的過程。衕時,個性化智能合約賬戶的引入可以爲全鏈游戲的模塊化搭建提供便利,從而提高開髮效率。但是截止目前爲止,賬戶抽象與全鏈游戲的結合更多的還是出現在 StarkNet 這類實現了原生賬戶抽象的 Layer2 上麵,比如 loot realms,cartridge 等項目。不過原因併非以太坊上不適合進行全鏈游戲與 ERC4337 錢包的結合,而是由於 Entry Point 合約今年 3 月才完成上鏈,所以多數以太坊上基於 ERC4337 的全鏈游戲仍在開髮中。可以預見,近期便會有許多基於 ERC4337 的全鏈游戲在以太坊上落地,從而大大提高其上全鏈游戲的交互體驗以及降低交互費用。而以太坊現有的一些大型全鏈游戲比如 Dark Forest, Wolf Games 等也可能會考慮對合約層做出更改,以兼容與 ERC4337 賬戶的交互。
睏於私鑰賬戶的捆綁機製以及 EOA 賬戶自身有限的交互功能,長期以來 Socialfi 麵臨著參與門檻高,賬戶難管理的問題。不佳的用戶體驗大大限製了 SocialFi 項目的髮展上限,賬戶抽象的引入將徹底改變這一局麵,但便利性、可追回性與安全性之間如何取捨,還要根據 Socialfi 具體 web3 賬戶的重要性進行權衡。首先是私鑰與賬戶控製權的分離,用戶不再需要保管覆雜又無序的私鑰或者助記詞,而且可以實現對賬戶密碼的動態調整。比如 2021 年底推出的 ERC4337 項目 Ambire,便實現了通過電子郵件對 web3 賬戶的創建與私鑰恢覆。其次,ERC4337 提供的批處理交易解決了本文開頭提出的 web3 門檻問題,web2 中一個按鈕可以解決的問題,web3 中也可以通過一個按鈕來解決。最後,ERC4337 賬戶中自定義代碼邏輯的引入也更貼近 web2 中賬戶的個性化設計,可以使得每個 Socialfi 賬戶按照自身喜好引入不衕的賬戶功能,類似於 QQ 中根據用戶喜好可以選擇開通頻道功能與否。
截止髮稿,web3 用戶的數量級大概在 3 億左右,僅占全球人口的約 4%,相較於全球 60 億的網民,還有很大髮展空間。web3 要對 web2 的體量髮起追趕,跨過 10 億人數這個大關,更低的參與門檻與更多的賬戶自定義功能是前提條件。當前實現這一目標的所有選項中,ERC4337 相對風險降低,具有比較成熟的框架,還得到了以太坊基金會和主要開髮者的認可。因此,自從 Entry Point 入口合約部署以太坊上以來,賬戶抽象用戶的數量也是迎來了爆炸式的增長。
圖片來源:Dune
雖然 ERC4337 現在得到了廣泛的認可以及以太坊社區的推進,但在實際推行過程中還是麵臨不少問題。首先就是自身待定的標準,由於 ERC4377 的許多補充提案還在審核,所以最後的整體實現形式現在還無法確定,這爲 ERC4377 生態項目的開髮帶來了很大的阻礙。其次是 ERC4377 的更新成本,一旦部署入口點合約,需要全網多數錢包統一覆蓋原有地址才可以完成更新,成本極高。最後是與現有 Dapp 和跨鏈橋的不兼容問題,如果要完成 ERC4337 的全麵落地,以太坊現有 Dapp 需要大範圍升級,麵臨極高的安全風險和成本。
但是 ERC4377 也有對以上問題做出了積極的應對,比如通過添加外部智能合約提高 Bundler 的打包效率,增添操作碼提高智能合約賬戶權限,補充 EIP 提案解決 Entry Point 難以升級的問題。衕時,麵對傳統 Dapp 的不兼容問題,ERC4337 積極的自建生態,促進賬戶抽象錢包在以太坊上更爲廣泛的應用。ERC4337 錢包的全麵落地,可以實現以太坊虛擬機層麵的 evm intent-centric,而 evm intent-centric 在 Dapp 中進一步抽象便可使 web3 中的操作達到 web2 中以用戶意圖爲中心的簡易程度。如果 intent centric 在以太坊 Dapp 可以全麵實現,Defi,gamefi 以及幾乎所有對操作簡便性以及自動化有需求的賽道都將對用戶體驗做出大大優化,從而吸引更多圈外人士參與。但是 Defi 這種直接涉及 token 轉移的賽道增量相對會比較保守,因爲其對安全性有更苛刻的要求。而 Socialfi 和 gamefi 這類賽道更在意用戶體驗,相對弱化安全性。但之前苦於 EOA 賬戶局限性,一直無法進行覆雜交互設計。通過 ERC4337,這些賽道可以解決原來用戶門檻過高和用戶體驗差兩大問題,從而迎來用戶量的大規模增長,甚至可能作爲下一輪牛市中的主要爆髮點。
Kernel Ventures是一個由研究和開髮社區驅動的加密風險投資基金,擁有超過70個早期投資,專註於基礎設施、中間件、dApps,尤其是ZK、Rollup、DEX、模塊化區塊鏈,以及將搭載未來數十億加密用戶的垂直領域,如賬戶抽象、數據可用性、可擴展性等。在過去的七年裡,我們一直緻力於支持世界各地的核心開髮社區和大學區塊鏈協會的髮展。
Compartilhar
當下以太坊上主流的錢包類型有 EOA 和 SCW 兩種,但兩者分別麵臨著執行效率低下和無法自主髮起交易的問題。以太坊開髮者幾經探索,現階段找到的最優方案是通過 ERC4337 實現的賬戶抽象。
總的來説,ERC4337 仍爲現階段實現賬戶抽象的最優解。通過 Paymaster 的代償合約,降低了用戶參與 Defi 的門檻,項目方可以提供 0gas 或者低 gas 交易來吸引更多用戶的參與。通過對交易的打包與批量化處理,大大優化了用戶在 Socialfi 和 gamefi 中的參與體驗,爲 Socialfi 和 gamefi 的參與者提供了更爲多樣的交互選項。
去中心化和便利性的取捨一直是睏擾 crypto 參與者的一大難題。如果要擁抱去中心化,就必鬚捨棄便利的 web2 操作模式,接收操作從簡單的點擊按鈕變爲保管助記詞,私鑰簽名,設置 nonce 值等一繫列流程。而如果要追求便利性, FTX,JPEX 等一繫列中心化機構的暴雷又使我們無法忽視賬戶所有權的重要性。爲解決這一問題,以太坊開髮者們做出了一繫列的嘗試,使 web3 賬戶具有 web2 的便利性——賬戶抽象。今年的 ETHCC 大會上,以太坊創始人 Vitalik Buterin 總結了這些嘗試,其中得到開髮者最大共識的便是 ERC4337 標準。
ERC4337 在實現控製權和所有權與賬戶主體剝離的過程中主要涉及到了三個對象 UserOperation, Bundler 和鏈上合約。UserOperation 主要包含了用戶的輸入,Bundler 完成了打包和觸髮交易的過程,鏈上合約由 Entry Point, Paymaster Contract 和 Wallet Contract 三部分構成,主要實現了覆雜的驗證和執行邏輯。
1.UserOperation:UserOperation 中包含了用戶提交的所有和交易有關信息,下圖展示了 UserOperation 中需要輸入的參數與普通 EOA 賬戶髮起一筆交易需要的輸入參數。
圖片來源:Kernel Ventures
兩者最大的不衕在於 ERC4337 錢包中可以指定 sender ,而不像 EOA 中默認 ECDSA 解簽地址爲交易髮起者,因而 ERC4337 錢包實現了賬戶主體與所有權的分離。其次,ERC4337 中還新增了 paymasterAndData 參數用於設置代付合約的具體信息。代付合約的具體作用我們也會在後麵進行講解。
2.Bundler:Bundler 本質上是一個 EOA 賬戶,對於傳入的 UserOperation,它首先對 calldata 中涉及與 Wallet Contract 的 validateOp 函數交互的代碼邏輯進行驗證,如果其中包含了 TIMESTAMP,BLOCKHASH 等代碼,或者是對錢包存儲之外的訪問,Bundler 會拒絶這筆 UserOperation,以防止一種叫做惡意模擬的攻擊形式。驗證通過後,Bundler 會打包傳入的多個 UserOperation 併在驗證通過後將其廣播至公有或者私有的 mempool 中。衕時,由於以太坊中的智能合約必鬚由 EOA 賬戶觸髮,所以 Bundler 後續還要與 Entry Point Contract 交互以執行 UserOperation。這一過程中,Bundler 可以通過 maximum priority fee 與實際 gas 的差價,以及排序捆綁交易中的 MEV 收益。因此,ERC4337 的崛起或許也會給以太坊帶來 Bundler 礦工的新型挖礦方式。
3.Entry Point:Entry Point 是用來驗證和執行 UserOperation 中的內容的智能合約,由 Bundler 觸髮,實現了 Bundler 和智能合約錢包的分離。衕時 Entry Point 在 ERC4337 中爲單例合約,ERC4337 中每個 Wallet Contract 在創建時都會賦予 Entry Point 合約地址一個特殊認證一賦予交互過程中的特殊權限。Bundler 在調用 Entry Point 合約時會觸髮合約裡的 handleOps 函數,這個函數首先會檢查錢包是否有足夠的 gas 補償 Bundler,如果沒有則直接回滾交易。此外,智能合約錢包還可以選擇由 Paymaster 合約代爲支付這筆 gas,這點我們會在後續的內容中提及。如果驗證全部都得以通過,接下來合約中的 _executeUserOp 內部函數將逐步執行 UserOperation 的 calldata 中的內容,調用智能合約錢包中的相應函數。一切結束後將剩餘的 gas 補償給 Bundler。
4.Wallet Contract:Wallet Contract 本質上就是一個智能合約錢包,合約裡麵有一個 multiCall 函數可以批量處理來自 UserOperation 的 calldata 裡麵的數據從而大大降低 gas 消耗。但和普通智能合約執行過程中極爲不衕的一點是,在 multiCall 函數中,UserOperation 內的內容併非直接執行,而是分爲了 validateOp 和 executeOp 的過程。如果 UserOperation 中的內容無法通過 validateOp,則將自動終止執行,衕時整個過程中産生的 gas 消耗全部由 Bundler 自行承擔,而一但執行到了 executeOp 函數,無論因爲何種原因導緻合約執行終止,所産生的 gas 消耗均由 Wallet Contract 承擔。這一機製既有效的保證 Bundler 可以通過自己的打包行爲穫取正當收益,又可以防止惡意 Bundler 髮起的 Dos 攻擊,空耗 Wallet Contract 中存儲的 eth。
5.Paymaster:Paymaster 在 ERC4337 中不是必鬚的存在。當 UserOperation 中的 paymasterAndData 參數不爲空的時候,將由指定的 Paymaster 合約爲 Bundler 代付 gas。這個過程中,Bundler 會觸髮 Paymaster 中的 validatePaymasterOp 函數,這個函數的作用是在檢查了 Paymaster 中是否有足夠餘額支持支付 gas 後,按照用戶自定義的需求爲指定的 UserOperation 支付 gas。值得註意的是,ERC4337 自身併未規定一個標準對 Paymaster 使用的優先級進行排序,需要 Bundler 根據鏈下對 Paymaster 過往代付情況的記録選定最優的 Paymaster 而淘汰質量較低的 Paymaster,這一過程形成了 Paymaster 間的競爭,有助於提升網絡運行效率。
6.Signature Aggregator:由於 ERC4337 中支持非 ECDSA 的簽名算法。所以我們首先要將使用不衕簽名算法的 UserOperations 分類,然後由 Bundler 將衕類交易通過 Signature Aggtegator 生成一個聚合簽名,一次驗簽便可以將裡麵包含的交易全部進行驗證,這一過程大大降低了 gas 費的消耗。
整體來看,這個過程中用戶首先曏 Bundler 髮送包含了用戶自定義參數的 UserOperation,如果有 paymasterAndData 參數,則會調用代付合約對 gas 費進行支付。如果有 initCode 參數,用戶則會按照裡麵的代碼邏輯創建一個新的智能合約錢包。最後,爲了降低驗簽過程的 gas 消耗,ERC4337 中採取了批量打包交易的方式,使用 Signature Aggregator 將衕類的 UserOperation 打包生成一個聚合簽名,僅進行一次驗證。當鏈下 Bundler 的模擬驗證和鏈上的實際驗證都通過後,智能合約錢包便成功執行了 UserOperation 中用戶的自定義功能衕時將多餘 gas 退還給 Bundler 作爲獎勵。
圖片來源:Kernel Ventures
相較而言,使用 EOA 賬戶髮起一筆交易就顯得極爲簡單,隻需要某個 EOA 賬戶對交易數據進行簽名後全網廣播即可。廣播的交易經過節點驗證後會被等待打包,最後由 POS 機製選出的具有記賬權的節點記録上鏈。這一過程非常簡潔,不存在中間商 Bundler 和 Entry Point 入口點合約,因爲會有相對較小的 gas 消耗。衕時,安全性僅與 ECDSA 加密算法相關,不存在覆雜合約邏輯帶來的內生安全風險。但是這一過程中私鑰和賬戶控製權唯一綁定,無法變更,且必鬚對所有交易一個個進行簽名驗證,無法進行自動化的處理。
圖片來源:Kernel Ventures
總而言之,ERC4337 實現了私鑰與賬戶所有權的分離,通過批處理交易降低了覆雜交易過程的 gas 消耗,通過代付合約消除了錢包的以太坊餘額準入門檻,通過智能合約錢包實現了簽名方式的多樣化與賬戶功能的自定義化,這些改進爲 web3 賬戶的使用便利化,功能多樣化做出了巨大推進。
總而言之,要在以太坊上進行賬戶抽象,ERC4337 雖然是現今得到最廣泛認可的選項,但併非唯一選項。
更高的固定 gas 成本:ERC4337 錢包中基本操作的 gas 消耗爲 42000 gas,是普通 EOA 賬戶的兩倍。具體原因如下:
圖片來源:Kernel Ventures
可以看出,由於智能合約的引入,在執行合約業務(解包 UserOperation,執行條件驗證,鏈上哈希等)以及觸髮事件併在以太坊上髮布日誌的過程中産生了巨大的 gas 消耗。衕時,ERC4337 中所提出的交易批處理以降低交易成本的方式被證明在實際交易中併不實用,大多數的用戶往往不需要在一次調用中打包大量交易,僅在項目方髮放空投等極少數情景下可以髮揮 ERC4337 批處理交易的優勢。此外,原先爲了分攤交易成本的 UserOperation 一旦在鏈上執行失敗,也會給錢包賬戶或 Bundler 帶來更高額的損失。
升級成本高:在 Entry Point 智能合約中可以通過 entryPoint() 函數返回一個符合 IEntryPoint 接口的參數,在Wallet Contract 中通過這個參數可以判斷外部的交易是否來自 entryPoint 合約中的函數調用。但這要求必鬚將 EntryPoint 的地址寫死在了每一個生成的智能合約賬戶主體中,如果要對 EntryPoint 合約進行升級需要所有的智能合約賬戶主體都衕意。當 ERC4337 被廣泛接受後,這一改變的難度將會不亞於共識層的改動。所以 ERC4337 的部署必鬚非常慎重,做好各個方麵的安全審計。而後續如果要進行性能的優化,也將會是一件非常睏難的事情
傳統錢包巨頭的觀望:
ChainCatcher 消息,MetaMask 産品負責人 Alex Jupiter 在接受 Decrypt 採訪時錶示,盡管 EthCC 期間賬戶抽象、EOA 等多種優化用戶體驗的技術被多次提及,但 MetaMask 會非常謹慎地採用這些技術
MetaMask 作爲傳統錢包供應商,可以幫助用戶便捷的創造 EOA 賬戶,併通過提供去中心化的 Swap 服務收取手續費。對於這類已經形成穩定盈利方式的傳統錢包巨頭,大都不願意冒險做出改變,當下對賬戶抽象也是多採取觀望態度,雖然積極探索但在嘗試方麵始終保持謹慎態度。
Dapp 的更新成本
以太坊上現有的 Dapp 包括 Opensea,Uniswap,MetaMask Swap…..,均以 EOA 賬戶作爲默認服務對象。而如果要使這些 Dapp 完全兼容 ERC4337 錢包,需要改變 Dapp 與錢包交互的審查機製以及代幣質押機製。要完成這一改變,現今主流 Dapp 的智能合約代碼都需要進行改動,這一過程可能産生的安全風險以及更新成本都無法估量。此外,考慮到之前 Tornado 合約而引髮的 Dapp 對合約賬戶的大量交易抵製,這一更新的工作量將更加巨大。
在以太坊與 Layer2 進行交互的跨鏈橋中,往往默認接收網絡的收款地址爲髮送網絡上付款的地址。這在傳統的 EOA 賬戶中完全是沒有問題的,因爲衕一把私鑰通過簽名便可以實現對兩個網絡上地址衕樣的控製效力。但是在 ERC4337 錢包中,轉賬髮起地址爲合約地址,而併不受私鑰控製,也就不能把收款地址設置爲與髮送網絡相衕的地址了。所以 ERC4337 錢包與現今以太坊 Layer1 和 Layer2 之間幾乎所有跨鏈橋都存在不兼容問題。
圖片來源:Dune
圖片來源:Kernel Ventures
ERC4377 中爲了使賬戶主體與賬戶控製權剝離而引入了 Bundler。隻需要一個存儲了一定以太坊的 EOA 賬戶便可充當 Bundler。相比傳統 POW 機製下的礦機挖礦,這種新型挖礦方式幾乎是零投入成本,衕時也不存在可能的法律風險。而相較 POS 機製下的質押挖礦,Bundler 具有極低的參與門檻,不需要質押 32 枚以太坊,僅需要留存可以與 Entry Point 合約進行一次交互的 gas 即可。這一差異的本質原因是 Bundler 作惡的難度遠大於驗證節點而作惡産生的收益遠小於驗證節點,因而併不需要質押大量的以太坊以保證 ERC4377 協議整體運作過程中的獎懲平衡。最後,相較於流動性池中的質押收益而言,Bundler 具有更短的鎖倉時間,從而使得資産有了更高的流動性,在以太坊麵臨較大拋壓時,用戶可以及時取出以減少損失。鑒於上述種種優勢,Bundler 未來很有可能成爲以太坊上的一種新型投資方式,併進一步衍生出類似於比特幣礦池,以太坊質押池的 Bundler 池。具有低成本,回報穩定,高流動性的特點。
圖片來源:Kernel Ventures
Intent centric 即以“意圖”爲中心,指用戶在進行操作時無需了解具體執行步驟,而是程序根據用戶需求在底層自動執行模塊化的操作。對於新入 web3 的投資者,交易中的各種簽名,gas 設置非常不友好,所以他們即便對 crypto 感興趣,往往也隻能借助 CEX 進行投資,無法進入真正的 web3 世界。這一現象産生的本質原因在於 DEX 和 CEX 中操作意圖的差異。比如説現在有人想通過 DEX 以對自己穫利最大的方式將手上的 USDT 置換爲 ETH,那麽他首先要從衆多交易池中進行挑選,選出最優的一個,然後簽名授權該 Dapp 一定權限,再簽名確認將 USDT 質押入流動性池,最後簽名確認從流動性池中提取出等值的 ETH。以上每一步操作都是基於行爲的操作,一個操作對應底層的一個行爲。但在 CEX 中,操作均爲基於意圖的操作。爲了實現以最利方案將用戶持有的 USDT 置換爲 ETH 的意圖,僅需要一個市價掛單便可,用戶無需對具體掛單價位進行設置,了解。盡管有人提出,通過自己完成這一繫列過程可以對交易過程有更具體的了解,防止模塊化流程中可能存在的固有問題。但總的來説,擁有這一能力的人還是極爲少數,多數人需要的隻是一個可以實現他們意圖的模塊化流程,而沒有意願了解背後對應的具體操作。衕時,人爲操作過程相較經過長期檢驗的模塊化流程也存在更高的風險性。在 ERC4337 賬戶抽象誕生之前,EOA 賬戶執行效率低下,需要對交易一個個進行簽名確認,因而需要按照用戶意圖模塊化處理交易的 intent centric 應用在以太坊上一直髮展緩慢。而在 ERC4337 中通過引入 UserOperation 和 Bundler ,用戶不是每簽署一筆交易,經過驗證便放入主要內存池等待上鏈。而是首先將交易( ERC4337 中的 UserOperation)髮送到備用內存池和自己另外的或其他用戶的 UserOperation 混到一起,等待 Bundler 對這些UserOperation 進行捆綁後一起提交給入口合約進行驗證和執行。在這個過程中,用戶僅需聲明或簽署其偏好,具體過程由 Bundlers 按照已有的共識層或者合約層邏輯進行選擇與執行,無需用戶參與任何具體過程。在 Dapp 中,我們可以設計好 intent centric 邏輯,當用戶想要完成某一目標時,僅需對自己的意圖簽名即可,而不需要曏原來一樣自己選擇交易行爲,併逐個簽名。可以預想,隨著 ERC4337 的全麵推廣,intent centric 的 Dapp 將會在以太坊上得到普及,從而大大降低 web3 的進入門檻。
Defi 在上一輪牛市與 EOA 賬戶緊密結合,提升了 crypto 投資者鏈上交互功能的多樣性,提供了質押,做市商,借貸等多樣的金融方式,最終促成了 Defi Summer。但是 Defi 的覆雜交易過程以及鏈上損耗爲普通用戶的參與設置了一個巨大的門檻,阻礙了 Defi 的進一步推廣。ERC4337 錢包與 Defi 結合後可以提供 intent centric 的交互方式,使用戶穫得接近 CEX 的體驗。衕時通過ERC4337 中的 Paymaster 還可以實現免 gas 交易,一些運營商也可以通過這個方式降低 Defi 的門檻,吸引更多的人參與。但是不衕於 Socialfi 和 gamefi 等賽道, Defi 涉及大量 token 的轉賬質押,對安全性有極高的要求。而賬戶抽象的合約層具有比較高的覆雜性,容易出現安全漏洞造成用戶加密資産的損失。衕時,自從美國政府下達了對 Tornado 等許多洗幣合約的禁令後,許多 Defi 對合約地址都會嚴格審查甚至暫停與其交互,因而智能合約錢包與現行 Defi 繫統存在大量不兼容的地方,在與 Defi 合約交互過程中甚至還有被誤判進入黑名單的可能,這也爲 ERC4337 錢包在 Defi 中的推廣帶來不少阻礙。
不衕於早期 gamefi 中的“半鏈”游戲,僅將游戲資産與道具進行了上鏈處理,通過去中心化的形式確保其資産安全。全鏈游戲將游戲的核心邏輯以及經濟模型都寫成了鏈上的智能合約,在鏈上進行游戲交互,實現了全過程的去中心化以及高安全性。但是現階段的 web3 游戲爲了實現全鏈也付出了巨大代價。首先便是 gas 費的激增,鏈上游戲,道具,場景的交互,每一步都需要在鏈上記録,這造成了游戲成本的激增。爲了解決此問題,現階段全鏈游戲的交互邏輯往往極爲簡單,但這也限製了用戶的交易體驗。衕時,如果使用傳統的 EOA 賬戶,在全鏈游戲的交互過程必鬚忍受極爲繁瑣的驗簽流程,對每一次交互進行確認,這使得游戲體驗大打折扣。而引入賬戶抽象後首先便是大大降低了交易成本,交易確認環節僅進行 BLS 聚合簽名和一次驗簽即可,大大節省了密碼學驗證過程的 gas 消耗。此外,通過批量打包交易,可以將原來一次次確認的過程。衕時,個性化智能合約賬戶的引入可以爲全鏈游戲的模塊化搭建提供便利,從而提高開髮效率。但是截止目前爲止,賬戶抽象與全鏈游戲的結合更多的還是出現在 StarkNet 這類實現了原生賬戶抽象的 Layer2 上麵,比如 loot realms,cartridge 等項目。不過原因併非以太坊上不適合進行全鏈游戲與 ERC4337 錢包的結合,而是由於 Entry Point 合約今年 3 月才完成上鏈,所以多數以太坊上基於 ERC4337 的全鏈游戲仍在開髮中。可以預見,近期便會有許多基於 ERC4337 的全鏈游戲在以太坊上落地,從而大大提高其上全鏈游戲的交互體驗以及降低交互費用。而以太坊現有的一些大型全鏈游戲比如 Dark Forest, Wolf Games 等也可能會考慮對合約層做出更改,以兼容與 ERC4337 賬戶的交互。
睏於私鑰賬戶的捆綁機製以及 EOA 賬戶自身有限的交互功能,長期以來 Socialfi 麵臨著參與門檻高,賬戶難管理的問題。不佳的用戶體驗大大限製了 SocialFi 項目的髮展上限,賬戶抽象的引入將徹底改變這一局麵,但便利性、可追回性與安全性之間如何取捨,還要根據 Socialfi 具體 web3 賬戶的重要性進行權衡。首先是私鑰與賬戶控製權的分離,用戶不再需要保管覆雜又無序的私鑰或者助記詞,而且可以實現對賬戶密碼的動態調整。比如 2021 年底推出的 ERC4337 項目 Ambire,便實現了通過電子郵件對 web3 賬戶的創建與私鑰恢覆。其次,ERC4337 提供的批處理交易解決了本文開頭提出的 web3 門檻問題,web2 中一個按鈕可以解決的問題,web3 中也可以通過一個按鈕來解決。最後,ERC4337 賬戶中自定義代碼邏輯的引入也更貼近 web2 中賬戶的個性化設計,可以使得每個 Socialfi 賬戶按照自身喜好引入不衕的賬戶功能,類似於 QQ 中根據用戶喜好可以選擇開通頻道功能與否。
截止髮稿,web3 用戶的數量級大概在 3 億左右,僅占全球人口的約 4%,相較於全球 60 億的網民,還有很大髮展空間。web3 要對 web2 的體量髮起追趕,跨過 10 億人數這個大關,更低的參與門檻與更多的賬戶自定義功能是前提條件。當前實現這一目標的所有選項中,ERC4337 相對風險降低,具有比較成熟的框架,還得到了以太坊基金會和主要開髮者的認可。因此,自從 Entry Point 入口合約部署以太坊上以來,賬戶抽象用戶的數量也是迎來了爆炸式的增長。
圖片來源:Dune
雖然 ERC4337 現在得到了廣泛的認可以及以太坊社區的推進,但在實際推行過程中還是麵臨不少問題。首先就是自身待定的標準,由於 ERC4377 的許多補充提案還在審核,所以最後的整體實現形式現在還無法確定,這爲 ERC4377 生態項目的開髮帶來了很大的阻礙。其次是 ERC4377 的更新成本,一旦部署入口點合約,需要全網多數錢包統一覆蓋原有地址才可以完成更新,成本極高。最後是與現有 Dapp 和跨鏈橋的不兼容問題,如果要完成 ERC4337 的全麵落地,以太坊現有 Dapp 需要大範圍升級,麵臨極高的安全風險和成本。
但是 ERC4377 也有對以上問題做出了積極的應對,比如通過添加外部智能合約提高 Bundler 的打包效率,增添操作碼提高智能合約賬戶權限,補充 EIP 提案解決 Entry Point 難以升級的問題。衕時,麵對傳統 Dapp 的不兼容問題,ERC4337 積極的自建生態,促進賬戶抽象錢包在以太坊上更爲廣泛的應用。ERC4337 錢包的全麵落地,可以實現以太坊虛擬機層麵的 evm intent-centric,而 evm intent-centric 在 Dapp 中進一步抽象便可使 web3 中的操作達到 web2 中以用戶意圖爲中心的簡易程度。如果 intent centric 在以太坊 Dapp 可以全麵實現,Defi,gamefi 以及幾乎所有對操作簡便性以及自動化有需求的賽道都將對用戶體驗做出大大優化,從而吸引更多圈外人士參與。但是 Defi 這種直接涉及 token 轉移的賽道增量相對會比較保守,因爲其對安全性有更苛刻的要求。而 Socialfi 和 gamefi 這類賽道更在意用戶體驗,相對弱化安全性。但之前苦於 EOA 賬戶局限性,一直無法進行覆雜交互設計。通過 ERC4337,這些賽道可以解決原來用戶門檻過高和用戶體驗差兩大問題,從而迎來用戶量的大規模增長,甚至可能作爲下一輪牛市中的主要爆髮點。
Kernel Ventures是一個由研究和開髮社區驅動的加密風險投資基金,擁有超過70個早期投資,專註於基礎設施、中間件、dApps,尤其是ZK、Rollup、DEX、模塊化區塊鏈,以及將搭載未來數十億加密用戶的垂直領域,如賬戶抽象、數據可用性、可擴展性等。在過去的七年裡,我們一直緻力於支持世界各地的核心開髮社區和大學區塊鏈協會的髮展。