# 多链账户抽象解析:加密基础设施的未来展望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中不一致。## 结语账户抽象作为加密基础设施的重要发展方向,其在不同链上的实现各有特色。随着技术的不断演进,我们期待看到更多创新和优化,为用户带来更加便捷、安全的区块链体验。
账户抽象解析:多链实现差异与未来发展趋势
多链账户抽象解析:加密基础设施的未来展望
2024年7月8日至11日,欧洲规模最大的以太坊年度活动——以太坊社区会议在比利时布鲁塞尔举行,重点关注技术和社区发展。本届会议共有超过350名区块链行业一线意见领袖发表演讲,其中包括一位区块链开发人员就"揭示未来:多链账户抽象解析"这一主题进行了深入探讨。
演讲要点概览
账户抽象(AA)的核心在于签名抽象和支付抽象。前者允许用户选择任意验证机制,后者则提供多样化的交易支付选项,共同提升了用户体验和安全性。
ERC-4337和原生AA在验证和执行阶段的入口点函数设计上存在差异。验证交易的限制和执行交易的步骤在不同实现中各有特点。
在EVM兼容链上实施ERC-4337时,Rollup设计中的协议差异和地址计算方式的不同,导致在L1和L2之间实现时出现了一些细微但重要的开发细节。
账户抽象概述
账户抽象的本质
账户抽象主要包含两个关键点:
这种灵活性为用户提供了更安全、更优化的体验。
ERC-4337简介
ERC-4337旨在解决以太坊外部拥有账户(EOA)的固有限制,引入了更灵活的账户管理和交易处理方法:
原生AA概述
在原生AA中,每个账户都是一个合约,交易处理机制直接嵌入区块链协议。不同区块链网络采用了不同的AA设计:
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中不一致。
结语
账户抽象作为加密基础设施的重要发展方向,其在不同链上的实现各有特色。随着技术的不断演进,我们期待看到更多创新和优化,为用户带来更加便捷、安全的区块链体验。