多鏈帳戶抽象技術詳解:加密錢包安全與便利迎來革新

多鏈帳戶抽象技術解析:加密基礎設施的未來發展方向

2024年7月8日至11日,以太坊社區年度盛會EthCC在比利時布魯塞爾舉行。作爲歐洲規模最大的以太坊技術與社區交流活動,本屆EthCC邀請了350多位區塊鏈行業一線專家發表演講。其中,一位區塊鏈開發者就"多鏈帳戶抽象"這一主題做了深入闡述。

演講要點概括如下:

  • 帳戶抽象(AA)的核心在於籤名抽象和支付抽象。前者讓用戶可靈活選擇驗證機制,後者則提供多種交易支付選項,從而帶來更安全便捷的用戶體驗。

  • ERC-4337和原生AA在驗證和執行階段的入口函數設計上存在差異。各自的實現方式對驗證交易和執行步驟都有不同的限制。

  • 在EVM兼容鏈上實施ERC-4337時,需要特別注意Rollup協議差異和地址計算方式差異這兩個關鍵點,它們會導致L1和L2之間實現細節的不同。

以下是演講的詳細內容:

帳戶抽象技術簡介

1. 帳戶抽象的定義

帳戶抽象(AA)主要包含兩個核心概念:籤名抽象和支付抽象。

籤名抽象允許用戶自由選擇驗證機制,不再局限於特定的數字籤名算法。這意味着用戶可以使用更多樣化的方式來驗證自己的身分和交易,比如生物識別、多重籤名等。支付抽象則提供多樣化的交易支付方式,如使用ERC-20代幣支付或由第三方贊助交易費用。ERC-20代幣是以太坊上最常見的代幣標準,允許創建可互換的數字資產。這種靈活性可以大幅提升安全性和用戶體驗。

2. ERC-4337標準解析

目前以太坊的外部擁有帳戶(EOA)在籤名方法和支付設計上存在一些局限性。EOA是由私鑰控制的普通用戶帳戶,只能使用固定的籤名算法和支付方式。ERC-4337通過引入更靈活的帳戶管理和交易處理機制來解決這些問題。

ERC-4337的主要特點:

  • userOp結構:用戶將userOp發送給Bundler,後者匯總多個userOp並調用EntryPoint合約的handleOps函數進行處理。userOp是用戶操作的縮寫,包含了用戶想要執行的交易信息。Bundler是一個中間服務,負責收集和打包用戶操作。

  • EntryPoint合約:作爲交易處理的"操作系統",主要功能包括:

    1. 調用帳戶合約的validate函數,驗證userOp的授權
    2. 收取費用
    3. 調用帳戶合約的execute函數,執行userOp的目標操作

EntryPoint合約是ERC-4337的核心,它統一了所有帳戶抽象操作的入口點。

3. 原生AA簡介

在原生AA中,每個帳戶都是一個合約,交易處理機制直接嵌入區塊鏈協議。這意味着帳戶抽象功能被內置到區塊鏈的底層設計中,而不是作爲附加層實現。

目前各區塊鏈網路的AA實現方式:

  • 採用ERC-4337的網路:以太坊、Arbitrum、Optimism、Base、Linea、Scroll、Polygon PoS
  • 遵循ERC-4337的原生AA:StarkNet和zkSync Era
  • 具有隱私設計的原生AA:Aztec

這些網路中,Arbitrum、Optimism、Base、Linea、Scroll都是以太坊的Layer擴展解決方案,旨在提高交易處理速度和降低費用。Polygon PoS是一個側鏈網路,爲以太坊提供擴展性支持。StarkNet和zkSync Era是使用零知識證明技術的Layer解決方案,而Aztec則專注於提供隱私保護功能。

加密基礎設施的未來?多鏈帳戶抽象解析

ERC-4337與原生AA的對比分析

1. 系統角色設計

AA系統需要解決以下關鍵問題:

  • Gas價格的決定機制
  • 交易順序和內存池的管理
  • 入口點函數的觸發方式
  • 交易處理流程的定義

Gas是以太坊網路中的計算單位,用於衡量執行操作所需的計算資源。內存池是存儲待處理交易的臨時區域。

ERC-4337通過Bundler和EntryPoint合約協同完成這些功能。而在原生AA中,用戶直接將userOps發送給官方服務器的操作員/排序器。

以StarkNet爲例,Sequencer負責處理所有這些任務。zkSync Era則由Operator與bootloader(系統合約)配合完成相關工作。Sequencer和Operator都是負責交易排序和執行的節點。

