账户抽象解析:多链实现差异与未来发展趋势

多链账户抽象解析:加密基础设施的未来展望

2024年7月8日至11日,欧洲规模最大的以太坊年度活动——以太坊社区会议在比利时布鲁塞尔举行,重点关注技术和社区发展。本届会议共有超过350名区块链行业一线意见领袖发表演讲,其中包括一位区块链开发人员就"揭示未来:多链账户抽象解析"这一主题进行了深入探讨。

加密基础设施的未来?多链账户抽象解析

演讲要点概览

  • 账户抽象(AA)的核心在于签名抽象和支付抽象。前者允许用户选择任意验证机制,后者则提供多样化的交易支付选项,共同提升了用户体验和安全性。

  • ERC-4337和原生AA在验证和执行阶段的入口点函数设计上存在差异。验证交易的限制和执行交易的步骤在不同实现中各有特点。

  • 在EVM兼容链上实施ERC-4337时,Rollup设计中的协议差异和地址计算方式的不同,导致在L1和L2之间实现时出现了一些细微但重要的开发细节。

账户抽象概述

账户抽象的本质

账户抽象主要包含两个关键点:

  1. 签名抽象:用户可自由选择喜欢的验证机制,不再局限于特定的数字签名算法。
  2. 支付抽象:用户可使用多种交易支付选项,如用ERC-20资产替代原生资产支付,或由第三方赞助交易。

这种灵活性为用户提供了更安全、更优化的体验。

ERC-4337简介

ERC-4337旨在解决以太坊外部拥有账户(EOA)的固有限制,引入了更灵活的账户管理和交易处理方法:

  • userOp结构:用户将userOp结构发送给Bundler,后者收集多个userOp并通过调用handleOps函数发送至EntryPoint合约。
  • EntryPoint合约:类似操作系统处理交易,主要功能包括验证userOp授权、收取费用和执行目标操作。

原生AA概述

在原生AA中,每个账户都是一个合约,交易处理机制直接嵌入区块链协议。不同区块链网络采用了不同的AA设计:

  • ERC-4337账户抽象:以太坊、Arbitrum、Optimism等多个网络
  • 遵循ERC-4337的原生账户抽象:StarkNet和zkSync Era
  • 具有隐私设计的原生账户抽象:Aztec

加密基础设施的未来?多链账户抽象解析

ERC-4337与原生AA的区别

操作系统角色

AA操作系统需要解决Gas价格、交易顺序、入口点函数触发等问题。ERC-4337通过Bundler和EntryPoint Contract协同完成,而原生AA中用户直接将userOps发送给官方服务器的操作员/排序器。

合约接口

ERC-4337和原生AA在验证阶段的入口点函数是固定的,但执行阶段只有原生AA的入口点是固定的。

验证步骤限制

为防止DoS攻击,各实现对验证交易设置了不同限制。例如,zkSync Era允许合约逻辑访问自身存储槽和特定地址的存储槽,但禁止访问全局变量。

执行步骤限制

zkSync要求执行系统调用时确认系统标志存在,而ERC-4337和StarkNet在执行阶段没有特殊限制。

随机数处理

各实现对随机数的处理方式不同,如ERC-4337区分密钥值和随机数值,zkSync和StarkNet则确保严格递增。

首次交易部署

ERC-4337在userOp结构中包含initcode字段,而StarkNet和zkSync要求用户将第一笔交易发送给操作员/排序器来部署账户合约。

加密基础设施的未来?多链账户抽象解析

L1与L2的4337实现差异

协议差异

L2需要将数据上传至L1以保证安全性和结算,这导致在预验证Gas中需要包含额外的上传费用,如何准确确定这些费用是一个重大挑战。

地址差异

不同链上的地址计算方式存在差异,例如zkSync ERA的create函数中地址编码方式与以太坊和OP汇总不同,StarkNet则使用独特的哈希函数进行地址计算。

此外,硬分叉中新增的操作码可能导致编译后的字节码发生变化,即使Solidity代码相同,也可能导致账户合约地址在以太坊和L2中不一致。

结语

账户抽象作为加密基础设施的重要发展方向,其在不同链上的实现各有特色。随着技术的不断演进,我们期待看到更多创新和优化,为用户带来更加便捷、安全的区块链体验。

加密基础设施的未来?多链账户抽象解析

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 2
  • 分享
评论
0/400
MeaninglessGweivip
· 08-01 07:56
又来划水了 说了等于白说
回复0
ser_we_are_ngmivip
· 08-01 07:47
ser ngmi frfr! aa竟然这么复杂!
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)