2024年7月8日至11日,比利時布魯塞爾將舉行以太坊社區會議(EthCC),這是歐洲最大的以太坊年度活動,重點關注技術和社區。會議邀請了超過350名區塊鏈產業領袖,imToken Labs的Alfred將發表關於多鏈帳戶抽象解析的演講。他介紹了ERC-4337和原始AA的概念,討論了它們之間的區別,並強調了L1和L2 4337標準的主要區別。演講涉及內部工作機制、驗證和執行階段的目的、隨機數設計以及在不同平台上實施ERC-4337的區別等方面的內容。
作者:Alfred,imToken Labs 開發者
2024 年7 月8 日至11 日,以太坊社區會議(EthCC)在比利時布魯塞爾舉行,這是歐洲規模最大的以太坊年度活動,重點關注技術和社區。
本屆以太坊社群會議(EthCC 7)共有超過350 名活躍在區塊鏈產業一線的領袖發表的演講,imToken Labs Alfred 受邀參與,並在大會上發表主題為「揭示未來:多鏈帳戶抽象解析”的演講。
演講概要:
雙方同意,在傳統農業領域合作。雙方同意為傳統農業提供多種選擇,包括更安全、更優質的服務和更持續的合作關係。 在ERC-4337 和原始AA 中,「驗證」階段的入口點函數是固定的,而在「執行」階段,只有原始AA 中的入口點是固定的。驗證交易的限制和執行交易的步驟必須在實現各自的特點和限制之下。 在EVM 相容鏈上實施ERC-4337,這兩個關鍵區別:Rollup 設計中的協定差異和位址計算方式的差異,導致在L1 和L2 之間實現ERC-4337 時出現難以注意的開發細節。
以下為演講全文:
大家好,我是Alfred,在imToken Labs 的區塊鏈開發者。今天,我向大家介紹ERC-4337 和Native AA 的概念,討論它們之間的差異,並重點分析了L1 和L2 4337 標準的主要差異。
帳戶摘要
1. 什麼是資料庫摘要
帳戶摘要(AA)主要包括兩個關鍵點:帳戶摘要和付款摘要。
簽章摘要:我們選擇任何人喜歡的驗證機制,而不僅限於某些數位簽章演算法(如ECDSA)。 支付範圍:使用者可以使用多種交易支付選項,例如使用ERC-20資產取代原始資產支付,或讓第三方贊助交易。
這種靈活的、更優的體驗。本端是基於經驗實現這兩個關鍵點。
2. 什麼是ERC-4337
目前,以太坊協議中的外部擁有帳戶(EOA)存在一些限制,例如固定的簽名方法和支付設計。 ERC-4337 透過引入更靈活的帳戶管理和交易處理方法來解決這些問題。
userOp 結構:在ERC-4337 中,使用者將userOp 結構傳送到Bundler。 Bundler 會收集多個userOp,並透過呼叫handleOps 函數傳送到EntryPoint 合約。 EntryPoint 合約:此合約就像作業系統一樣處理交易,主要功能包括: 呼叫帳戶合約中的驗證函數,確保使用者獲得帳戶所有者的授權。 收取費用。 呼叫帳戶合約中的執行函數,執行使用者操作的目標操作。
3. 什麼是新生AA
在以太坊中,帳戶分為EOA 和合約帳戶。然而,在原生AA 中,每個帳戶都是一個合約,且交易處理機制直接嵌入到區塊鏈協議中。
各區塊鏈策略的AA設計:
ERC-4337 帳號抽象:以太坊、Arbitrum、Optimism、Base、Linea、Scroll、Polygon PoS 原生帳號遵循ERC-4337:StarkNet & zkSync 時代具有隱私設計的原生起源抽象:阿茲特克
如果你對Aztec Native AA 或EIP-3074、EIP-7702 感興趣,今天我們將專注於ERC-4337 之後的原始AA。詳細資訊請參考我寫的文章,列在文末。
ERC-4337 和原生AA 的區別
作業系統角色
AA OS 需要回答以下問題:
是誰決定天然氣價格? 誰決定交易順序? 記憶體礦池在哪裡? 誰觸發入口點函數? 什麼決定了交易的流程?
在ERC-4337 中,這些角色透過Bundler 和EntryPoint Contract 協同完成。
在原始AA 中,使用者將其userOps 發送給官方伺服器的審核/排序器,而不是Bundler 和EntryPoint Contract。
在StarkNet中,Sequencer負責處理所有這些任務。
在zkSync 中,Era 與AA 實現的主要差異在於Operator 需要與bootloader(系統合約)配合工作。 Bootloader 開啟新區塊,定義其參數(包括區塊參數和其他Gas 參數),並接收來自Operator 工具以進行驗證。
2.合約接口
由於三個步驟的存在,帳戶合約介面在不同實作中是相似的,這些入口點函數只能由AA OS呼叫:
ERC-4337:驗證使用者操作zkSync:驗證交易、交易支付、執行交易StarkNet:執行、驗證、validate_declare、validate_deploy
在ERC-4337 和原始AA 中,「驗證」階段的入口點函數是固定的,而在「執行」階段,只有原始AA 中的入口點是固定的。
3.驗證步驟的目的
由於驗證交易沒有成本限制(本質上,驗證交易是呼叫視圖函數),它們可以對記憶體礦池進行DoS 攻擊,從而破壞捆綁器(EIP-4337)或真理/ 排序器(原始AA)。
EIP-4337 設定檔禁止哪些操作碼用於限制儲存存取。 zkSync Era 放寬了一些OpCode 的使用:
合約邏輯關係只能存取自己的儲存槽。如果帳戶合約的地址是地址A,它可以存取: 屬於地址A 的存儲槽屬於您的地址A 的存儲槽屬於常見的地址的存儲槽keccak256 (A || X):這意味著直接使用地址作為映射中的鍵(例如,映射(address => value) ),相當於存取槽keccak256 (A || X)。例如,ERC-20 合約中的資產餘額。 合約邏輯無法存取全域變量,即代幣號。 StarkNet 也不允許外部合約呼叫。
4.執行步驟的目的
在zkSync中,系統呼叫需要確認系統標誌的存在。 ,增加nonce的唯一方法是與NonceHolder交互,而部署協定則需要與ContractDeployer互動。系統標誌確保帳戶本國的意識地與系統協定互動。
在ERC-4337 和StarkNet 中,執行階段沒有特殊限制。
5. 隨機數
在ERC-4337 中,入口點隨機數的設計區分了192 位元金鑰值和64 位元隨機數值。 在zkSync 中,NonceHolder 系統合約管理nonce,確保嚴格遞增,即將隨機數增加1。 在StarkNet中,nonce也是嚴格遞增的,但是沒有抽象的nonce來自特定的合約管理。
6. 使用第一個事務進行部署
ERC-4337 在userOp 結構中包含initcode 字段,在其中第一個userOp 中部署發送者(帳戶合約)。 在StarkNet 和zkSync 中,使用者必須將第一筆交易傳送給算子/ 排序器來部署帳戶合約。
7. zkSync 中專題設計
如果你將ETH 從以太坊EOA 轉移到zkSync,而無需部署客製化帳戶合約,你將收到一個必須地址的預設帳戶。該帳戶可以像以太坊EOA 一樣工作,並且也由相應的以太坊EOA 的私鑰控制。
這個帳戶類型是版本None 而不是version1。您不能呼叫DefaultAccount 的函數,因為它沒有在核心空間部署任何程式碼。
L1的4337和L2的4337的區別
在EVM 相容鏈上實施ERC-4337 這兩個關鍵區別:協定差異和位址差異。
1.協議差異
Rollup 設計中,L2 需要將資料上傳到L1 以進行即時結算。在ERC-4337 的背景下,此上傳過程相關的費用,即L1 安全費和blob 費用,應該被列入內部預驗證Gas 中。確定預驗證Gas 中適當的上傳費用是一項重大挑戰。
2. 地址
zkSync ERA 的創建函數中的地址編碼方式與以太坊和OP匯總不同。此外,StarkNet 使用獨特的雜湊函數進行位址計算。在EVM 相容鏈上的ERC-4337 背景中,我們通常假設位址計算在各鏈上是一致的。然而,有一個難以注意的細節需要在以太坊和L2 中的ERC-4337 實現之間的帳戶合約地址不同。
關鍵問題是硬分叉意味著新的操作碼。例如,如果L2 鏈不支援上海硬分叉,則在編譯時未指定EVM 版本,push0 的引入會導致字節碼改變,即使Solidity 程式碼是相同的。
結語
以下是一些資源,供你了解更多有關你個人資料摘要的資訊。請隨時聯絡我,如果你有任何疑問,可以在Twitter上找到我(@murmurlu)。
《Aztec帳戶摘要介紹》,請查閱:
https://medium.com/@ChiHaoLu/introduction-of-aztec-account-abstraction-98535c9edf2e
《StarkNet 帳戶摘要介紹》,請參閱:
https://medium.com/taipei-ethereum-meetup/introduction-of-starknet-account-abstraction-2c343b561d6e
《zkSync帳戶摘要介紹》,請查閱:
https://medium.com/taipei-ethereum-meetup/zksync-%E4%B8%AD%E7%9A%84%E5%8E%9F%E7%94%9F-account-abstraction-%E4%BB% 8B%E7%B4%B9-bc7269f8893a
《Starknet與zkSync:比較分析》,請查閱:
https://medium.com/nethermind-eth/starknet-and-zksync-a-comparative-analysis-d4648786256b
資訊來源:0x資訊編譯自網際網路。版權歸作者imToken所有,未經許可,不得轉載