作者:Rui
正如許多人所說,帳戶抽象(AA) 技術,尤其是ERC-4337,有望徹底改變自我託管錢包的用戶體驗,並使其能夠擴展以供大規模採用。然而,2023年5月越來越近了,我們必須認識到該標準還處於早期階段,機會與風險並存。
*請注意,隨著升級的快速發展,本文內容可能很快就會過時,並且本文僅基於我個人觀點。
TL;DR
ERC4337:
AA 標準仍處於早期階段,不過許多創新建構者正努力進一步開發。在生態系統的支持和MetaMask 等大型產品的普及這一大背景下,我們可以預見AA 將加快發展進程,並產生令人興奮的成果。
L2:
對AA的採用在L2 解決方案中有所不同。較大的L2(例如Optimism 和Arbitrum)本身不支援AA,而ZKSync和Starknet則支援。
Bundler服務:
- 如果我們看好AA,並且所有與以太坊一致的EVM等效L2不支援原生AA,那麼Bundler服務就是網路中支援AA的必要條件。
- 開源特性使得Bundler服務具有非排他性,這就令變現之路困難重重。為了確保網路安全穩定,就要用到不同的Bundler服務。
- 私人Bundler可透過為特定需求客製化隱私、安全和其他功能來實現獲利。
Paymaster服務:
- Paymaster 服務相對集中(與Bundler服務相比),合約開源,但後端封閉。
- Paymaster服務具有盈利模式,可與法幣存款、兌換、橋接、自動支付、會話、贊助費等功能相結合來增強支付場景,從而提高dApp可用性。
AA錢包和SDK:
- AA錢包可以從產品角度進行評估,包括金鑰管理系統、社交恢復、gas費贊助、多鏈帳戶同步以及支援的區塊鏈等。
- AA 的優勢不光是提供流暢的登入體驗(Web3 Auth 可透過託管方式實現)。在複雜且客製化的鏈上互動中,AA還可以為dApp提供許多好處。
- BD是這場戰局的關鍵。大多數錢包都瞄準Defi、GameFi,並致力於獲得生態系統支援、說服大型dApp、找到突破點。
- 變現模式有待深入探索。 To Business(To B)模式可能賺不了多少錢,也不會累積自己的用戶,而To Customer(To C)模式則需要找到高價值的場景,基於體積來獲利。整合交換和橋接功能可以獲利,但關鍵在於找到可持續的模式。
了解加密錢包
分類
以太坊網路中存在兩種類型的帳戶:外部帳戶(Externally Owned Account, EOA) 錢包,如MetaMask,以及合約帳戶(Contract Account, CA) ,例如Safe。
EOA錢包和合約錢包之間的主要區別在於其控制方式。 EOA錢包由個人用戶透過私鑰控制,而合約錢包則由智慧合約控制。雖然EOA 錢包更簡單,並用於管理個人加密貨幣持有量,但合約錢包可以有更複雜的規則,並可用於特定目的。
FromBitcoin Insider 痛點
EOA錢包用戶需要注意保護私鑰。在私鑰上所犯下的任何錯誤或疏忽都可能招致資金損失,因此EOA錢包的使用成本比較高,風險也高。即便是經驗豐富的加密貨幣用戶也可能會因為一次錯誤或粗心的舉動而失去對其帳戶的控制。操作複雜、無法略過gas費或無法進行gas費代付以及錢包功能有限,這些都是困擾用戶的問題。
智慧合約錢包為部分問題提供了解決方案,但以太坊目前要求將所有作業打包在來自受ECDSA保護的EOA的交易中。這會產生額外的交易費,還要多消耗21000 gas費,隨之而來的還有潛在的中心化風險和復雜的操作:用戶需要管理兩個帳戶並在單獨的EOA中存入ETH 來支付gas費,或依賴中心化中繼系統支付。
這些痛點催生了AA新標準—ERC-4337。
ERC4337提案:
CA的問題
如今,這些事情都可以用合約錢包解決,但以太坊本身要求將所有內容打包在源自ECDSA保護的EOA的交易中,這將導致:
- 額外交易費用:每個使用者操作都必須由EOA發起,就需要額外消耗21000 gas費。
- 複雜性和中心化:使用者需要在單獨的EOA中存入ETH來支付gas費,並管理兩個帳戶中的餘額,或依靠中繼系統支付,這些中繼系統通常是中心化的。
多年來,人們多次嘗試在基於以太坊的區塊鏈上實現帳戶抽象,例如EIP-86和EIP-2938。然而,這些方法都行不通,因為它們都需要修改共識層,而這是很難實現的。
4337機制
ERC-4337透過引入名為UserOperation的更高層偽交易物件來實現帳戶抽象,這在捆綁概念方面類似於rollups。幸運的是,這個標準讓我們可在不改變共識層的情況下建立帳戶抽象化。
EIP 4337的模組化設計將智慧合約錢包的帳戶抽像功能劃分為多個連接埠:
Bundler :
- Bundler就是一個EOA。由於所有交易都必須由EOA發起,有了Bundler之後,用戶無需創建和記住EOA私鑰也可觸發智能合約錢包交易。
- Bundler的作用:驗證UserOperation、將一組UserOperation 物件打包成單一「捆綁事務」。將已驗證的UserOperation內容廣播到公共或私人記憶體池。
- Bundler也可以透過以下方式獲得經濟利益:執行UserOperation後,將最高優先費用與實際gas費之間的差額收入囊中。與一般交易的中繼器類似,Bundler可透過對捆綁事務中的UserOperation進行排序來取得MEV。
入口點 :
- 入口點是一個全域合約,所有Bundler都需要呼叫它來執行UserOperation。入口點充當Bundler和智能合約錢包之間的中介。
- 用handleOp 驗證和執行: handleOp 函數用UserOperation 作為輸入參數,首先在鏈上驗證UserOperation,檢查是否由指定的智能合約錢包地址簽名,並且錢包有足夠的gas費來補償Bundler。如果驗證成功,則根據函數簽章執行輸入參數。
需要存入智慧合約錢包的代幣向Bundler支付gas費:當Bundler使用EOA觸發handleOp時,會產生gas費。智慧合約錢包可以用自己的餘額支付gas費,或是請Pymaster支付。可能失敗:gas費不足,驗證步驟失敗;即使有足夠的gas費,UserOperation執行步驟也可能會失敗,例如執行階段錯誤。無論執行是否成功,入口點合約都會向Bundler支付gas費來觸發該handleOp功能。入口點合約為智能合約錢包提供添加或提取代幣作為抵押品的功能。
智慧錢包:
智慧合約錢包主合約將UserOperation的驗證和執行步驟分開。透過將其分離,Bundler可以在鏈下驗證UserOperation ,從而過濾掉惡意交易,而無需支付gas費。
validateOp 函數中定義了驗證步驟:第一次呼叫validateOp ,Bundler模擬鏈下驗證,驗證UserOperation中的簽名,並確保智能合約錢包有足夠的gas餘額;第二次調用validateOp的是入口點合約,在執行UserOperation之前執行鏈上驗證。
Paymaster :
- Paymaster定義了智慧合約錢包的gas抽象邏輯,包括使用ERC20同質化代幣支付以太坊gas費以及無需gas費的交易。
- Paymaster是由dApp部署的智慧合約,可以觸發Paymaster的validatePaymasterOp .
Wallet Factory :
- Wallet Factory是創建智慧合約錢包的公共合約。當initCode 中植入了錢包工廠地址和新智能合約錢包的參數後,Bundler將觸發相應的Wallet Factory創建具有指定參數的智能合約。熱門的Wallet Factory 代碼經過全面審核,因此,用Wallet Factory創建錢包更安全。
- Wallet Factory需要在入口點上質押ETH,並持續為UserOperations 提供良好服務,才能從Bundler取得更多流量。
- 使用者可提交填充了initCode的UserOperation ,請求Bundler建立CA錢包。
- 用戶可選擇帶有特定自訂參數的Wallet Factory 來自訂他們的CA錢包。
簽章聚合器:
- 簽章聚合器用於將多個交易的簽章聚合為字節,以便更快地進行驗證和執行交易。不同的智慧合約錢包使用不同的簽章演算法,需要先使用相同的簽章演算法來聚合UserOperations。
- 節省gas費:由於鏈上加密計算需要消耗大量gas費,因此聚合簽章方案(如BLS)可以在鏈上驗證時節省gas費。
- Bundler使用多個簽名聚合器合約來產生多個聚合簽名,而不是一次驗證一個UserOperations。
- Bundler將UserOperation 陣列、聚合簽章和聚合器位址傳遞給入口點,每個UserOperation 群組會議呼叫其對應的簽章聚合器的validateSignature函數。
- 驗證通過後,Bundler會在智慧合約錢包上執行這套UserOperation。
- 聚合商還需要在入口點合約上質押以太坊,並維持良好的UserOperation服務記錄。
AA的優點
- Gas抽象:
Gas抽象包含無gas費交易,並使用任意ERC20代幣支付gas費。此邏輯可在Paymaster合約中或透過中繼器執行。對AA而言,許多智能合約錢包本身可以實現EIP 4337相容的Paymaster合約,並在入口點合約上質押代幣,幫助用戶支付gas費。
- 社交恢復:
在私鑰遺失或洩漏的情況下,用戶可以將新金鑰授權為合法的錢包所有者。社群登入和社群復原的邏輯一般在錢包的主合約中定義。可採用多種方式,如電子郵件、多重簽名、MPC或SWIE(以以太坊登入)等。
- 交易批次:
交易批次處理是智慧合約錢包獨有的功能,允許錢包用戶在單一鏈上交易中執行多個交易。
- 跨鏈橋接和連接橋整合:
目前,許多錢包都與第三方供應商合作,將法幣充提通道和跨鏈橋接整合到錢包中。這些充提通道和跨鏈橋接可以進一步與gas抽像中的支付合約(Paymaster)進行整合。
- 模組化設計:
AA最大的優勢之一可能是其模組化服務,Bundler、Paymaster和其他部分可以靈活地組合在一起。
AA的缺陷
來自stackup
- 手續費(也許)相對較高:
使用ERC-4337進行簡單轉帳的成本比使用傳統錢包(通常稱為EOA)高得多,因為前者需要調用合約。
然而,在Rollup網路上,使用ERC-4337進行簡單轉帳可能比EOA更便宜,因為它可以將簽章聚合在一起,以減少主網路上的資料量。
- 目前尚未最終確定的標準:
擴展的交易可擴展性導致攻擊向量增加、遷移到新標準時可能出現未知錯誤或安全風險、需要強大而安全的全域入口點合約來確保所有交易經適當簽署及驗證,諸如此類的挑戰。
Layer 2
✅ 和❌ 表示是否支援原生AA。
Optimism: ❌
Optimism版本1有三個OVM操作碼,以實現智慧合約錢包的帳戶抽象化。然而,出於一致性和安全考慮,版本2移除了這些操作碼,並且沒有關於支援帳戶抽象的官方聲明。
Arbitrum: ❌
雖然目前有一些智能合約錢包在Arbitrum上構建,但沒有關於支持帳戶抽象的官方聲明。
Starknet: ✅
Starknet只有具有驗證和執行功能的智慧合約帳戶,所有帳戶必須實現這些功能以驗證簽名並確保gas費用。 Starknet禁止驗證功能呼叫外部合約狀態,以防止未執行的交易出現。然而,Starknet與以太坊還是有些不同,例如缺少UserOperations、類似Paymaster的交易費抽象協議,以及需要具有代幣餘額的帳戶來建立新合約。另外,如果已驗證的交易失敗,Starknet的排序器就無法收取gas費,而以太坊卻可以。
zkSync: ✅
zkSync不區分EOA和合約帳戶。它的帳戶模型類似於EIP 4337,並包括獨立的validateTransactiom和executeTransaction函數。 Paymaster介面還包括validateAndPayForPaymasterTransaction和postOp函數。然而,二者還是有不同之處,例如在驗證過程中呼叫已部署的外部合約和外部儲存的能力。 Paymaster在交易驗證期間也可以呼叫外部儲存。
AA基礎設施:
目前,一些優秀的項目如Stackup、Etherspot、Candide、Infinistism、Pimlico都在嘗試建立基礎設施。
Bundler服務:
建構者:
- Stackup的Golang實現
- Candide的Python實現
- Infinitism的TypeScript實現
- Etherspot的Skandha — TypeScript實現
一些共識:
- 公益服務
絕大多數Bundler的開源性質使其具有非排他性和非競爭性。任何RPC端點都可以透過複製開源程式碼來運行Bundler。
- 難以變現
即使運行Bundler的RPC端點透過API金鑰收取服務使用費,Bundler服務也比其他基礎設施(如支付合約Paymaster)更難變現,因為Paymaster可以透過與第三方充提供應商或DeFi協定聚合器供應商合作,輕鬆賺取費用差額。
- 重要的基礎設施
驗證和執行UserOperation需要盡可能多的Bundler,以便更好地實現去中心化。因為目前第三方Bundler服務供應商只有Stackup和eth-infinitism,我們確實需要更多這樣的Bundler服務提供者。
- 機制
Bundler自己傳遞訊息並傳播使用者動作,類似於共享記憶體池,無需就具體事項達成一致。 Bundler有過濾垃圾資訊的重要功能,並且出於自身的經濟原因,Bundler希望盡可能地進行監控,以確保記憶體池的安全。
Bundler服務的區別:
- Bundler服務可以是通用基礎設施,也可以專門為錢包而建置。錢包專案可能會優先建造最基本的Bundler,而第三方供應商則必須為各種場景建立模組化的Bundler。
- 和以太坊節點類似,Bundler服務採用不同的程式語言實現,以防止單點故障,並造福生態系統。
- Bundler服務支援私有記憶體池和公用記憶體池,並為私有記憶體池提供客製化選項。
Paymaster服務
- 相對於Bundler服務來說,Paymaster服務比較中心化,合約是開源的,但後端是封閉的。
- Paymaster服務有盈利模式,可以透過與法幣存款、兌換、橋接、自動支付、會話、贊助費用和其他功能的結合來改善dApp的可用性。
AA錢包和SDK:
產品評估
- 密鑰管理系統:
- 多重簽章邏輯(安全):只能實現2/3和3/5等多重簽章邏輯;
- 簡單權限管理(順序):可以為金鑰設定權重,然後為操作帳戶設定閾值。
- 基於角色的權限管理(Unipass):可以為金鑰設定權重和角色。不同的角色可以執行不同的操作。每個角色也有對應的閾值。如果超過此閾值,可以執行對應角色的權限。
- 社交恢復方法
- gas費贊助:自建中繼器,或設定Bundler + Paymaster
- 多鏈帳戶同步
- 多鏈位址統一
- 支援的區塊鏈
業務
- 業務模式:To b/ To B+To C / ToC
- 與dApps合作:與各鏈上的穩定幣或DeFi等巨頭基礎設施型dApp合作
- 實用性:整合NFT市場、launchpad等。
- 外部支援:來自以太坊基金會或其他知名創投機構