📢 #Gate观点任务# 第八十七期精彩啟程!調研 Roam (ROAM) 項目,在Gate.io動態發佈您的看法觀點,瓜分 $100 GT!
💰️ 選取10名優質發帖用戶,每人輕鬆贏取 $10 GT 獎勵!
👉 參與方式:
調研$ROAM項目,發表你對項目的見解。
帶上$ROAM現貨交易鏈接:https://www.gate.io/trade/ROAM_USDT
推廣$ROAM HODLer Airdrop 空投活動,僅需持有1 GT即可免費參與瓜分200,000 $ROAM空投:https://www.gate.io/hodler-airdrop/2244?airdrop_name=ROAM
推廣$ROAM充值福利活動,零Gas費充值即可瓜分20,000 $ROAM獎池:https://www.gate.io/announcements/article/43637
建議創作的主題方向:
🔹 什麼是 Roam?
🔹 Roam 解決了哪些 WiFi 漫遊網絡的痛點?
🔹 $ROAM 的代幣經濟模型是怎樣的?
🔹 Roam 具備哪些核心優勢?
您可以選擇以上一個或多個方向發表看法,也可以跳出框架,分享主題以外的獨到見解。
請點擊鏈接查看項目官網和白皮書:https://www.gate.io/announcements/article/43637
注意:帖子不得包含除
如何讓賬戶抽象賦能基礎設施服務十億級用戶?
作者:Albert He, BlockPI Cheif Scientist;編譯: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)。 **
這篇文章的剩餘部分,我將深入探討賬戶抽象化的概念,以及我們如何利用這一概念優化BlockPI 的基礎設施。
**除了上文提到的EOA 的三個不便之處,公鑰和私鑰之間的綁定關係也是一個問題。 **私鑰是訪問EOA 的唯一方式,如果丟失,就沒有辦法恢復私鑰。這意味著如果私鑰丟失,所有與之關聯的資產將無法找回。
**此外,EOA 在執行單個交易中的線性任務時也面臨約束。 **例如,如果用戶希望在一個動作中批准、交換和取消批准代幣,他們需要執行三個單獨的交易,這既不高效又耗時。
好消息是,以上所有的問題都可以通過智能合約錢包解決。智能合約錢包是一種實現AA 的特殊類型的智能合約。它被設計為在以太坊網絡上作為用戶的錢包,並提供更適應和個性化的方式來管理他們的資金。只要以太坊智能合約能夠實現的邏輯,智能合約錢包就可以提供所需的功能。
具體來說,智能合約錢包的交易可以打包成一個鏈上交易共享Gas 成本,如果有第三方願意支付,甚至可以沒有Gas 成本。一個操作可以促進在其智能合約錢包內執行順序任務。智能合約錢包能夠支持任何簽名的加密算法,並設置恢復代碼等。
隨著人們對智能合約錢包的所有好處的討論,以太坊社區實際上從一開始就一直在研究合約錢包。儘管已經提出了許多EIP 來探索賬戶抽象化,但直到2021 年都還沒有建立統一的標準。以下是幾個最具代表性的提案。
EIP-86
最初由Vitalik Buterin 在2017 年創建。實現了一組變化,為「抽象化」簽名驗證和nonce 檢查服務,允許用戶創建執行任何所需簽名/nonce 檢查的「賬戶合約」。
EIP-2938
創建於2020 年。這個EIP 的標題是賬戶抽象化。這個EIP 詳細描述了AA 的概念。它引入了一種新型的交易,即AA 交易。這種交易將由EntryPoint 地址初始化,並調用AA 錢包合約。通過這樣做,它提供了一個統一的規範,並將AA 引入到以太坊共識中。更具體地說,它在以太坊共識中添加了兩個新的操作碼、三個全局變量和一個不同的有效負載結構。
EIP-3074
創建於2020 年。這個EIP 引入了兩個EVM 指令,AUTH 和AUTHCALL。 AUTH 根據ECDSA 簽名設置一個名為authorized 的上下文變量。 AUTHCALL 以被授權的賬戶身份發送一個調用。這允許一個智能合約代表EOA 發送交易。但是這對於AA 來說還不是一個完美的解決方案。在讚助交易期間進行原生價值轉移方面,EIP-3074 存在一定的限制。如果你失去了對EOA 的訪問權,你將無法恢復你的資產,如果被盜,所有的資產需要轉移到一個新的賬戶。
由於需要在共識層進行改變或者並不全面等主要原因,上述的所有想法都沒有被正式採納到以太坊協議中。因此,以太坊社區繼續探索如何在不改變共識的情況下將AA 引入到以太坊協議中,最終創建了EIP 4337 。
ERC — 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。
(來源:官方文檔:
在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。這種驗證算法仍需要優化。
**除此之外,還有一些問題需要解決。其中一個問題是Bundlers 如何處理交易失敗。 **在Bundler 將幾個UserOperations 打包在一起後,Bundler 首先模擬交易以檢查是否會回滾,然後計算由Sender 或Paymaster 返回的Gas 費用是否大於交易支付的Gas 費用。如果有利可圖,Bundler 就將這批UserOperations 一起作為一個交易提交給區塊構建器。然而,交易可能仍然會失敗,導致Bundler 支付Gas 費用但沒有從EntryPoint 收到退回的Gas。例如,用戶可能向不同的Bundlers 發送操作。如果任何操作有利可圖並且它們的模擬成功,Bundlers 願意在鏈上提交它們。這意味著如果一個UserOperation 同時被不同的Bundlers 提交。只有一筆交易會成功,只有一個Bundler 會從EntryPoint 接收到Gas 費用,所有其他Bundlers 都會因鏈上失敗而損失Gas。雖然有人可能會爭辯說,用戶不應該這樣做,這樣的行為會被認為是惡意攻擊,Bundler 可以禁止Sender 地址,並拒絕來自這個地址的任何未來請求,但這並不是一個合理的方法,因為用戶可能無意中提交了這個操作。這樣的問題需要在代碼中得到適當的解決,可能通過開發一個未完成的公共mempool 網絡。此外,由於突然的Gas 波動,即使交易已經成功提交並被模擬為有利可圖,Bundlers 也可能面臨損失。
**另一件事是從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(用Type 編寫的Alto Bundler),Etherspot(用Type 編寫的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 內的服務可以分別部署。
**為了適應AA 的大規模採用,基礎設施提供者首先需要提供至少兩個基本服務,即Bundler 服務和Paymaster 服務。 **
在Bundler 服務中,基礎設施提供者可能需要與Bundlers 一起開發一個私人mempool,以確保良好的用戶體驗。具體來說,基礎設施提供者需要整合各種Bundler 客戶端,以確保Bundler 服務的健壯性。這些Bundler 客戶端使用不同的編程語言開發,但它們都提供一套由ERC-4337 核心團隊指定的標準JSON RPC 方法。目前,可用的方法不多,但未來將會增加更多的方法。基礎設施服務提供商應該為這些API 提供持續、完整的支持。
此外,優化和適應Bundler API 與原始節點客戶端RPC 之間的關係也非常重要。我們知道,目前的節點客戶端對AA 的響應性適應性優化並不好。某些Bundler API 方法需要AA 的數據索引才能使用。例如,通過哈希查找UserOperation 需要對所有UserOperations 進行索引。否則,這個單一請求的硬件消耗將會非常高,請求返回也將花費很長的時間。
除此之外,基礎設施提供者也需要整合不同的Paymaster 服務,為客戶提供免Gas 的用戶體驗,並為他們提供不同的服務選項。這需要與第三方Paymaster 服務提供商進行良好的溝通和集成工作,同時,根據市場需求,也可以設計基於現有Paymaster 服務的更方便的集成解決方案。其他服務,如聚合簽名,錢包工廠等,也是未來發展和集成的可能方向。
目前,BlockPI 實際上正在努力實現以上所有的目標。不僅如此,我們正在與社區中的幾乎所有Bundler 客戶端和Paymaster 服務提供商進行溝通,並已經把將AA 服務集成到BlockPI Network 作為我們的首要任務。我們還正在與AA 錢包開發者進行深入的討論,以了解用戶需求。因此,在我們前進的道路上,我們真誠歡迎與所有的Bundlers、Paymasters 和錢包進行合作和交流。我們的總體目標是與其他人共同建設和發展AA 生態系統,以我們最大的努力推動它的增長和發展。通過共同努力,我們希望為整個AA 行業做出有意義的貢獻,並支持其持續的發展進程。因為畢竟,我們的最終使命是作為行業的先驅,推動AA 生態系統的發展,從而使web2 用戶可以無障礙地享受他們的區塊鏈體驗。
總結
從AA 的角度看,我們處於一個新的歷史時刻。雖然我們在大道上鋪好了路,但還沒有很多乘客。目前,AA 的應用還處於初級階段,ERC-4337 為用戶和開發者在以太坊平台上使用和構建AA 提供了強大的框架,然而,仍然有許多挑戰和不確定性需要被解決。
**AA 的基礎設施提供商需要為其用戶提供Bundler 服務和Paymaster 服務,並且需要整合各種Bundler 客戶端和Paymaster 服務提供商,以確保服務的健壯性。 **為了優化API 和節點客戶端之間的響應性,可能需要對AA 數據進行索引,以減少單個請求的硬件消耗。為了提供更好的用戶體驗,基礎設施提供商還需要為用戶提供更多的服務選項。
**在未來,隨著AA 生態系統的不斷發展和公共mempool 的出現,選擇和打包UserOperations 的策略將變得更加複雜。 **每個Bundler 都會根據自己的利益優先考慮自己的工作,並與其他Bundler 進行競爭。 Bundlers 需要設置自己的交易Gas 參數,這會影響塊構建器執行交易的優先級。在不同的市場Gas 價格和Gas 波動性條件下,Bundlers 可能會有不同的打包策略。
雖然這些挑戰的解決方案還不確定,但我們可以確信的是,AA 行業的發展和開發者的共同努力最終將找到解決方案。作為基礎設施的構建者,BlockPI 希望在AA 行業的發展中成為解決問題的人,無論是作為開發者,還是通過為其他開發者提供友好的AA 基礎設施。我們的使命是推動AA 生態系統的發展,使Web2 的用戶可以無障礙地享受他們的區塊鏈體驗。