風險提示:防範以"虛擬貨幣""區塊鏈"名義進行非法集資的風險。——銀保監會等五部門
資訊
發現
搜索
登錄
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
查看行情
如何讓賬戶抽象賦能基礎設施,服務十億級用戶?
火星财经
特邀专栏作者
2023-06-28 03:06
本文約6347字,閱讀全文需要約10分鐘
道路已經鋪好,但乘客還不多。

原文作者:Albert He, BlockPI Cheif Scientist

原文編譯:MarsBit,MK

原文作者:

原文編譯:MarsBit,MK

原文作者:

原文編譯:MarsBit,MK

原文作者:

原文編譯:MarsBit,MK

無論是牛市還是熊市,以太坊生態系統一直在持續建設,並不斷自我優化。其中,賬戶抽象(AA)在近年來已經成為非常重要的進步,並且已經滲透到以太坊生態系統的各個組成部分,包括應用、基礎設施、用戶和開發者。

我們可以預見到,廣泛採用AA 可以降低區塊鏈使用案例的門檻,從而將web2 用戶體驗引入到web3 行業。

為了迎接形成一個價值數十億的AA 市場的可能性,BlockPI 計劃將資源投入到將AA 整合到其基礎設施服務中。通過構建AA 的整合,我們的目標是為AA 用戶提供更便利、更高效的方式來與他們在區塊鏈上的合約錢包賬戶進行交互,同時也將BlockPI 定位為行業的領導者。

在這篇文章中,我將深入探討我們對AA 的理解,並從基礎設施服務提供商的角度分享思考。

EOA 和智能合約錢包

AA 的概念源於EOA 賬戶的限制。 EOA 賬戶(外部擁有賬戶)是以太坊中的典型用戶賬戶,由公鑰(區塊鏈地址)表示,可通過私鑰訪問。它是以太坊生態系統的主要組成部分,允許用戶與智能合約交互並在網絡上執行交易。然而,使用EOA 對人們來說可能具有挑戰性,某些不便可能會影響用戶體驗。

EOA 的第一個不便之處與Gas 的使用有關。每筆交易都會花費用戶大量的ETH 作為Gas 費用(Gas 價格25 Gwei 的簡單ETH 轉賬費用為0.5 美元,合約交互或Gas 價格更高的費用更多)。這使得小額交易的交易費用非常昂貴,尤其是在網絡擁堵高峰期。此外,只有ETH 可以用來支付Gas,這意味著用戶必須在他們的錢包中擁有ETH,對許多用戶來說,這是一個重要的入門障礙。

EOA 的第二個不便之處是無法進行條件交易,除非使用其他智能合約來實現某些邏輯。例如,如果用戶想設置定時週期轉賬,他們必須將ETH 轉移到具有此功能的第三方智能合約中來實現此功能。

EOA 的第三個不便之處是簽名加密算法。以太坊網絡使用一種特定的數字簽名算法,稱為secp 256 k 1 ,以確保交易的真實性和安全性。這是硬編碼到系統中的,用戶無法選擇使用其他算法。

因此,從這些問題出發,人們開始嘗試尋找解決方案。智能合約錢包(例如MetaMask 和Argent)是這些努力的產物,通過使用以太坊智能合約來增強用戶賬戶功能,解決了許多EOA 的限制。然而,這樣的解決方案還有一些缺點,主要是需要用戶為交易支付Gas 費,以及智能合約錢包的普及問題。

基於這些挑戰,以太坊開始嘗試引入一個新的概念,即賬戶抽象化。賬戶抽象化的目標是在協議級別解決這些問題,而不是依賴於智能合約或者其他中間件。這就是我們現在所說的賬戶抽象化(AA)。

EIP-86 

這篇文章的剩餘部分,我將深入探討賬戶抽象化的概念,以及我們如何利用這一概念優化BlockPI 的基礎設施。

EIP-2938 

除了上文提到的EOA 的三個不便之處,公鑰和私鑰之間的綁定關係也是一個問題。私鑰是訪問EOA 的唯一方式,如果丟失,就沒有辦法恢復私鑰。這意味著如果私鑰丟失,所有與之關聯的資產將無法找回。

EIP-3074 

此外,EOA 在執行單個交易中的線性任務時也面臨約束。例如,如果用戶希望在一個動作中批准、交換和取消批准代幣,他們需要執行三個單獨的交易,這既不高效又耗時。

