點擊時代時報
業界動態

ERC-4337:探索帳戶抽象的五個主要技術組件

2023/05/20

點擊時代時報/記者許雅涵 報導

ERC-4337:探索帳戶抽象的五個主要技術組件

新聞視界時報-記者王秉呈

ERC-4337標準有五個關鍵元件值得關注:UserOperationBundlerEntryPointAggregatorPaymaster

1UserOperation

簡單來說:UserOperation捕捉用戶的意圖和操作,包括與發送方、有效負載和gas費相關的資訊。由於它的設計是為了避免更改共識,乙太坊團隊選擇創建一個全新的結構,以獲取代表使用者發送的交易所包含的全部必要元素。

為了避免混淆,他們特意沒有將其稱為“交易”。

更具體地說:智慧合約錢包現在可以創建叫做UserOperation(userOp)的偽交易對象,代表使用者所期望的交易意圖,而無需初始化傳統交易。

UserOperation不能訪問任何在模擬和執行之間可能發生變化的資訊,例如當前區塊時間、雜湊值、區塊號等。這是為了確保它的有效性,並且能夠為其鏈上交易執行支付費用。

UserOperation同樣只允許訪問與發送方位址相關的資料。

與交易類似:UserOperation包含sender、to、calldata、maxFeePerGas、maxPriorityFee、signature和nonce欄位。

與交易不同:nonce和signature欄位的使用不是由協議定義的,而是由各帳戶實現定義的。

UserOperation記憶體池

簡單來說:UserOperation記憶體池是一個等待網路處理的未執行UserOperations的池。UserOperations被發往UserOperation記憶體池,而非傳統的公共記憶體池。

 

更具體地說:UserOperation記憶體池是任一個UserOperation作為真正交易上鏈之前的最後一個“停靠站”,然後,稱為bundler(下文將詳細介紹)的新質押者可以從該記憶體池裡提取各UserOperation,充當了EOA角色,支付gas費並將UserOperations發送到共識層作為交易執行。

這是一個專用的高級UserOperation記憶體池,僅供UserOperations使用,也稱為canonical記憶體池。該記憶體池遵循並嚴格執行ERC-4337規則。ERC也允許為UserOperations提供不遵循canonical記憶體池規則的替代記憶體池(alt-mempool)。

遵守ERC規則的UserOperations被發送到canonical記憶體池。那些不遵守ERC規則的可以被發送到其他規則不同的替代記憶體池。這些替代記憶體池中的UserOperations僅被發送給該池的參與者。

Bundlers可以通過加入白名單或加入另一個不同ID的替代記憶體池來應對canonical記憶體池的異常情況。Bundlers可以自由加入canonical記憶體池(他們必須無一例外地遵守ERC規則)及替代池。

注:UserOperations記憶體池的最終版本尚未完全定義,因此預計會有進一步的變化。然而,一個完全去中心化的記憶體池對於協定的採用和健康來說是必不可少的。

2Bundler

簡單來說:Bundler充當著它從canonical記憶體池和替代記憶體池中所提取的全部UserOperations的EOA的角色,Bundler將UserOperations發送到EntryPoint合約進行驗證和完整性檢查,然後,最後進入我們在ERC-4337出現之前的世界裡所習慣的交易流程。

更具體地說:Bundler是一個專門的操作員,它監聽UserOperation記憶體池和所有記憶體池,提取多個UserOperations,將它們打包在一起,並將交易包發送給EntryPoint合約執行。這看起來非常像從EOA到智慧合約的交易,其中UserOperations的執行就如內部交易。“from”地址將是Bundler,“to”地址將是EntryPoint合約。

Bunders選擇將哪些UserOperations對象包含在他們的打包交易中,基於與今天乙太坊的區塊建設者所使用的類似的價值最大化邏輯。

成為Bundler的經濟模型/動機是什麼?

交易上鏈時,Bundler充當“from”位址,正因如此,Bundler將使用ETH為交易包支付gas費。Bundler作為所有單個UserOperation執行的一部分,隨後會獲得費用補償。

在接收UserOperation之前,Bundler將模擬它來驗證簽名,確保UserOperation可以支付費用,並確保UserOperation在模擬和執行時以相同的方式運行。要靠Bundler來避免包含驗證失敗的UserOperations,避免吸收那些無法支付的gas成本。

注意:在ERC-4337框架中,區塊建設者也可以充當Bundlers角色,以提供更強大的執行保證,但這並不是必需的。如果沒有這種更強大的執行保證,交易包將被發送到公共池,並且有可能發生搶先交易,導致交易包交易失敗。

{{AD}}

免費架站 - 點擊時代網頁設計,新聞視界時報嚴選推薦,AI 世代限時免費架設專屬網站,立即免費諮詢

3Paymaster

簡單來說:Paymaster是一個可選的質押者,可以為其他使用者的交易支付費用。為什麼?Paymaster可以為乙太坊交易帶來許多有趣的新功能,例如:

應用開發者可以很容易地為他們的用戶補貼費用,例如作為一種獲客手段。

用戶可以使用ERC-20代幣或信用卡或其他訂閱服務等鏈下支付方式輕鬆支付gas費。

更具體地說:ERC-4337流程並沒有強制要求必須使用paymaster。UserOperation使用paymaster通常有以下兩種選擇:

驗證Paymaster:這些paymaster提供與鏈下流程相關聯的gas抽象。例如,它可以讓使用者用信用卡或訂閱服務支付交易費用,而不會損害他們的帳戶託管。

存款Paymaster:這些paymaster提供與鏈上ERC-20代幣相關聯的gas抽象。

Paymaster要麼必須限制其存儲使用,要麼必須進行質押。