2. 合約接口設計

不同實現中,帳戶合約接口存在相似之處,均包含以下步驟的入口函數:

  • ERC-4337:驗證用戶操作
  • zkSync:驗證交易、交易支付、執行交易
  • StarkNet:execute、validate、validate_declare、validate_deploy

ERC-4337和原生AA在"驗證"階段的入口函數是固定的,而"執行"階段只有原生AA的入口點是固定的。

3. 驗證階段的限制

由於驗證交易沒有成本限制,可能導致內存池遭受DoS攻擊。DoS攻擊是指通過大量無效請求來耗盡系統資源,使正常請求無法得到處理。因此各實現對驗證階段都設置了一些限制。

ERC-4337定義了禁用的操作碼和存儲訪問限制。操作碼是區塊鏈虛擬機中的指令,用於執行特定操作。zkSync Era則放寬了部分OpCode的使用,但仍限制合約邏輯只能訪問自身存儲槽,且無法訪問全局變量。StarkNet同樣不允許外部合約調用。

4. 執行階段的限制

zkSync要求執行系統調用時確認系統標志,以確保帳戶開發者有意識地與系統合約交互。系統調用是指請求操作系統核心服務的過程。ERC-4337和StarkNet在執行階段則沒有特殊限制。

5. 隨機數處理

各實現在隨機數設計上也有差異:

  • ERC-4337區分了192位密鑰值和64位隨機數值
  • zkSync由NonceHolder系統合約管理nonce,確保嚴格遞增
  • StarkNet的nonce也是嚴格遞增,但沒有專門的合約管理

隨機數(nonce)在區塊鏈中用於防止交易重放攻擊,每次交易都會使用一個新的nonce值。

6. 首次交易部署

  • ERC-4337在userOp結構中包含initcode字段,可在首個userOp中部署帳戶合約
  • StarkNet和zkSync則要求用戶將首筆交易發送給操作員/排序器來部署帳戶合約

部署帳戶合約是指在區塊鏈上創建一個新的智能合約實例,作爲用戶的帳戶。

7. zkSync的特殊設計

zkSync允許用戶直接將ETH從以太坊EOA轉移到zkSync,無需部署自定義帳戶合約就能獲得一個默認帳戶。該帳戶與以太坊EOA地址相同,可像EOA一樣運作,由相應的以太坊EOA私鑰控制。

加密基礎設施的未來?多鏈帳戶抽象解析

L1與L2上ERC-4337實現的差異

在EVM兼容鏈上實施ERC-4337時,主要存在兩個關鍵差異:

1. 協議差異

Rollup設計中,L2需要將數據上傳到L1以保證安全性和結算。L1指主鏈(如以太坊主網),L2是在L1之上構建的擴展層。在ERC-4337中,與此相關的費用(如L1安全費和blob費用)應包含在預驗證Gas中。blob是二進制大對象的縮寫,用於存儲大量數據。如何在預驗證Gas中準確計入這些上傳費用是一個重大挑戰。

2. 地址差異

zkSync ERA的create函數中地址編碼方式與以太坊和OP匯總不同。StarkNet則使用獨特的哈希函數計算地址。

在EVM兼容鏈上,ERC-4337通常假設地址計算在各鏈上是一致的。然而,硬分叉中新增的操作碼可能導致字節碼變化,進而引起以太坊和L2中ERC-4337實現的帳戶合約地址不一致。硬分叉是區塊鏈協議的重大更新,可能導致不兼容的變化。例如,如果L2鏈不支持上海硬分叉,且編譯時未指定EVM版本,push0的引入就會改變字節碼。字節碼是智能合約的機器級代碼,直接被區塊鏈虛擬機執行。

加密基礎設施的未來?多鏈帳戶抽象解析

加密基礎設施的未來?多鏈帳戶抽象解析

查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 讚賞
  • 5
  • 分享
留言
0/400
空投舔狗vip
· 7小時前
数字货币就是命咯~天选打工人!
回復0
倒霉的矿工vip
· 7小時前
挖过ETH,矿机炸了,现在专业社群吹水
回復0
WenMoon42vip
· 8小時前
区块链炒币老韭菜 EthCC咋还吹?
回復0
资深老韭当家vip
· 8小時前
eth党永远不会倒
回復0
养老金毁灭者vip
· 8小時前
啥时候能把钱包用起来像支付宝一样简单?
回復0
交易,隨時隨地
qrCode
掃碼下載 Gate APP
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)