原文作者:Rui
正如許多人所說,帳戶抽象(AA) 技術,尤其是ERC-4337 ,預計將徹底改變自我託管錢包的用戶體驗,並使其能夠擴展以供大規模採用。然而, 2023 年5 月越來越近了,我們必須認識到該標準還處於早期階段,機會與風險並存。
*請注意,隨著升級的快速發展,本文內容可能很快就會過時,並且本文僅基於我個人觀點。
TL;DR
ERC 4337 :
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 錢包更簡單,並用於管理個人加密貨幣持有量,但合約錢包可以有更複雜的規則,並可用於特定目的。
From Bitcoin Insider
痛點
EOA 錢包用戶需要注意保護私鑰。在私鑰上所犯下的任何錯誤或疏忽都可能招致資金損失,因此EOA 錢包的使用成本比較高,風險也高。即便是經驗豐富的加密貨幣用戶也可能會因為一次錯誤或粗心的舉動而失去對其帳戶的控制。操作複雜、無法略過gas 費或無法進行gas 費代付以及錢包功能有限,這些都是困擾用戶的問題。
智慧合約錢包為部分問題提供了解決方案,但以太坊目前要求將所有操作打包在來自受ECDSA 保護的EOA 的交易中。這會產生額外的交易費,還要多消耗21000 gas 費,隨之而來的還有潛在的中心化風險和復雜的操作:用戶需要管理兩個賬戶並在單獨的EOA 中存入ETH 來支付gas費,或依賴中心化中繼系統支付。
這些痛點催生了AA 新標準—ERC-4337 。
ERC 4337 提案:
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 抽象邏輯,包括使用ERC 20 同質化代幣支付以太坊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 費交易,並使用任一ERC 20 代幣支付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 等。
外部支援:來自以太坊基金會或其他知名創投機構
原始英文報告於2023 年5 月首發。更多中文投研內容,請關注公眾號【SevenXVentures】。
本文為SevenX 研究團隊原創,僅供交流學習,不構成任何投資參考。如需引用,請註明來源。