好消息是,以上所有的問題都可以通過智能合約錢包解決。智能合約錢包是一種實現AA 的特殊類型的智能合約。它被設計為在以太坊網絡上作為用戶的錢包,並提供更適應和個性化的方式來管理他們的資金。只要以太坊智能合約能夠實現的邏輯,智能合約錢包就可以提供所需的功能。

ERC — 4337 

具體來說,智能合約錢包的交易可以打包成一個鏈上交易共享Gas 成本,如果有第三方願意支付,甚至可以沒有Gas 成本。一個操作可以促進在其智能合約錢包內執行順序任務。智能合約錢包能夠支持任何簽名的加密算法,並設置恢復代碼等。

隨著人們對智能合約錢包的所有好處的討論,以太坊社區實際上從一開始就一直在研究合約錢包。儘管已經提出了許多EIP 來探索賬戶抽象化,但直到2021 年都還沒有建立統一的標準。以下是幾個最具代表性的提案。

最初由Vitalik Buterin 在2017 年創建。實現了一組變化,為「抽象化」簽名驗證和nonce 檢查服務,允許用戶創建執行任何所需簽名/nonce 檢查的「賬戶合約」。

創建於2020 年。這個EIP 的標題是賬戶抽象化。這個EIP 詳細描述了AA 的概念。它引入了一種新型的交易,即AA 交易。這種交易將由EntryPoint 地址初始化,並調用AA 錢包合約。通過這樣做,它提供了一個統一的規範,並將AA 引入到以太坊共識中。更具體地說,它在以太坊共識中添加了兩個新的操作碼、三個全局變量和一個不同的有效負載結構。

創建於2020 年。這個EIP 引入了兩個EVM 指令,AUTH 和AUTHCALL。 AUTH 根據ECDSA 簽名設置一個名為authorized 的上下文變量。 AUTHCALL 以被授權的賬戶身份發送一個調用。這允許一個智能合約代表EOA 發送交易。但是這對於AA 來說還不是一個完美的解決方案。在讚助交易期間進行原生價值轉移方面,EIP-3074 存在一定的限制。如果你失去了對EOA 的訪問權,你將無法恢復你的資產,如果被盜,所有的資產需要轉移到一個新的賬戶。

由於需要在共識層進行改變或者並不全面等主要原因,上述的所有想法都沒有被正式採納到以太坊協議中。因此,以太坊社區繼續探索如何在不改變共識的情況下將AA 引入到以太坊協議中,最終創建了EIP 4337 。

EIP-4337 最初在2021 年9 月提出,並在2023 年3 月被授權為ERC-4337 。它的作者包括Vitalik Buterin,Yoav Weiss,Kristof Gazso,Namra Patel,Dror Tirosh,Shahaf Nacson 和Tjaden Hess。

EIP-4337 是一個改變遊戲規則的提案,它引入了AA,而無需對核心以太坊協議做任何改變。 EIP-4337 引導了ERC-4337 標準,構建者可以使用它來實現他們自己的智能合約錢包,還包括一些額外的基礎設施,包括「Bundlers」和UserOperation 內存池。通過這樣做,它實際上在一個更高級的系統中復制了交易內存池的功能。用戶不再發送交易,而是提交UserOperation 對象,這些對象然後可以打包成一個單獨的交易並包含在以太坊鏈中。

以下是官方文檔對ERC-4337 的更具體的技術解釋,以及一些更好理解的評論。

ERC-4337 的定義和關鍵角色

UserOperation — 描述代表用戶發送的交易的結構。為避免混淆,它沒有被命名為「交易」。它被發送給Bundler 以與其他UserOperations 打包在一起。然後,該包被作為一個單一的交易發送給區塊創建者。

Sender — 發送新UserOperation 的合約賬戶。智能合約錢包必須實現ERC-4337 的IAccount 接口。

EntryPoint — 執行UserOperations 包的單例合約。 Bundlers/Clients 將支持的EntryPoint 加入白名單。此合約由Infinitism 團隊批准並審核,負責處理所有UserOperations 並連接其他合約,包括Wallet Factory、Aggregator、Paymaster。它在大多數兼容EVM 的鏈上都將有相同的地址。

Bundler — 一個從內存池中捆綁多個UserOperations 並創建EntryPoint.handleOps() 交易的節點(區塊構建器)。協議層的所有驗證節點不必都是Bundler。 Bundler 服務可以獨立於區塊構建器運行,並使用RPC 發送打包的UserOperations。

