# 多链账户抽象技术深度解析2024年7月8日至11日,欧洲规模最大的以太坊年度活动——以太坊社区会议(EthCC)在比利时布鲁塞尔举行,重点关注技术和社区发展。本届会议共有超过350名区块链行业一线的意见领袖发表演讲,其中包括一场主题为"揭示未来:多链账户抽象解析"的演讲。## 演讲要点概览- 账户抽象(AA)的两个核心概念:签名抽象和支付抽象。前者允许用户选择任意验证机制,后者支持多种交易支付选项,共同提升了用户体验和安全性。- ERC-4337和原生AA在验证和执行阶段的入口点函数设计存在差异。验证交易的限制和执行交易的步骤在不同实现中各有特点。- 在EVM兼容链上实施ERC-4337时,Rollup设计中的协议差异和地址计算方式的差异是两个关键区别,这导致在L1和L2之间实现时需要注意一些细微的开发细节。## 账户抽象技术详解### 账户抽象的核心概念账户抽象主要包含两个关键点:1. 签名抽象:允许用户选择任意喜欢的验证机制,不再局限于特定的数字签名算法。2. 支付抽象:支持使用多种交易支付选项,如使用ERC-20代币支付或由第三方赞助交易费用。这种灵活性大大提升了用户体验和安全性,是账户抽象技术的核心目标。### ERC-4337标准解析ERC-4337通过引入更灵活的账户管理和交易处理方法,解决了以太坊外部拥有账户(EOA)的一些固有限制。其核心组件包括:- userOp结构:用户将该结构发送给Bundler,后者收集多个userOp并调用EntryPoint合约的handleOps函数。- EntryPoint合约:作为交易处理的核心,主要功能包括验证userOp授权、收取费用、执行目标操作。### 原生账户抽象在原生AA中,每个账户都是一个合约,交易处理机制直接嵌入区块链协议。目前,各大区块链网络对AA的实现方式不同:- 遵循ERC-4337的账户抽象:以太坊、Arbitrum、Optimism等- 遵循ERC-4337的原生账户抽象:StarkNet和zkSync Era- 具有隐私设计的原生账户抽象:Aztec## ERC-4337与原生AA的对比分析### 操作系统角色ERC-4337通过Bundler和EntryPoint Contract协同完成交易处理,而原生AA中用户直接将userOps发送给官方服务器的操作员/排序器。- StarkNet:Sequencer负责所有交易处理任务- zkSync Era:Operator需与bootloader(系统合约)配合工作### 合约接口设计账户合约接口在不同实现中相似,主要包括验证和执行两个阶段。ERC-4337和原生AA在验证阶段的入口点函数都是固定的,但执行阶段只有原生AA的入口点是固定的。### 验证步骤限制为防止DoS攻击,各实现对验证交易设置了不同限制:- ERC-4337定义了禁止的操作码和存储访问限制- zkSync Era允许特定存储槽的访问,但禁止访问全局变量- StarkNet不允许外部合约调用### 执行步骤限制- zkSync:需确认系统标志存在才能执行系统调用- ERC-4337和StarkNet:执行阶段无特殊限制### 随机数管理- ERC-4337:区分192位密钥值和64位随机数值- zkSync:由NonceHolder系统合约管理,确保严格递增- StarkNet:严格递增,但无专门合约管理### 首次交易部署- ERC-4337:通过userOp结构中的initcode字段部署账户合约- StarkNet和zkSync:需发送首笔交易给算子/排序器来部署账户合约## L1与L2的ERC-4337实现差异在EVM兼容链上实施ERC-4337时,主要存在两个关键差异:1. 协议差异:L2需将数据上传至L1以确保安全和结算,相关费用(如L1安全费和blob费用)应包含在预验证Gas中,这增加了费用估算的复杂性。2. 地址差异:不同链的地址计算方式存在差异,可能导致账户合约地址在以太坊和L2中不一致。特别是在硬分叉引入新操作码时,如果L2不支持该硬分叉,即使Solidity代码相同,编译后的字节码也可能不同。以上分析揭示了多链环境下账户抽象技术的复杂性和多样性。随着技术的不断发展,这些差异可能会进一步扩大或收敛,值得持续关注和研究。
深度解析:多链账户抽象技术的现状与挑战
多链账户抽象技术深度解析
2024年7月8日至11日,欧洲规模最大的以太坊年度活动——以太坊社区会议(EthCC)在比利时布鲁塞尔举行,重点关注技术和社区发展。本届会议共有超过350名区块链行业一线的意见领袖发表演讲,其中包括一场主题为"揭示未来:多链账户抽象解析"的演讲。
演讲要点概览
账户抽象(AA)的两个核心概念:签名抽象和支付抽象。前者允许用户选择任意验证机制,后者支持多种交易支付选项,共同提升了用户体验和安全性。
ERC-4337和原生AA在验证和执行阶段的入口点函数设计存在差异。验证交易的限制和执行交易的步骤在不同实现中各有特点。
在EVM兼容链上实施ERC-4337时,Rollup设计中的协议差异和地址计算方式的差异是两个关键区别,这导致在L1和L2之间实现时需要注意一些细微的开发细节。
账户抽象技术详解
账户抽象的核心概念
账户抽象主要包含两个关键点:
签名抽象:允许用户选择任意喜欢的验证机制,不再局限于特定的数字签名算法。
支付抽象:支持使用多种交易支付选项,如使用ERC-20代币支付或由第三方赞助交易费用。
这种灵活性大大提升了用户体验和安全性,是账户抽象技术的核心目标。
ERC-4337标准解析
ERC-4337通过引入更灵活的账户管理和交易处理方法,解决了以太坊外部拥有账户(EOA)的一些固有限制。其核心组件包括:
userOp结构:用户将该结构发送给Bundler,后者收集多个userOp并调用EntryPoint合约的handleOps函数。
EntryPoint合约:作为交易处理的核心,主要功能包括验证userOp授权、收取费用、执行目标操作。
原生账户抽象
在原生AA中,每个账户都是一个合约,交易处理机制直接嵌入区块链协议。目前,各大区块链网络对AA的实现方式不同:
ERC-4337与原生AA的对比分析
操作系统角色
ERC-4337通过Bundler和EntryPoint Contract协同完成交易处理,而原生AA中用户直接将userOps发送给官方服务器的操作员/排序器。
合约接口设计
账户合约接口在不同实现中相似,主要包括验证和执行两个阶段。ERC-4337和原生AA在验证阶段的入口点函数都是固定的,但执行阶段只有原生AA的入口点是固定的。
验证步骤限制
为防止DoS攻击,各实现对验证交易设置了不同限制:
执行步骤限制
随机数管理
首次交易部署
L1与L2的ERC-4337实现差异
在EVM兼容链上实施ERC-4337时,主要存在两个关键差异:
协议差异:L2需将数据上传至L1以确保安全和结算,相关费用(如L1安全费和blob费用)应包含在预验证Gas中,这增加了费用估算的复杂性。
地址差异:不同链的地址计算方式存在差异,可能导致账户合约地址在以太坊和L2中不一致。特别是在硬分叉引入新操作码时,如果L2不支持该硬分叉,即使Solidity代码相同,编译后的字节码也可能不同。
以上分析揭示了多链环境下账户抽象技术的复杂性和多样性。随着技术的不断发展,这些差异可能会进一步扩大或收敛,值得持续关注和研究。