注:為了防止濫用,系統將降低速度或暫時封禁提交大量無效UserOperations的Paymaster。為了防止實體的“女巫攻擊”,全域實體需要在系統中進行質押,這使得拒絕服務(DoS)攻擊的成本很高。該質押不會被罰沒,可隨時提取,但會受延遲限制。不訪問全域存儲的全域實體例外。

4Aggregator

簡單來說:Aggregator是一類特殊的參與者,利用helper智慧合約來處理批量UserOperation簽名,並將它們轉換成一個簽名,也就是將其聚合。

更具體地說:Aggregator是一個受合約帳戶信任的helper智慧合約,用於驗證聚合簽名。UserOperations包由Aggregator在單個步驟中進行驗證,而不是單獨驗證每個簽名。Aggregator旨在提高大規模交易處理的效率和成本。

當前的現實:ERC-4337的交易量還不夠高,不足以顯現簽名聚合的好處,但交易量正在快速增長,一旦達到臨界值,Aggregator就會成為一個關鍵的利益相關者,促進大規模交易。

壓縮的實現過程超出了本文的討論範圍。然而,它已經整合進ERC-4337的設計中。最流行的壓縮方法就是使用BLS簽名聚合。

從用戶的角度來看,他們看不出有任何不同,但是開發人員需要在智慧帳戶中部署BLS簽名邏輯。

5EntryPoint

簡單來說:EntryPoint合約是一個單例合約,驗證並執行發送給它的UserOperations包。它檢查並確保由bundler發送的提交到鏈上的所有UserOperations都是真實有效的。

更具體地說:EntryPoint合約是所有符合ERC-4337標準的智慧合約錢包必須使用的全域入口點,以便在EVM上進行交易。這一概念類似於單個質押存款合約。

EntryPoint的使用簡化了智慧合約錢包使用的邏輯,將確保安全所需的更複雜功能推至入口點,而不是錢包本身。其核心目的是防止錢包在進入網路之前進行不必要或未經授權的操作。

EntryPoint序列

下圖展示了EntryPoint是如何管理Bundler發送的UserOperation包的。通常有兩個階段,但在使用aggregator的情況下,會增加一個階段。

 

EntryPoint序列相對簡單,有兩個階段:

序列中的每個迴圈都有自己的角色,如下:

迴圈1Aggregator迴圈

如果一個交易包使用了aggregator,那麼EntryPoint會首先檢查aggregator。由Entry Point來驗證簽名。

迴圈2:驗證迴圈

首先,它會檢查合約帳戶是否存在。如果不存在,它就會創建一個。

如果沒有定義paymaster序列驗證Contract Account在EntryPoint中是否有足夠的存款來支付gas費。如果存款充足,它就會為UserOperation付費。

如果定義了paymaster:序列驗證paymaster在EntryPoint合約中是否有足夠的存款。如果存款充足,那麼合約將驗證UserOperation。

迴圈3:執行迴圈

它使用callData調用合約帳戶。

如果定義了paymaster,它將調用paymaster中的自訂費用邏輯。

只有在UserOperation通過序列迴圈的考驗後,才能最終上鏈。

 

結論:

雖然為了避免混淆,ERC-4337特意使用了不包含“交易”字眼的用語,但實際上,它可以被視為使用者交易上鏈的替代流程。一旦把所有組成部分連接起來,協議就有能力向現有EOA交易流程引入新的使用者意圖層。

AA(帳戶抽象)錢包的用戶將把他們的意圖傳遞給UserOperations記憶體池。Bundlers將這些意圖轉換為網路可以像以前一樣處理的簽名交易。

雖然對於開發者來說,這看起來像是一個有額外步驟的“交易”,但對於使用者來說,這就是手動輸入用戶名/密碼並將其記在筆記本上以確保安全,或使用OAuth只點擊幾下就可訪問web3應用程式之間的區別。

 

 

你可能也想看

創業理財

理財新手第一步:緊急預備金該存多少、怎麼存?

想開始理財卻不知從何下手?比起急著投資,先存好「緊急預備金」更重要。本文說明緊急預備金該準備多少、放在哪、怎麼存,替你的財務打好第一道防線。

創業理財

公司一直沒成長?企業想突破營收瓶頸,先做好這6件事

不少企業成立多年後,營收開始停滯不前,明明持續努力開發客戶,卻始終無法突破成長瓶頸。事實上,企業無法持續成長,往往不是市場沒有需求,而是經營模式、品牌定位、數位行銷及管理制度需要調整。本文整理企業突破營收瓶頸的六大關鍵策略,協助中小企業建立長期競爭力,打造穩健成長的商業模式。

創業理財

創業第一年最容易犯的10個錯誤!超過一半的新創企業都曾踩過的經營陷阱

創業成功不只是有好的產品或服務,更重要的是避免經營上的致命錯誤。根據許多中小企業與創業顧問的觀察,新創企業倒閉往往不是因為沒有市場,而是資金管理、客戶開發、成本控制及經營策略出現問題。本文整理創業第一年最常見的10個錯誤,協助創業者提前避開經營陷阱,提高企業存活率。

創業理財

現金流比營收更重要!為什麼很多公司有訂單卻還是倒閉?創業者一定要懂的財務觀念

許多人認為,只要公司有訂單、有營收,就代表經營沒有問題。然而,許多企業真正倒閉的原因並非沒有生意,而是現金流出現危機。當應收帳款無法及時回收、固定支出持續增加,即使營收持續成長,也可能面臨資金周轉困難。本文解析現金流的重要性,以及創業者應掌握的財務管理重點,幫助企業建立穩健的經營基礎。