Aggregator — 由賬戶信任的幫助合約,用於驗證聚合簽名。 Bundlers/Clients 將支持的聚合器加入白名單。聚合器必須實現ERC-4337 的IAggregator 接口。

Paymaster — 一個合約,如果在EntryPoint 合約中存放了足夠的ETH,它可以為Sender 支付UserOperation 的Gas 費用。 Paymaster 實現了有效的Gas 抽象。 Paymaster 必須實現ERC-4337 的Paymaster 接口。 Paymaster 可以有自己的邏輯與Sender 達成交易。例如,Sender 支付USDC 給Paymaster,然後Paymaster 用ETH 贊助其UserOperations。實際上,只要Paymaster 同意且在技術上可行,任何ERC 20 代幣甚至其他鏈上的代幣都可以支持。

Wallet Factory — 一個可以被調用以為ERC-4337 用戶創建智能合約錢包的合約。部署錢包工廠是無需許可的。作為鏈上組件,它開放於公眾審計和透明審查。廣泛使用的Wallet Factory 應由專業人士全面審計。

以下圖表解釋了EntryPoint 合約如何與其他角色互動。

Bundlers 調用EntryPoint 合約的handleOps 函數,該函數以UserOperation 為輸入。

handleOps 在鏈上驗證UserOperation,檢查是否由指定的智能合約錢包地址簽名,以及錢包是否有足夠的Gas 來補償Bundler。

如果驗證成功,handleOps 將根據UserOperation 的calldata 中定義的函數簽名和輸入參數執行智能合約錢包函數。

另一方面,當Bundler 使用EOA 觸發handleOps 函數時,會產生Gas 費用。智能合約錢包可以從自己的賬戶餘額中支付Gas 費用給Bundlers,或者請求Paymaster 合約代其支付。沒有足夠Gas 的UserOperations 無法通過目標智能合約錢包中的驗證過程,從而在執行前失敗。即使有足夠的Gas,UserOperations 在執行過程中也可能失敗,例如,由於運行時錯誤。無論執行是否成功,EntryPoint 合約都會將Gas 費用支付給觸發handleOps 函數的Bundler。

