作者:Victor-Cristian Florea,Outlier Ventures;翻譯:0xjs@金色財經
引言
儘管區塊鏈技術已經存在了一段時間,並且市場在過去十年中急劇增長,但解決當前高摩擦的入門流程是將原生加密交易轉變為主流理念的市場擴張的關鍵。幸運的是,帳戶抽像等新範式可以透過簡化臨時用戶的區塊鏈技術的入門和使用流程來鼓勵加密貨幣的大規模採用。
ERC-4337帳戶抽象實現針對EVM開發人員,允許創建非託管錢包作為智能合約,解鎖錢包輕鬆恢復、無簽名交易和團隊錢包等功能。此標準的關鍵創新在於能夠獨立建立智慧帳戶,無需單獨的外部擁有帳戶(EOA)或合約帳戶即可進行交易。智慧型帳戶使用UserOperations,它代表使用者執行的操作。這些使用者操作透過單一入口點進行捆綁、驗證和執行,從而允許在管理帳戶和資金方面進行各種自訂。
Safe、NEAR Wallet、Argent和Blocto等創新者已經在利用這種新的智慧合約功能,ERC-4337是標準化的一個終點,但仍有工作要做。該領域的主要參與者設計了適合特定需求和不同區塊鏈生態系統的帳戶抽象變體,從而提供了大量可供選擇的SDK 和庫。
帳戶抽像用例
在進入技術方面之前,讓我們先概述一下最有趣的用例,在這些用例中,帳戶抽象帶來了顯著的改進,所有這些都有助於改善web3 的入門體驗,尤其是對於非本地用戶。
1. 錢包恢復
加密產業最大的難題之一是安全性,使用者必須依賴託管人,或必須保護自己的金鑰。在智慧帳戶領域,安全性與傳統模型不同,避免了對助記詞或私鑰的依賴。智慧帳戶擁有者可以指定多個實體(裝置、個人或第三方服務)為錢包監護人。
這項創新功能為面臨憑證遺失的使用者確保了強大的安全網,監護人能夠簽署交易以分配新的存取憑證。重要的是,此恢復過程優先考慮使用者對資產的控制和所有權,在安全性和可訪問性之間取得微妙的平衡。這個複雜的框架預示著數位資產管理的新時代,彈性和使用者控制力大大增強。
2. 批量交易
在去中心化交易所中,代幣交換通常涉及兩個單獨的交易,每個交易都需要用戶透過私鑰簽名進行批准,而複雜的Web3 交易可能需要三個或更多批准。智慧帳戶引入了一種突破性的解決方案,允許用戶批量處理多個交易,降低用戶的成本,並以我們在web2 應用程式中期望的方式簡化DeFi 交易。此特定用例的一個很好的例子是Ambire Wallet,它利用AA 為其用戶啟用批次交易。儘管與使用外部擁有帳戶(EOA) 相比,執行一項操作的成本較高,但當進行多筆交易時,每筆交易的價格會大幅降低。
3. 贊助用戶交易
帳戶抽象化也引入了Paymasters 的概念,這是專門為贊助交易的Gas 費用而設計的智能合約。這為dApp 帶來了新的客製化水平,它們現在可以接受用戶錢包中的任何代幣作為交易費、可以使用銀行卡進行法幣支付,甚至補貼全部金額,從而為用戶創造無縫體驗,改善用戶體驗和消除不必要的摩擦點。一個很好的例子是來自Arcana Network 的SendIt,這是一個小型協議,允許透過電子郵件向任何人發送加密貨幣,即使他們沒有錢包,並利用ERC4337 來贊助交易費用並為他們創建一個新的智能合約帳戶。這個特定用例的另一個重要用途是Visa 的提議,即允許用戶使用法幣卡支付鏈上Gas 費,如下圖所示。
透過帳戶抽象重新思考數位交易
透過帳戶抽象重新思考數位交易
4. 自動化交易
與EOA 不同,dApp 上的每筆交易都需要手動啟動或簽名,智慧帳戶引入了自動化的可能性。透過智慧帳戶,用戶可以設定各種參數,包括對特定代幣的存取、支出限制、持續時間、Gas限制以及特定操作的預定義觸發器。舉例來說,用戶希望允許DEX 在接下來的一小時內每15 分鐘代表其執行一次交換:簽名一次,交易將在之後自動發生。這種執行可以在CowSwap 上看到,CowSwap 是一個提供TWAP交易的去中心化交易所,將所需的使用者操作分散到在一段時間內執行的部分。智慧帳戶自動化的潛力幾乎是無限的,為使用者提供超出傳統EOA 限制的客製化和效率等級。
技術組件
利用該技術的方法有多種,可以透過啟動你自己的內部元件(圖1),也可以使用SDK 或庫並利用該領域其他參與者維護的現有基礎設施。我們列出了各種入門選項,我們將進一步探索使用特定解決方案的用例和優勢。
無論你在利用帳戶抽象時選擇哪種實作方法,了解其關鍵要素都很重要。 UserOperations 是類似交易的對象,代表使用者對智慧合約帳戶的交易意圖。與傳統交易不同,UserOperations 引入了額外的字段,如EntryPoint、Bundler、Paymaster 和Aggregator,並定向到單獨的記憶體池。值得注意的是,UserOperations 是基於意圖的,允許使用者包含以結果為中心的交易的元數據,這偏離了傳統輸入的特殊性。
下面的關鍵元件稱為Bundler,是一種特殊類型的以太坊節點,在支援UserOperations 方面發揮關鍵作用。使用者操作被定向到Bundler網絡,該網絡主動監視替代記憶體池。這些Bundler將多個UserOperations 合併為一個交易,隨後代表用戶將它們打包並提交到區塊鏈。作為這項服務的回報,他們獲得補償。它們的意義在於抽象化了web3 中每個參與者擁有自己的外部擁有帳戶(EOA)的必要性,這是實現ERC-4337 功能的關鍵組成部分。
然後,UserOperations 被傳送到EntryPoint Contract,這是一個singleton智慧合約,用於執行UserOperations 的驗證和執行。驗證過程涉及評估錢包是否擁有足夠的資金來支付潛在的最大Gas 使用量,而最大Gas 使用量由UserOp 中的Gas 欄位決定。缺乏足夠資金的交易將被拒絕。為了執行,智能合約執行交易,從智能合約帳戶(SCA) 扣除資金,並以適當的原生代幣金額償還Bundler 的Gas 費用。
在某些情況下,開發人員希望代表用戶贊助gas費,或允許他們使用原生代幣以外的各種代幣來支付這些費用。為此,他們可以利用名為Paymaster 的合約,該合約旨在管理gas支付政策。這有效地消除了用戶擁有原生區塊鏈代幣與區塊鏈互動的要求。
不同AA 工具的演練
1. 無SDK解決方案
如上所述,利用帳戶抽像功能需要一些關鍵元素,而其他一些元素仍然是可選的。如果你不想依賴第三方AA 解決方案,則可以運行自己的設定並完全控制和託管所涉及的智慧合約和流程。對於以太坊,有多種提議的解決方案,其中eth-infinitism在智慧帳戶合約、Entry Point合約和Paymasters 方面擁有最受歡迎的解決方案。除了部署這些合約並正確資助之外,還需要執行一個Bundler,它將接收用戶操作並將其重定向到Entry Point合約。為了幫助開發人員,社群成員開發了解決方案,只需利用簡單的npm套件即可在Hardhat 環境中本機設定帳戶抽象。
由於自行設置所有基礎設施所需的繁重工作,大多數人選擇依賴各種庫和公司,它們提供現成的解決方案,並從開發人員手中抽像出所有複雜性。
2.Pimlico和permissionless.js
如果你希望利用JavaScript 函式庫為應用程式新增帳戶抽像功能,最有效的解決方案是permissionless.js。它建立在viem 之上,允許開發人員利用Pimlico 提供的AA 套件、Bundler 和Paymaster API 來構建高度可自訂和模組化的應用程序,所有這些都支援20 多個EVM 相容鏈。假設智慧帳戶和交易資料已創建,以下是如何使用Permissionless.js 和Pimlico 的帳戶抽象SDK 發送交易的方法:
const txHash = await smartAccountClient.sendTransaction({
to: “0xd8da6bf26964af9d7eed9e03e53415d37aa96045”,
value: parseEther(“0.1”),
maxFeePerGas: gasPrices.fast.maxFeePerGas,
maxPriorityFeePerGas: gasPrices.fast.maxPriorityFeePerGas,
});
3. Alchemy 帳戶套件
Alchemy 的帳戶工具包是對開發人員最友善的帳戶抽象工具之一。與其他解決方案類似,除了aa-sdk 之外,Alchemy 還提供了Light Account 解決方案,這是一個簡單的智慧帳戶介面、一個Bundler API、一個利用自己的Paymaster 智能合約的Gas Manager 解決方案,允許開發人員贊助用戶操作或允許用戶在支付Gas 費用時使用ERC-20 代幣。假設智慧帳戶和交易資料已創建,以下是您如何使用Achemy 的帳戶工具包發送交易並檢索交易哈希:
const userOperation = await smartAccountClient.sendUserOperation({
uo: {
target: “0xTARGET_ADDRESS”,
data: uoCallData,
},
});
const txHash = await smartAccountClient.waitForUserOperationTransaction(uo);
4.Biconomy SDK
在使用帳戶抽象進行建置時,Biconomy SDK 提供了最多的功能。它們允許開發人員客製化各種功能,為智慧合約帳戶設定多重簽名配置,並提供Bundler 和Paymaster 服務。其功能高度模組化,與競爭對手相比具有獨特的功能。它允許開發人員創建由一組約束支援的網關,從而使特定的SCA 交易能夠發生,而簽署者無需對每個交易進行簽署。這種特殊的功能增強了用戶體驗,並為在後台進行區塊鏈操作的應用程式奠定了基礎,同時用戶正在經歷完全的web2 之旅。 Biconomy 的AA 解決方案是該領域最受歡迎的解決方案之一,其SDK 處理了2500 萬筆元交易,幫助Web3 領域吸引了280 萬用戶。假設智慧帳戶和交易資料已經創建,以下是您如何使用Biconomy SDK 發送交易並檢索交易哈希:
const userOpResponse = await smartWallet.sendTransaction({
to: toAddress,
data: transactionData,
});
const { transactionHash } = await userOpResponse.waitForTxHash();
結論
總而言之,儘管帳戶抽象的想法已經存在了一段時間,但幫助開發人員大規模採用它的文件和工具仍然有限。儘管如此,它仍然是Web3 開發中最大的里程碑之一,並為新的、令人興奮的用例提供了基礎。
儘管目前主要需要依賴第三方來使用帳戶抽像功能,但模組化範式和生態系統的去中心化鼓勵越來越多的開發人員將其中一些工具整合到他們的應用程式中,甚至建立自己的工具— —建立智慧合約和鏈下實用程式來利用這項令人興奮的新技術。仍然非常需要簡化用戶入門並為加密貨幣的大規模採用做出貢獻,而帳戶抽象化是目前滿足這一需求的最佳工具,允許專案在用戶不知情的情況下利用區塊鏈技術。