作者:Alfred,imToken Labs 開發者

2024 年 7 月 8 日至 11 日,以太坊社區會議(EthCC)在比利時布魯塞爾舉行,這是歐洲規模最大的以太坊年度活動,重點關注技術和社區。
本屆以太坊社區會議(EthCC 7)共有超過 350 名活躍在區塊鏈行業一線的意見領袖發表演講,imToken Labs Alfred 受邀參與,並在大會上發表主題為「揭示未來:多鏈賬戶抽象解析」的演講。
演講概要速覽:
以下為演講全文:
大家好,我是 Alfred,現任 imToken Labs 的區塊鏈開發人員。今天,我向大家介紹 ERC-4337 和 Native AA 的概念,討論它們之間的差異,並重點分析 L1 和 L2 的 4337 標准的主要區別。
1. 什麽是賬戶抽象
賬戶抽象(AA)主要包括兩個關鍵點:簽名抽象和支付抽象。
這種靈活性提供了更安全、更優的用戶體驗。賬戶抽象的目標是通過多種方式實現這兩個關鍵點。
2. 什麽是 ERC-4337

目前,以太坊協議中的外部擁有賬戶(EOA)存在一些限制,例如固定的簽名方法和支付設計。ERC-4337 通過引入更靈活的賬戶管理和交易處理方法來解決這些問題。
3. 什麽是原生 AA
在以太坊中,賬戶分為 EOA 和合約賬戶。然而,在原生 AA 中,每個賬戶都是一個合約,且交易處理機制直接嵌入到區塊鏈協議中。
各區塊鏈網絡中的 AA 設計:
如果你對 Aztec Native AA 或 EIP-3074、EIP-7702 感興趣,今天我們將重點關注 ERC-4337 之後的原生 AA。詳細信息請參考我寫的文章,列在文末。
1. 操作系統角色
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 和原生 AA 中,「驗證」階段的入口點函數是固定的,而在「執行」階段,只有原生 AA 中的入口點是固定的。
3. 驗證步驟的限制
由于驗證交易沒有成本限制(本質上,驗證交易是調用視圖函數),攻擊者可以對内存池進行 DoS 攻擊,從而破壞捆綁器(EIP-4337)或運算符 / 排序器(原生 AA)。
EIP-4337 定義了禁止哪些操作碼以及如何限制存儲訪問。zkSync Era 放寬了一些 OpCode 的使用:
4. 執行步驟的限制
在 zkSync 中,執行系統調用需要確認系統標志的存在。例如,增加 nonce 的唯一方法是與 NonceHolder 交互,而部署合約則需要與 ContractDeployer 交互。系統標志確保賬戶開發人員有意識地與系統合約進行交互。
在 ERC-4337 和 StarkNet 中,執行階段沒有特殊限制。
5. 隨機數
6. 使用第一個事務進行部署
7. zkSync 中的特殊設計
如果你直接將 ETH 從以太坊 EOA 轉移到 zkSync, 無需部署定制賬戶合約,你將收到一個具有相同地址的默認賬戶。該賬戶可以像以太坊 EOA 一樣工作,並且也由相應的以太坊 EOA 的私鑰控制。
這賬戶類型是版本 None 而不是 version1 。你不能調用 DefaultAccount 的函數,因為它沒有在内核空間部署任何代碼。
在 EVM 兼容鏈上實施 ERC-4337 有兩個關鍵區別:協議差異和地址差異。
1. 協議差異
Rollup 設計中,L2 需要將數據上傳到 L1 以進行安全和結算。在 ERC-4337 的背景下,與此上傳過程相關的費用,例如 L1 安全費和 blob 費用,應該 被包括在内在預驗證 Gas 中。確定預驗證 Gas 中適當的上傳費用是一個重大挑戰。
2. 地址差異

zkSync ERA 的 create 函數中的地址編碼方式與以太坊和 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
内容来源:PANews
財華網所刊載內容之知識產權為財華網及相關權利人專屬所有或持有。未經許可,禁止進行轉載、摘編、複製及建立鏡像等任何使用。
如有意願轉載,請發郵件至content@finet.com.hk,獲得書面確認及授權後,方可轉載。
下載財華財經APP,把握投資先機
https://www.finet.com.cn/app
更多精彩内容,請點擊:
財華網(https://www.finet.hk/)
財華智庫網(https://www.finet.com.cn)
現代電視FINTV(https://www.fintv.hk)