(來源:官方文檔:https://eips.ethereum.org/EIPS/eip-4337)

在ERC-4337 生效後,用戶現在有兩種方式來啟動區塊鏈交易。一種是原始的方式,其中EOA 啟動交易。另一種是使用ERC-4337 標准通過Bundler 啟動UserOperation,然後由Bundler 將其與其他UserOperations 打包並在鏈上發起。以下流程圖說明了普通EOA 發送交易和ERC-4337 合約錢包發送UserOperation 的區別。

道路已經鋪好,但乘客還不多

ERC-4337 為用戶和開發人員在以太坊平台上使用和構建AA 提供了一個強大的框架。儘管這個框架是一個重要的前進步驟,但仍然需要解決和消除一些挑戰和不確定性。

AA 的採用還處於初級階段。根據Dune ERC-4337 分析面板(ERC-4337 Account Abstraction from @niftytable),只有65 k+ 的UserOperations 在鏈上執行,其中90% 來自Polygon。因此,此時執行的UserOperation 數量仍然非常小,其中大部分為開發者的測試,只有少部分歸因於用戶。我們注意到,已經整合了AA 的產品仍處於初期階段。同時,可以看到Bundler 的利潤為負(以MATIC 計算為-700)。這是因為Polygon 上有一些Bundler 沒有正確計算預驗證gas。這種驗證算法仍需要優化。

另一件事是從AA 中提取的最大可提取價值(MEV)。在以太坊的背景下,MEV 通常指的是礦工或其他交易處理器通過在一個區塊中操縱交易的順序或在區塊中包含他們自己的交易所能提取的價值。有人注意到MEV 的邏輯也可以應用到AA 上,因為Bundlers 可以自由地排序UserOperations 嗎?然而,這是有條件的,需要有足夠的UserOperations 被打包在一起,Bundlers 才能提取MEV。現在整個AA 市場還處於初期階段,因此Bundler MEV 也可以被認為是初期階段。總的來說,AA 行業可能會發展出兩個方向:一個是類似於以太坊主網的,有像Flashbots,Ultra Sound 和BloXroute 這樣的參與者參與其中,另一個是形成Bundler 共識以執行公平的排序。而後者的方式將完全消除AA 中MEV 的可能性。

打包算法

未來的發展

公共mempool

儘管AA 生態系統已經在運行,但仍需要完成許多開發工作。觀察整個AA 生態系統,目前最大的缺口就是公共mempool。 Etherspot 團隊,也就是Skandha Bundler 客戶端的開發者,目前正在開發公共mempool 的p2p 網絡。預計公共mempool 的p2p 網絡將在今年8 月可用。

打包算法

在此過程中,以太坊基金會已經資助了由專注和勤奮的開發人員組成的幾個AA 開發團隊。到目前為止,已經開發出多個版本的Bundler 客戶端,並且現在可用。其中一些在產品成熟度方面處於高度發展階段。他們是Candide(用Python 編寫的Voltaire Bundler),Pimlico(用Typescript 編寫的Alto Bundler),Etherspot(用Typescript 編寫的Skandha Bundler),Stackup(用Go 編寫的Stackup-Bundler)等等。

現在,讓我們深入討論一下更詳細的打包算法。目前,由於UserOperations 的數量較少,Bundlers 可以採用簡單直接的打包邏輯,例如固定的時間間隔或每個包裹中的UserOperations 數量。然而,隨著UserOperations 數量的增加,特別是在公共mempool 的引入後,選擇和打包UserOperations 的策略變得更加複雜。原因很簡單:沒有像區塊鏈那樣的共識協議,Bundler 組成了一個黑暗森林,每個Bundler 都根據自己的利益優先處理工作,並與彼此競爭。私有mempool,相應地對應公共mempool,更有可能首先出現。因為當從公共mempool 打包UserOperations 不利可圖時,將私有mempool 中的UserOperations 打包在一起就可能變得有利可圖。這樣,Bundler 在打包時就具有競爭優勢。

此外,隨著公共mempool 逐漸被接納,其中的UserOperations 將具有不同的特性,例如,不同的Gas 利潤預期和鏈上執行複雜性。 Bundlers 將進行鏈下模擬,以評估各種UserOperations 組合的利潤性,從而建立他們獨特的打包策略。打包更多的UserOperations 有可能產生更大的利潤,但也增加了驗證失敗的風險。即使驗證通過,鏈上執行失敗的風險仍然存在。而打包較少的UserOperations 則正好相反。 Bundlers 需要設置自己的交易Gas 參數,這會影響區塊構建者執行交易的優先級。在不同的市場Gas 價格和Gas 波動性條件下,Bundlers 可能會有不同的打包策略。同時,這些驗證和策略計算需要消耗本地硬件計算資源和區塊鏈節點資源。 Bundlers 還需要確保用戶有良好的體驗,確保用戶在提交UserOperation 後不會面臨過長的延遲。

雖然這些挑戰的解決方案仍然不確定,但我們可以確信的是,AA 行業的發展和開發者的共同努力最終會找到解決方案。作為基礎設施構建者,BlockPI 希望能在AA 行業的發展中解決問題,無論是作為開發者,還是為其他開發者提供友好的AA 基礎設施。

AA 對鏈上交易行為中的各種角色進行了抽象,包括發送者、Bundlers、Gas 支付者、合約錢包、簽名者,從而允許用戶在使用區塊鏈時有更高的自由度。而且,AA 內的服務可以分別部署。

總結

在Bundler 服務中,基礎設施提供者可能需要與Bundlers 一起開發一個私人mempool,以確保良好的用戶體驗。具體來說,基礎設施提供者需要整合各種Bundler 客戶端,以確保Bundler 服務的健壯性。這些Bundler 客戶端使用不同的編程語言開發,但它們都提供一套由ERC-4337 核心團隊指定的標準JSON RPC 方法。目前,可用的方法不多,但未來將會增加更多的方法。基礎設施服務提供商應該為這些API 提供持續、完整的支持。

總結

除此之外,基礎設施提供者也需要整合不同的Paymaster 服務,為客戶提供免Gas 的用戶體驗,並為他們提供不同的服務選項。這需要與第三方Paymaster 服務提供商進行良好的溝通和集成工作,同時,根據市場需求,也可以設計基於現有Paymaster 服務的更方便的集成解決方案。其他服務,如聚合簽名,錢包工廠等,也是未來發展和集成的可能方向。

總結


錢包