抽象賬戶的本質是合約賬戶( Contract Account ),在 Ethereum 中,賬戶有 2 種
一個簡單的例子, Contract Address 即爲合約部署的地址,任何一個 Ethereum 中可以被調用的合約,都有一個合約地址,以 USDT 的合約地址爲例。 EOA 賬戶則爲我們目前熟知的 ETH 賬戶,即 Metamask 錢包中現實的賬戶。
0xdac17f958d2ee523a2206206994597c13d831ec7, 該地址即爲USDT的token 合約地址, 合約地址無法直接從外部創建,而是用 EOA來創建和管理,創建USDT合約地址的EOA是0x36928500Bc1dCd7af6a2B4008875CC336b927D57。
因此我們了解到, AA 賬戶是一種特殊的合約賬戶( CA ),在 ETH 中 AA 賬戶依然需要 EOA 創建,且由外部的 EOA 控製,因爲 ETH 中與鏈交互的唯一方式是由 EOA 髮起的。因此 AA 是一種對 CA 錢包的標準化和模塊化實現,且在不斷迭代。
上文闡述了 AA 與 CA 的關繫,在ERC4 3 3 7的標準提出前,已經有相當數量的 CA 錢包,下麵列舉了 3 個主流的 CA 錢包和工作原理
在 ETH 髮展的極早期,已經出現了多個合約錢包,最著名的合約錢包是由 PolkaDot 創始人 Gavin Wood 團隊開髮的 Parity 錢包。 Parity 爲 ETH 節點的 Rust 實現,與之對應的是由 golang 開髮的 Geth 節點。 Parity 錢包是一個支持多簽的合約錢包,允許一個合約賬戶( CA )由多個 EOA 來控製和管理。在 2017 年,一個黑客通過髮現 parity 錢包的 bug ,盜走了超過15萬個 ETH 。該事件也引起了人們對 CA 錢包的不信任。
因此, AA 錢包需要大量的實踐和標準化,來防止類似事件的髮生
Gnosis 的多簽錢包是目前主流的Multi-sig多簽名錢包,併被大多數機構和開髮者所使用,相當數量的團隊將開髮資金存儲於 Gnosis 的多簽錢包中以防止團隊成員作惡。著名的使用 Gnosis Safe 的團隊如 Yearn, Aave 和 Balancer。Gnosis Safe的安全性極高,但是使用相對昂貴,這也是CA錢包普遍存在的問題
Unipass 錢包將 MPC 技術和 CA 合約錢包結合,使得用戶可以使用社交登陸而無需自我保管 EOA 錢包。需要註意的是 Parity 錢包和 Gnosis Safe 依然需要用戶自我托管私鑰。 Unipass 的大緻流程是
需要註意的是, Unipass 的原始 AA 方案併沒有嚴格執行 ERC4337 的標準。本質錢包的控製權依然由 Unipass 的 MPC 控製的 EOA 所托管。
AA 的本質是一種標準化,模塊化的 CA 賬戶,4337中主要體現爲如下的創新
上圖大緻描述了 ERC4337 下的標準交易流程
我們可以總結 AA 與傳統 CA 的最大區別爲:
在充分認知 AA 之前,不少人通常將 AA 與 MPC 的概念混淆,因爲他們都支持了例如社交恢覆,無瀏覽器插件等功能。 AA 與 MPC 的本質區別如下
下麵介紹下 MPC ,以及 MPC 的特點。
MPC 方案在目前的社交登陸中被廣泛使用,衆多項目紛紛推出 MPC 錢包以滿足 Ch a inless 的無感錢包體驗,用戶無需安裝插件錢包和托管私鑰。在行業內,該類托管錢包統稱爲 W a a S ( W a llet a s a Service )。目前成熟的項目諸如
麵對雨後春筍般冒出的 Waas 服務,可以預見未來提供 WaaS 服務的産品會越來越多,但是中心化交易所在這方麵有絶對的用戶體量和大規模商用經驗,可能未來所有的中心化交易所都會提供相關服務。
傳統 EOA 賬戶的最大劣勢是需要用戶自主托管私鑰,自主托管私鑰存在以下問題:
AA 在設計時,允許用戶設立社交恢覆賬戶,借助另一個或者多個外部的 EOA 賬戶,來恢覆對 AA 的控製權,以下爲社交恢覆的常見流程。
通過上訴的方法,即使用戶丟失了控製 AA 的 EOA 賬戶,依然可以通過社交恢覆更改爲新的 EOA 。併且與 MPC 的社交登陸不衕,該社交恢覆完全基於去中心化方案,不存在 MPC 的單點故障風險。
GAS 代付是區塊鏈大規模應用( Mass Adaption )的核心。對於初入 Web3 的用戶,最大的痛點便是與鏈進行交互前,需要預充值 gas 。然而 Web3 的新人穫取 ETH 或其他鏈的代幣有較高的門檻,這便大大增加了 Web3 應用對新用戶的穫取成本。通過 AA 的 paymaster 來做 Gas 代付,可以允許 paymaster 在前期補貼用戶的 gas ,降低 web3 的準入門檻。
另一個影響 Web3 大規模應用的核心是跨鏈問題,假設一個用戶在區塊鏈 A (比如 Ethereum )中有 ETH ,但是卻想去體驗另一條鏈 B 的應用(例如 Matic 或者 B SC),用戶首先需要 swap 成相應鏈的 Token 併使用跨鏈橋將資産轉移至 B ,整個過程繁瑣且冗長。 Paymaster 通過集成跨鏈協議,如 Layer0 / Warmhole ,可以讓用戶在鏈 A 充值,併在任何其他鏈中無感的使用應用,這使得鏈的邊界感消失,也使得新的 Dapp 更容易穫得來自其他鏈的用戶。
上文提到了 AA 賬戶的優勢,然而目前 ERC -4337依然在快速的迭代和創新以解決目前 AA 中尚存的一些劣勢
與 EOA 的賬戶不衕,一個 EOA 賬戶在被創建之後,在任何 EVM 兼容鏈中,用戶可以使用衕一對公私鑰在不衕的鏈上進行交互。然而,因爲 AA 的本質是 CA 賬戶( Contract Account ),在任何一條鏈或 Layer2 中使用 AA ,都需要重新部署新的 AA 合約。 AA 合約的部署成本較高,用戶可能因此缺乏使用 AA 的動力。
衕時,若用戶部署不當,如使用了不衕的 Factory 來部署 AA 合約賬戶,可能導緻在不衕鏈上的 AA 地址不衕,這對用戶使用和理解會造成相當程度的睏擾。目前 AA 的 Wallet Factory 已經實現了不衕鏈生成相衕的 AA 地址的實現,但是在實際使用中,用戶依然需要謹慎的檢查使用的協議,以確保在不衕鏈上的 AA 地址相衕,防止未來可能出現的麻煩和睏擾
上文提到, AA 賬戶需要用戶在不衕鏈和 Layer2 分別部署 Wallet Factory 生成的 AA 合約。即使目前的側鏈, EVM 兼容鏈, Layer2 gas 較低,依然是一筆不小的開銷。在當前的 gas , ETH 的幣價 1800 的情形下,在 ETH 主網部署 AA 賬戶大緻需要20-40美金, EVM 兼容鏈或者 Layer2 則爲0.5美金-5美金不等。在用戶尚未使用 Dapp 下就需要支付 AA 的部署費用,對於大多數用戶是很難接受的。假設這部費用由 Bundler 或者 Paymaster 補貼,補貼的成本依然過高,需要較強的動機( incentive )。
取決於 AA 的實現方式,以及 Bundler 一次性打包交易的數量(數量越多,單個 UserOP 分攤的 gas 越低),當前標準ERC4 3 3 7交易的 gas 消耗可能爲常規 EOA 賬戶數倍。原因是因爲 AA 賬戶髮起的一筆交易往往需要調用 3 個或以上的合約,併且有鏈上 BLS 簽名驗證這類及其覆雜的計算。目前的4 3 3 7標準也在爲此優化,路線包括
上述提到了使用 ERC4337 標準會有相對高昂的成本,具體的成本如何。首先,這裡要普及一個知識,即 gas 費用的計算公式:
fee = gas × price
那麽, ERC4337 的部署和使用成本具體成本爲多少呢, StackUp 的團隊在他們的博客中進行了準確的測算。
https://www.stackup.sh/blog/how-much-more-expensive-is-erc-4337
Table 1. Gas for ERC -4337 transactions
從上述的圖錶中可以看出:
Table 2. Gas fee estimates for ERC -4337 transactions
上述圖錶,是當前的 gas 價格下,對 ERC-4337 的 AA 賬戶各種操作的成本測算。我們可以看出:
總結一下 ERC -4337的成本測算,因爲在主網創建 ERC -4337的 AA 賬戶的成本較高, ERC -4337的大規模採用大概率會在 Layer2 和 EVM 兼容鏈中率先採用。
目前另一個阻礙 AA 髮展的原因是基礎設施對 AA 合約的兼容,目前除原生 AA 鏈外的 Dapp 大多數僅僅支持 EOA 賬戶。對 AA 的支持需要 Dapp 使用 AA 的 sdk 髮起交易,併更改查詢( query )的參數來穫取用戶信息。
此外,區塊鏈瀏覽器目前的用戶體驗更多是爲了 EOA 賬戶設計,例如 Etherscan 。要更好的方便 AA 賬戶查詢,區塊鏈瀏覽器可能還需要在 UI 和 UX 進行一繫列的優化來方便用戶更方便的了解自己賬戶的變動。
在 ETH 之外的新公鏈,大多數已經實現了原生的 AA 賬戶。
共識層支持
原生 AA 賬戶( Native Account Abstraction )意味著在鏈的共識層,即鏈的節點中已經實現了賬戶抽象,而不需要社區開髮者開髮和部署。此類 AA 合約一般屬於內部合約或繫統合約,即由區塊鏈的開髮者來開髮和維護。
較低的部署成本和額外 gas 開銷
內部合約往往擁有更高的權限和優先級,且 gas 計算方式異於普通/外部合約。因此原生的 AA 相比較 4337 擁有更低的部署成本,且往往不會增加大幅交易的 gas 開銷。
靈活性較低
因爲原生 AA 的升級需要公鏈開髮負責,往往需要對鏈進行軟分叉或者硬分叉,因此不如模塊化的 ERC4337 靈活,故而迭代速度和未來提供的新功能有限。
不過目前實現了原生 AA 的鏈也在積極的增加學習 ERC -4337的可擴展性和模塊化,可以讓開髮者在原生 AA 的基礎上拓展更多的功能
Near 在共識層實現了原生的 AA,賬戶直接存儲於區塊鏈中。用戶可以通過多個 access keys 來控製賬戶,併且支持社交恢覆(Email,手機號)。下圖爲 ETH 賬戶與 Near 賬戶的區別。
因爲 Aptos 和 Sui 的 Resource Ownership 模型, Aptos 和 Sui 也在共識層實現了原生的 AA 。 以 Aptos 爲例, Aptos 的賬戶是區塊鏈上的一組資源,因此在 Aptos 創建賬戶,需要預先充值 Aptos 來完成賬戶的初始化。 Aptos / Sui 的賬戶也支持更改 authentication _ key ,但是賬戶的地址不變等 AA 特性。
與 Near/Aptos/Sui/Starknet 不衕,ZKsync 在共識層衕時支持 EOA和AA。因此 ZKsync 既可以用 EOA 髮起交易,也可以由 AA 髮起交易,借此 ZKsync 可以使用目前主流的Metamask錢包,以及 AA 的 Argent 錢包。ZKSync 的 AA 設計參考了 ERC-4337,因此對 EIP4337 的錢包和 Dapp 有較好的兼容性。目前 ZKsync 的 AA 髮起交易的的額外 gas 消耗約爲 execution_gas + 20000。在寫作時,大約爲 0.01USD。相比非原生 AA 的 ERC4337,開銷很小。
Starknet 在原生支持 AA ,且不支持 EOA 髮起交易。 Starknet 的 AA 賬戶在設計之中,也是參考了 ERC4337 ,目前 Starknet 的 AA 合約由 OpenZeppelin 提供,使用 Cairo 預言進行開髮。
ICP 中的原生 AA 賬戶稱爲 Internet Identity ,以下簡稱 II 。 II 的實現與 ERC4337 有較大的區別。 Internet Identity 使用了在 Web2 框架中常用的 WebAuthn ,使得用戶可以使用手機內置的安全芯片來控製賬戶,且可以自由添加,刪除設備。 II 事實將用戶的手機設備變成了硬件錢包。
Bundler 在 AA 生態中取代了原來節點 Mempool 的地位,用戶的 UserOp 不在髮給 Validator ,而是髮給 Bundler 進行打包,併由 Bundler 上鏈。 目前主流的 bundler 如下:
Stackup 的 bundler 由 Go lang 實現,旨在與 Go Ethereum ( geth )輕鬆集成,併且是此列錶上第一個完全符合 ERC -4337的生産標準 bundler 。 Stackup 正在積極維護,併具有完善的文檔,是目前最主流的 bundler 。 Stackup 提供了 bundler 的服務,無需團隊自己搭建 bundler 服務。
Infinitism 的 bundler 由 typescript 開髮,且有 ERC -4337的原作者開髮。 Infinitism 衕時也開髮 ERC -4337的合約,因此 Infinitism 的 bundler 具有與 ERC -4337最好的兼容性。但是因爲由 typescript 進行開髮,性能和穩定性還需要進一步驗證。
Skandha Skandha s是由 Etherspot 開髮的基於 Typescript 的 bundler 。 Etherspot 活躍於 bundler 的 mempool 實現. 在 2023 的4月份, Skanda 通過了所有的測試。
Voltaire
Voltaire 是由 Candide 團隊開髮的 bundler 協議,用於支持他們自己的 Candide 錢包。 Voltaire 是基於 python 的 ERC -4337實現。 Voltaire 目前對 Candide 自己開髮的開源錢包有較好的支持。
Rundler 是有目前 eth 最大的節點服務商 Alchemy 自行開髮的 Bundler 協議。目前 Rundler 尚未開源,但是因爲 Alchemy 巨大的用戶量,可能會因此穫取大量的流量支持。
Bundler 目前尚處於快速的髮展和迭代中。
目前 bundler 尚需解決的痛點是 bundler 的 mempool 一緻性與通信問題,假設市麵上存在多個 bundler 協議,且 bundler 的協議之間缺乏通信,那麽會導緻一個嚴重問題,便是對 bundler 的 DDos 攻擊。假設一個用戶衕時像多個 bundler 髮起交易,且 bundler 間無通信,那麽這些 bundler 會衕時將 UserOp 打包髮給 validator ,此時隻有第一個 bundler 的 UserOp 會被執行,剩餘 bundler 的交易會因爲 Nounce 相衕被拒絶執行,此時假設該用戶的 paymaster 中餘額不足,那麽 bundler 會爲這些 UserOp 支付無效的 gas 。因此, bundler 間的通信是目前需要解決的問題,以防止對 bundler 的 UserOp Spam 攻擊。
目前的 bundler 高度中心化,假設 bundler 將一些用戶加入黑名單中,會導緻這些賬戶的交易無法被執行。這嚴重違背了區塊鏈的去中心化,以及無需可( permissionless )的基本邏輯。
Paymaster 是 AA 最重要的一部分, paymaster 可以補貼用戶的 gas ,大幅降低 Web3 的準入門檻,下麵介紹一些目前主流的 paymaster 實現。
Biconomy Dashboard 使組織和開髮人員能夠在其項目中利用 AA 的組件。項目方可以將項目配置爲通過 Paymasters 爲用戶支付 Gas 費,添加 Gas 贊助條件。通過爲任何受支持的鏈註冊您的付款人, Dapp 可以大幅簡化用戶的 Web3 體驗。
傳統的 EOA 賬戶往往無法衕時實現去中心化,易用性和安全性。
在傳統的 EOA 框架下,用戶需要使用 Web3 應用,往往需要先使用法幣穫取鏈的代幣,如 ETH 。這需要涉及使用 CEX 的入金服務,再兌換成需要使用鏈的代幣,最終轉賬到新創建的 EOA 賬戶中。整個過程,需要大量的 web3 基本認知,且在衆多地區,該流程相當繁瑣。通過引入 AA 的 paymaster ,用戶初期的 onboarding 成本可轉移到 Dapp 的項目方。 Gas 費的轉移對 web3 的大規模應用,有極大的意義。
目前 ERC4337 尚處於非常早期的階段,基於 ERC4337 的工具層出不窮,在 paymaster 側,可以通過審計用戶的 UserOp 來防止 rug 的髮生,如超額 approve ,被黑資金轉賬等等。 paymaster 的安全審計可以使用在 web2 的金融領域非常成熟的方式來審查問題交易,保證用戶的資金安全。
另一個正在開髮的創新便是對賬戶的安全隔離,比如分離資金賬戶和游戲賬戶等。當用戶使用熟悉的 defi 和轉賬功能時,使用對安全審計更爲嚴格的資金賬戶。當用戶嘗試 gamefi 或者不熟悉的 defi 時,使用游戲賬戶。這樣,在不增加用戶需要管理的私鑰的基礎上,通過對賬戶的安全隔離設計,在底層保證了用戶的資金安全。
目前,大多設備,如手機,筆記本電腦等,已經內置了安全芯片,如 Mac 和 Iphone 使用的 Apple T2 Security Chip 。因此本質上,每一颱搭載了 Tee 芯片的設備,都是非常可靠的硬件錢包。但是這些安全芯片目前併不支持對 ECDSA 或別的常用區塊鏈簽名算法的支持。
當前的插件/手機錢包私鑰的明文是直接存儲於設備中的,若設備被黑,用戶的資産會迅速丟失。因此瀏覽器插件錢包,如 Metamask ,易用性較高,但是安全性低。
硬件錢包
硬件錢包保證了私鑰永遠不離開設備,且無法被外界直接穫取。但是大多數無法做到時刻帶著自己的硬件錢包。安全性很高,但是易用較低。
通過 AA 錢包和創新鏈上驗證方式,可以實現直接由設備的安全芯片來簽名交易,這樣用戶的私鑰永遠不會離開設備,比傳統的 EOA 賬戶更加安全。目前 Internet Computer 的 Internet Identity 和 ETHBogota Hackathon 中的一個項目 porton wallet 實現了通過設備安全芯片簽名+ session key 的解決方案,讓用戶可以完全使用手機/電腦等設備併實現等效硬件錢包的安全性。
得益於 ERC -4337的高度模塊化設計,通過對 ERC 4337的拓展和迭代,未來 AA 賬戶將穫得極高的安全性提升。
當前,另一個驗證阻礙 web3 大規模應用的問題是區塊鏈生態在不衕鏈上的割裂。
一個簡單的例子,一個在 ETH 上的用戶,如果要去體驗 BSC 的應用,需要怎麽做?首先,該用戶需要將 ETH 兌換成相應的 USDT / USDT ,併通過跨鏈橋,將這部分 USDT / USDC 跨鏈至 BSC ,再通過 CEX 購買一些 BNB ,轉賬至 BSC ,至此用戶才可以在 BSC 上體驗一些 defi 等應用。整個流程耗時長,安全性差,且學習成本陡峭,因爲大多數新用戶併不知道什麽是跨鏈橋。
通過目前通用的跨鏈協議,例如 Layer0 + AA ,在不衕鏈上使用 DAp 流程可以被大大簡化。 pay master 可以充分整合跨鏈協議,實現 charge it once , pay everywhere 。比如,用戶在 ETH 的 pay master 充值了 USDC ,隻要用戶在不衕鏈上的 AA 賬戶相衕,且綁定了衕一個 pay master , pay master 可以代爲記賬,衕樣的賬戶地址跑去任何一條 EVM 兼容鏈/ Layer2 都不需要用戶手動轉移資産。
引入 paymaster 的最大優勢是給 Dapp 補貼用戶程序化的設立了條件,以。
在過去,曾經出現過 Web3 生態項目爲了穫取客戶而補貼 Gas 的情況,但是對 EOA 的賬戶進行補貼,因爲無法程序化的給補貼設立條件,補貼資金往往會被羊毛黨和機器人利用,例如直接轉走補貼資金,而無法吸引來真實客戶。
目前 paymster 的 dashboard 普遍引入了對 Dapp 的 gas fee 補貼的功能, 項目方可以輕鬆的在 dashboard 中設立補貼的前提條件,這樣隻有符合特定條件的交易才符合補貼要求。通過 paymaster 在補貼中對交易條件的控製, Dapp 可以在成本可控的條件下,通過補貼吸引更多真實的用戶
因爲 ERC -4337的模塊化設計,未來的 paymaster 可以接入更多的服務,例如廣告服務商等等,爲 web3 的大規模應用打開更廣闊的場景。
在 EOA 下,由於 Metamask 的統治地位,目前的 Dapp 主要是用網頁的 DApp 接入,所以網頁插件錢包的市場占有率較高。但是 web3 的 mass Adaption 依賴移動端的用戶參與,因此 AA 的開髮和適配會更加 Mobile Native 。
隨著 Dark Forest 的爆火,全鏈游戲的風潮悄然而至,然而 EOA 在游戲中的體驗非常不好。想象一下,每次在游戲中進行任何操作都需要使用錢包進行授權或簽名交易,玩家併無法真正專註於游戲本身。因此專爲全鏈游戲設計的 AA 賬戶:游廊賬戶( Arcade Account )應運而生。游廊賬戶是對普通 AA 賬戶的特化,通過授權特定游戲的特定操作,玩家在全鏈游戲中無需重覆授權和簽名交易,大大提高了游戲體驗。因此未來全鏈游戲的興起極有可能推動 AA 賬戶的大規模採納。
近期, intent - based transactions 的概念隨著 Unibot 的爆火而興起,Uniswap 近期也髮起了 Uniswap X 項目來推進其 intent - based transactions 的落地。何爲 intent - based transaction ,下麵這個例子可以很簡單的解釋:
Intent Based Transactions 有下列優勢:
目前, CowSwap 已經實現了基於 EOA 的 Intent Based Transactions ,但是基於 EOA 的 Intent Based Transactions 依然需要用戶先授權( ERC -20, Approve ),才可以髮起。然而,在 AA 的新賬戶架構下, 用戶可以將 Approve 和 Intent 一併髮給 bundler , AA 的 bundler 可以衕時接入 Intents Poll ,撮合 intents ,實現更便捷的交易體驗。
抽象賬戶的本質是合約賬戶( Contract Account ),在 Ethereum 中,賬戶有 2 種
一個簡單的例子, Contract Address 即爲合約部署的地址,任何一個 Ethereum 中可以被調用的合約,都有一個合約地址,以 USDT 的合約地址爲例。 EOA 賬戶則爲我們目前熟知的 ETH 賬戶,即 Metamask 錢包中現實的賬戶。
0xdac17f958d2ee523a2206206994597c13d831ec7, 該地址即爲USDT的token 合約地址, 合約地址無法直接從外部創建,而是用 EOA來創建和管理,創建USDT合約地址的EOA是0x36928500Bc1dCd7af6a2B4008875CC336b927D57。
因此我們了解到, AA 賬戶是一種特殊的合約賬戶( CA ),在 ETH 中 AA 賬戶依然需要 EOA 創建,且由外部的 EOA 控製,因爲 ETH 中與鏈交互的唯一方式是由 EOA 髮起的。因此 AA 是一種對 CA 錢包的標準化和模塊化實現,且在不斷迭代。
上文闡述了 AA 與 CA 的關繫,在ERC4 3 3 7的標準提出前,已經有相當數量的 CA 錢包,下麵列舉了 3 個主流的 CA 錢包和工作原理
在 ETH 髮展的極早期,已經出現了多個合約錢包,最著名的合約錢包是由 PolkaDot 創始人 Gavin Wood 團隊開髮的 Parity 錢包。 Parity 爲 ETH 節點的 Rust 實現,與之對應的是由 golang 開髮的 Geth 節點。 Parity 錢包是一個支持多簽的合約錢包,允許一個合約賬戶( CA )由多個 EOA 來控製和管理。在 2017 年,一個黑客通過髮現 parity 錢包的 bug ,盜走了超過15萬個 ETH 。該事件也引起了人們對 CA 錢包的不信任。
因此, AA 錢包需要大量的實踐和標準化,來防止類似事件的髮生
Gnosis 的多簽錢包是目前主流的Multi-sig多簽名錢包,併被大多數機構和開髮者所使用,相當數量的團隊將開髮資金存儲於 Gnosis 的多簽錢包中以防止團隊成員作惡。著名的使用 Gnosis Safe 的團隊如 Yearn, Aave 和 Balancer。Gnosis Safe的安全性極高,但是使用相對昂貴,這也是CA錢包普遍存在的問題
Unipass 錢包將 MPC 技術和 CA 合約錢包結合,使得用戶可以使用社交登陸而無需自我保管 EOA 錢包。需要註意的是 Parity 錢包和 Gnosis Safe 依然需要用戶自我托管私鑰。 Unipass 的大緻流程是
需要註意的是, Unipass 的原始 AA 方案併沒有嚴格執行 ERC4337 的標準。本質錢包的控製權依然由 Unipass 的 MPC 控製的 EOA 所托管。
AA 的本質是一種標準化,模塊化的 CA 賬戶,4337中主要體現爲如下的創新
上圖大緻描述了 ERC4337 下的標準交易流程
我們可以總結 AA 與傳統 CA 的最大區別爲:
在充分認知 AA 之前,不少人通常將 AA 與 MPC 的概念混淆,因爲他們都支持了例如社交恢覆,無瀏覽器插件等功能。 AA 與 MPC 的本質區別如下
下麵介紹下 MPC ,以及 MPC 的特點。
MPC 方案在目前的社交登陸中被廣泛使用,衆多項目紛紛推出 MPC 錢包以滿足 Ch a inless 的無感錢包體驗,用戶無需安裝插件錢包和托管私鑰。在行業內,該類托管錢包統稱爲 W a a S ( W a llet a s a Service )。目前成熟的項目諸如
麵對雨後春筍般冒出的 Waas 服務,可以預見未來提供 WaaS 服務的産品會越來越多,但是中心化交易所在這方麵有絶對的用戶體量和大規模商用經驗,可能未來所有的中心化交易所都會提供相關服務。
傳統 EOA 賬戶的最大劣勢是需要用戶自主托管私鑰,自主托管私鑰存在以下問題:
AA 在設計時,允許用戶設立社交恢覆賬戶,借助另一個或者多個外部的 EOA 賬戶,來恢覆對 AA 的控製權,以下爲社交恢覆的常見流程。
通過上訴的方法,即使用戶丟失了控製 AA 的 EOA 賬戶,依然可以通過社交恢覆更改爲新的 EOA 。併且與 MPC 的社交登陸不衕,該社交恢覆完全基於去中心化方案,不存在 MPC 的單點故障風險。
GAS 代付是區塊鏈大規模應用( Mass Adaption )的核心。對於初入 Web3 的用戶,最大的痛點便是與鏈進行交互前,需要預充值 gas 。然而 Web3 的新人穫取 ETH 或其他鏈的代幣有較高的門檻,這便大大增加了 Web3 應用對新用戶的穫取成本。通過 AA 的 paymaster 來做 Gas 代付,可以允許 paymaster 在前期補貼用戶的 gas ,降低 web3 的準入門檻。
另一個影響 Web3 大規模應用的核心是跨鏈問題,假設一個用戶在區塊鏈 A (比如 Ethereum )中有 ETH ,但是卻想去體驗另一條鏈 B 的應用(例如 Matic 或者 B SC),用戶首先需要 swap 成相應鏈的 Token 併使用跨鏈橋將資産轉移至 B ,整個過程繁瑣且冗長。 Paymaster 通過集成跨鏈協議,如 Layer0 / Warmhole ,可以讓用戶在鏈 A 充值,併在任何其他鏈中無感的使用應用,這使得鏈的邊界感消失,也使得新的 Dapp 更容易穫得來自其他鏈的用戶。
上文提到了 AA 賬戶的優勢,然而目前 ERC -4337依然在快速的迭代和創新以解決目前 AA 中尚存的一些劣勢
與 EOA 的賬戶不衕,一個 EOA 賬戶在被創建之後,在任何 EVM 兼容鏈中,用戶可以使用衕一對公私鑰在不衕的鏈上進行交互。然而,因爲 AA 的本質是 CA 賬戶( Contract Account ),在任何一條鏈或 Layer2 中使用 AA ,都需要重新部署新的 AA 合約。 AA 合約的部署成本較高,用戶可能因此缺乏使用 AA 的動力。
衕時,若用戶部署不當,如使用了不衕的 Factory 來部署 AA 合約賬戶,可能導緻在不衕鏈上的 AA 地址不衕,這對用戶使用和理解會造成相當程度的睏擾。目前 AA 的 Wallet Factory 已經實現了不衕鏈生成相衕的 AA 地址的實現,但是在實際使用中,用戶依然需要謹慎的檢查使用的協議,以確保在不衕鏈上的 AA 地址相衕,防止未來可能出現的麻煩和睏擾
上文提到, AA 賬戶需要用戶在不衕鏈和 Layer2 分別部署 Wallet Factory 生成的 AA 合約。即使目前的側鏈, EVM 兼容鏈, Layer2 gas 較低,依然是一筆不小的開銷。在當前的 gas , ETH 的幣價 1800 的情形下,在 ETH 主網部署 AA 賬戶大緻需要20-40美金, EVM 兼容鏈或者 Layer2 則爲0.5美金-5美金不等。在用戶尚未使用 Dapp 下就需要支付 AA 的部署費用,對於大多數用戶是很難接受的。假設這部費用由 Bundler 或者 Paymaster 補貼,補貼的成本依然過高,需要較強的動機( incentive )。
取決於 AA 的實現方式,以及 Bundler 一次性打包交易的數量(數量越多,單個 UserOP 分攤的 gas 越低),當前標準ERC4 3 3 7交易的 gas 消耗可能爲常規 EOA 賬戶數倍。原因是因爲 AA 賬戶髮起的一筆交易往往需要調用 3 個或以上的合約,併且有鏈上 BLS 簽名驗證這類及其覆雜的計算。目前的4 3 3 7標準也在爲此優化,路線包括
上述提到了使用 ERC4337 標準會有相對高昂的成本,具體的成本如何。首先,這裡要普及一個知識,即 gas 費用的計算公式:
fee = gas × price
那麽, ERC4337 的部署和使用成本具體成本爲多少呢, StackUp 的團隊在他們的博客中進行了準確的測算。
https://www.stackup.sh/blog/how-much-more-expensive-is-erc-4337
Table 1. Gas for ERC -4337 transactions
從上述的圖錶中可以看出:
Table 2. Gas fee estimates for ERC -4337 transactions
上述圖錶,是當前的 gas 價格下,對 ERC-4337 的 AA 賬戶各種操作的成本測算。我們可以看出:
總結一下 ERC -4337的成本測算,因爲在主網創建 ERC -4337的 AA 賬戶的成本較高, ERC -4337的大規模採用大概率會在 Layer2 和 EVM 兼容鏈中率先採用。
目前另一個阻礙 AA 髮展的原因是基礎設施對 AA 合約的兼容,目前除原生 AA 鏈外的 Dapp 大多數僅僅支持 EOA 賬戶。對 AA 的支持需要 Dapp 使用 AA 的 sdk 髮起交易,併更改查詢( query )的參數來穫取用戶信息。
此外,區塊鏈瀏覽器目前的用戶體驗更多是爲了 EOA 賬戶設計,例如 Etherscan 。要更好的方便 AA 賬戶查詢,區塊鏈瀏覽器可能還需要在 UI 和 UX 進行一繫列的優化來方便用戶更方便的了解自己賬戶的變動。
在 ETH 之外的新公鏈,大多數已經實現了原生的 AA 賬戶。
共識層支持
原生 AA 賬戶( Native Account Abstraction )意味著在鏈的共識層,即鏈的節點中已經實現了賬戶抽象,而不需要社區開髮者開髮和部署。此類 AA 合約一般屬於內部合約或繫統合約,即由區塊鏈的開髮者來開髮和維護。
較低的部署成本和額外 gas 開銷
內部合約往往擁有更高的權限和優先級,且 gas 計算方式異於普通/外部合約。因此原生的 AA 相比較 4337 擁有更低的部署成本,且往往不會增加大幅交易的 gas 開銷。
靈活性較低
因爲原生 AA 的升級需要公鏈開髮負責,往往需要對鏈進行軟分叉或者硬分叉,因此不如模塊化的 ERC4337 靈活,故而迭代速度和未來提供的新功能有限。
不過目前實現了原生 AA 的鏈也在積極的增加學習 ERC -4337的可擴展性和模塊化,可以讓開髮者在原生 AA 的基礎上拓展更多的功能
Near 在共識層實現了原生的 AA,賬戶直接存儲於區塊鏈中。用戶可以通過多個 access keys 來控製賬戶,併且支持社交恢覆(Email,手機號)。下圖爲 ETH 賬戶與 Near 賬戶的區別。
因爲 Aptos 和 Sui 的 Resource Ownership 模型, Aptos 和 Sui 也在共識層實現了原生的 AA 。 以 Aptos 爲例, Aptos 的賬戶是區塊鏈上的一組資源,因此在 Aptos 創建賬戶,需要預先充值 Aptos 來完成賬戶的初始化。 Aptos / Sui 的賬戶也支持更改 authentication _ key ,但是賬戶的地址不變等 AA 特性。
與 Near/Aptos/Sui/Starknet 不衕,ZKsync 在共識層衕時支持 EOA和AA。因此 ZKsync 既可以用 EOA 髮起交易,也可以由 AA 髮起交易,借此 ZKsync 可以使用目前主流的Metamask錢包,以及 AA 的 Argent 錢包。ZKSync 的 AA 設計參考了 ERC-4337,因此對 EIP4337 的錢包和 Dapp 有較好的兼容性。目前 ZKsync 的 AA 髮起交易的的額外 gas 消耗約爲 execution_gas + 20000。在寫作時,大約爲 0.01USD。相比非原生 AA 的 ERC4337,開銷很小。
Starknet 在原生支持 AA ,且不支持 EOA 髮起交易。 Starknet 的 AA 賬戶在設計之中,也是參考了 ERC4337 ,目前 Starknet 的 AA 合約由 OpenZeppelin 提供,使用 Cairo 預言進行開髮。
ICP 中的原生 AA 賬戶稱爲 Internet Identity ,以下簡稱 II 。 II 的實現與 ERC4337 有較大的區別。 Internet Identity 使用了在 Web2 框架中常用的 WebAuthn ,使得用戶可以使用手機內置的安全芯片來控製賬戶,且可以自由添加,刪除設備。 II 事實將用戶的手機設備變成了硬件錢包。
Bundler 在 AA 生態中取代了原來節點 Mempool 的地位,用戶的 UserOp 不在髮給 Validator ,而是髮給 Bundler 進行打包,併由 Bundler 上鏈。 目前主流的 bundler 如下:
Stackup 的 bundler 由 Go lang 實現,旨在與 Go Ethereum ( geth )輕鬆集成,併且是此列錶上第一個完全符合 ERC -4337的生産標準 bundler 。 Stackup 正在積極維護,併具有完善的文檔,是目前最主流的 bundler 。 Stackup 提供了 bundler 的服務,無需團隊自己搭建 bundler 服務。
Infinitism 的 bundler 由 typescript 開髮,且有 ERC -4337的原作者開髮。 Infinitism 衕時也開髮 ERC -4337的合約,因此 Infinitism 的 bundler 具有與 ERC -4337最好的兼容性。但是因爲由 typescript 進行開髮,性能和穩定性還需要進一步驗證。
Skandha Skandha s是由 Etherspot 開髮的基於 Typescript 的 bundler 。 Etherspot 活躍於 bundler 的 mempool 實現. 在 2023 的4月份, Skanda 通過了所有的測試。
Voltaire
Voltaire 是由 Candide 團隊開髮的 bundler 協議,用於支持他們自己的 Candide 錢包。 Voltaire 是基於 python 的 ERC -4337實現。 Voltaire 目前對 Candide 自己開髮的開源錢包有較好的支持。
Rundler 是有目前 eth 最大的節點服務商 Alchemy 自行開髮的 Bundler 協議。目前 Rundler 尚未開源,但是因爲 Alchemy 巨大的用戶量,可能會因此穫取大量的流量支持。
Bundler 目前尚處於快速的髮展和迭代中。
目前 bundler 尚需解決的痛點是 bundler 的 mempool 一緻性與通信問題,假設市麵上存在多個 bundler 協議,且 bundler 的協議之間缺乏通信,那麽會導緻一個嚴重問題,便是對 bundler 的 DDos 攻擊。假設一個用戶衕時像多個 bundler 髮起交易,且 bundler 間無通信,那麽這些 bundler 會衕時將 UserOp 打包髮給 validator ,此時隻有第一個 bundler 的 UserOp 會被執行,剩餘 bundler 的交易會因爲 Nounce 相衕被拒絶執行,此時假設該用戶的 paymaster 中餘額不足,那麽 bundler 會爲這些 UserOp 支付無效的 gas 。因此, bundler 間的通信是目前需要解決的問題,以防止對 bundler 的 UserOp Spam 攻擊。
目前的 bundler 高度中心化,假設 bundler 將一些用戶加入黑名單中,會導緻這些賬戶的交易無法被執行。這嚴重違背了區塊鏈的去中心化,以及無需可( permissionless )的基本邏輯。
Paymaster 是 AA 最重要的一部分, paymaster 可以補貼用戶的 gas ,大幅降低 Web3 的準入門檻,下麵介紹一些目前主流的 paymaster 實現。
Biconomy Dashboard 使組織和開髮人員能夠在其項目中利用 AA 的組件。項目方可以將項目配置爲通過 Paymasters 爲用戶支付 Gas 費,添加 Gas 贊助條件。通過爲任何受支持的鏈註冊您的付款人, Dapp 可以大幅簡化用戶的 Web3 體驗。
傳統的 EOA 賬戶往往無法衕時實現去中心化,易用性和安全性。
在傳統的 EOA 框架下,用戶需要使用 Web3 應用,往往需要先使用法幣穫取鏈的代幣,如 ETH 。這需要涉及使用 CEX 的入金服務,再兌換成需要使用鏈的代幣,最終轉賬到新創建的 EOA 賬戶中。整個過程,需要大量的 web3 基本認知,且在衆多地區,該流程相當繁瑣。通過引入 AA 的 paymaster ,用戶初期的 onboarding 成本可轉移到 Dapp 的項目方。 Gas 費的轉移對 web3 的大規模應用,有極大的意義。
目前 ERC4337 尚處於非常早期的階段,基於 ERC4337 的工具層出不窮,在 paymaster 側,可以通過審計用戶的 UserOp 來防止 rug 的髮生,如超額 approve ,被黑資金轉賬等等。 paymaster 的安全審計可以使用在 web2 的金融領域非常成熟的方式來審查問題交易,保證用戶的資金安全。
另一個正在開髮的創新便是對賬戶的安全隔離,比如分離資金賬戶和游戲賬戶等。當用戶使用熟悉的 defi 和轉賬功能時,使用對安全審計更爲嚴格的資金賬戶。當用戶嘗試 gamefi 或者不熟悉的 defi 時,使用游戲賬戶。這樣,在不增加用戶需要管理的私鑰的基礎上,通過對賬戶的安全隔離設計,在底層保證了用戶的資金安全。
目前,大多設備,如手機,筆記本電腦等,已經內置了安全芯片,如 Mac 和 Iphone 使用的 Apple T2 Security Chip 。因此本質上,每一颱搭載了 Tee 芯片的設備,都是非常可靠的硬件錢包。但是這些安全芯片目前併不支持對 ECDSA 或別的常用區塊鏈簽名算法的支持。
當前的插件/手機錢包私鑰的明文是直接存儲於設備中的,若設備被黑,用戶的資産會迅速丟失。因此瀏覽器插件錢包,如 Metamask ,易用性較高,但是安全性低。
硬件錢包
硬件錢包保證了私鑰永遠不離開設備,且無法被外界直接穫取。但是大多數無法做到時刻帶著自己的硬件錢包。安全性很高,但是易用較低。
通過 AA 錢包和創新鏈上驗證方式,可以實現直接由設備的安全芯片來簽名交易,這樣用戶的私鑰永遠不會離開設備,比傳統的 EOA 賬戶更加安全。目前 Internet Computer 的 Internet Identity 和 ETHBogota Hackathon 中的一個項目 porton wallet 實現了通過設備安全芯片簽名+ session key 的解決方案,讓用戶可以完全使用手機/電腦等設備併實現等效硬件錢包的安全性。
得益於 ERC -4337的高度模塊化設計,通過對 ERC 4337的拓展和迭代,未來 AA 賬戶將穫得極高的安全性提升。
當前,另一個驗證阻礙 web3 大規模應用的問題是區塊鏈生態在不衕鏈上的割裂。
一個簡單的例子,一個在 ETH 上的用戶,如果要去體驗 BSC 的應用,需要怎麽做?首先,該用戶需要將 ETH 兌換成相應的 USDT / USDT ,併通過跨鏈橋,將這部分 USDT / USDC 跨鏈至 BSC ,再通過 CEX 購買一些 BNB ,轉賬至 BSC ,至此用戶才可以在 BSC 上體驗一些 defi 等應用。整個流程耗時長,安全性差,且學習成本陡峭,因爲大多數新用戶併不知道什麽是跨鏈橋。
通過目前通用的跨鏈協議,例如 Layer0 + AA ,在不衕鏈上使用 DAp 流程可以被大大簡化。 pay master 可以充分整合跨鏈協議,實現 charge it once , pay everywhere 。比如,用戶在 ETH 的 pay master 充值了 USDC ,隻要用戶在不衕鏈上的 AA 賬戶相衕,且綁定了衕一個 pay master , pay master 可以代爲記賬,衕樣的賬戶地址跑去任何一條 EVM 兼容鏈/ Layer2 都不需要用戶手動轉移資産。
引入 paymaster 的最大優勢是給 Dapp 補貼用戶程序化的設立了條件,以。
在過去,曾經出現過 Web3 生態項目爲了穫取客戶而補貼 Gas 的情況,但是對 EOA 的賬戶進行補貼,因爲無法程序化的給補貼設立條件,補貼資金往往會被羊毛黨和機器人利用,例如直接轉走補貼資金,而無法吸引來真實客戶。
目前 paymster 的 dashboard 普遍引入了對 Dapp 的 gas fee 補貼的功能, 項目方可以輕鬆的在 dashboard 中設立補貼的前提條件,這樣隻有符合特定條件的交易才符合補貼要求。通過 paymaster 在補貼中對交易條件的控製, Dapp 可以在成本可控的條件下,通過補貼吸引更多真實的用戶
因爲 ERC -4337的模塊化設計,未來的 paymaster 可以接入更多的服務,例如廣告服務商等等,爲 web3 的大規模應用打開更廣闊的場景。
在 EOA 下,由於 Metamask 的統治地位,目前的 Dapp 主要是用網頁的 DApp 接入,所以網頁插件錢包的市場占有率較高。但是 web3 的 mass Adaption 依賴移動端的用戶參與,因此 AA 的開髮和適配會更加 Mobile Native 。
隨著 Dark Forest 的爆火,全鏈游戲的風潮悄然而至,然而 EOA 在游戲中的體驗非常不好。想象一下,每次在游戲中進行任何操作都需要使用錢包進行授權或簽名交易,玩家併無法真正專註於游戲本身。因此專爲全鏈游戲設計的 AA 賬戶:游廊賬戶( Arcade Account )應運而生。游廊賬戶是對普通 AA 賬戶的特化,通過授權特定游戲的特定操作,玩家在全鏈游戲中無需重覆授權和簽名交易,大大提高了游戲體驗。因此未來全鏈游戲的興起極有可能推動 AA 賬戶的大規模採納。
近期, intent - based transactions 的概念隨著 Unibot 的爆火而興起,Uniswap 近期也髮起了 Uniswap X 項目來推進其 intent - based transactions 的落地。何爲 intent - based transaction ,下麵這個例子可以很簡單的解釋:
Intent Based Transactions 有下列優勢:
目前, CowSwap 已經實現了基於 EOA 的 Intent Based Transactions ,但是基於 EOA 的 Intent Based Transactions 依然需要用戶先授權( ERC -20, Approve ),才可以髮起。然而,在 AA 的新賬戶架構下, 用戶可以將 Approve 和 Intent 一併髮給 bundler , AA 的 bundler 可以衕時接入 Intents Poll ,撮合 intents ,實現更便捷的交易體驗。