请输入关键字:

热门搜寻:

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

日期:2024年7月10日 下午4:30

作者:Alfred,imToken Labs 开发者

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

2024 年 7 月 8 日至 11 日,以太坊社区会议(EthCC)在比利时布鲁塞尔举行,这是欧洲规模最大的以太坊年度活动,重点关注技术和社区。

本届以太坊社区会议(EthCC 7)共有超过 350 名活跃在区块链行业一线的意见领袖发表演讲,imToken Labs Alfred 受邀参与,并在大会上发表主题为「揭示未来:多链账户抽象解析」的演讲。

演讲概要速览:

  • 账户抽象(AA)主要包括两个关键点:签名抽象和支付抽象。签名抽象让用户可以选择任何喜欢的验证机制,支付抽象则允许使用多种交易支付选项。这种灵活性提供了更安全、更优的用户体验。
  • 在 ERC-4337 和原生 AA 中,「验证」阶段的入口点函数是固定的,而在「执行」阶段,只有原生 AA 中的入口点是固定的。验证交易的限制和执行交易的步骤在不同实现中有各自的特点和限制。
  • 在 EVM 兼容链上实施 ERC-4337,有两个关键区别:Rollup 设计中的协议差异和地址计算方式的差异,导致在 L1 和 L2 之间实现 ERC-4337 时出现难以注意的开发细节。

以下为演讲全文:

大家好,我是 Alfred,现任 imToken Labs 的区块链开发人员。今天,我向大家介绍 ERC-4337 和 Native AA 的概念,讨论它们之间的差异,并重点分析 L1 和 L2 的 4337 标准的主要区别。

账户抽象介绍

1. 什么是账户抽象

账户抽象(AA)主要包括两个关键点:签名抽象和支付抽象。

  • 签名抽象:用户可以选择任何喜欢的验证机制,而不仅限于某些数字签名算法(如 ECDSA)。
  • 支付抽象:用户可以使用多种交易支付选项,如使用 ERC-20 资产代替原生资产支付,或让第三方赞助交易。

这种灵活性提供了更安全、更优的用户体验。账户抽象的目标是通过多种方式实现这两个关键点。

2. 什么是 ERC-4337

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

目前,以太坊协议中的外部拥有账户(EOA)存在一些限制,例如固定的签名方法和支付设计。ERC-4337 通过引入更灵活的账户管理和交易处理方法来解决这些问题。

  • userOp 结构:在 ERC-4337 中,用户将 userOp 结构发送到 Bundler。Bundler 收集多个 userOp,并通过调用 handleOps 函数将它们发送到 EntryPoint 合约。
  • EntryPoint 合约:该合约像操作系统一样处理交易,主要功能包括:
  • 调用账户合约中的 validate 函数,确保 userOp 获得账户所有者授权。
  • 收取费用。
  • 调用账户合约中的 execute 函数,执行 userOp 的目标操作。

3. 什么是原生 AA

在以太坊中,账户分为 EOA 和合约账户。然而,在原生 AA 中,每个账户都是一个合约,且交易处理机制直接嵌入到区块链协议中。

各区块链网络中的 AA 设计:

  • ERC-4337 账户抽象:以太坊、Arbitrum、Optimism、Base、Linea、Scroll、Polygon PoS
  • 原生账户抽象遵循 ERC-4337:StarkNet & zkSync 时代
  • 具有隐私设计的原生账户抽象:Aztec

如果你对 Aztec Native AA 或 EIP-3074、EIP-7702 感兴趣,今天我们将重点关注 ERC-4337 之后的原生 AA。详细信息请参考我写的文章,列在文末。

ERC-4337 和原生 AA 的区别

1. 操作系统角色

AA OS 需要回答以下问题:

  • 谁决定 Gas 价格?
  • 谁决定交易顺序?内存池在哪里?
  • 谁触发入口点函数?
  • 什么决定了交易处理的流程?

在 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:验证用户操作
  • zkSync:验证交易、交易支付、执行交易
  • StarkNet:execute、validate、validate_declare、validate_deploy

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

3. 验证步骤的限制

由于验证交易没有成本限制(本质上,验证交易是调用视图函数),攻击者可以对内存池进行 DoS 攻击,从而破坏捆绑器(EIP-4337)或运算符 / 排序器(原生 AA)。

EIP-4337 定义了禁止哪些操作码以及如何限制存储访问。zkSync Era 放宽了一些 OpCode 的使用:

  • 合约逻辑只能访问自己的存储槽。如果账户合约的地址是地址 A,它可以访问:
  • 属于地址 A 的存储槽
  • 属于任何其他地址 A 的存储槽
  • 属于任何其他地址的存储槽 keccak256 (A || X):这意味着直接使用地址作为映射中的键(例如,映射 (address => value) ),相当于访问槽 keccak256 (A || X)。例如,ERC-20 合约中的资产余额。
  • 合约逻辑无法访问全局变量,例如区块号。StarkNet 也不允许外部合约调用。

4. 执行步骤的限制

在 zkSync 中,执行系统调用需要确认系统标志的存在。例如,增加 nonce 的唯一方法是与 NonceHolder 交互,而部署合约则需要与 ContractDeployer 交互。系统标志确保账户开发人员有意识地与系统合约进行交互。

在 ERC-4337 和 StarkNet 中,执行阶段没有特殊限制。

5. 随机数

  • 在 ERC-4337 中,入口点随机数的设计区分了 192 位密钥值和 64 位随机数值。
  • 在 zkSync 中,NonceHolder 系统合约管理 nonce,确保严格递增,即将随机数增加 1。
  • 在 StarkNet 中,nonce 也是严格递增的,但是没有抽象的 nonce 来由特定的合约管理。

6. 使用第一个事务进行部署

  • ERC-4337 在 userOp 结构中包含 initcode 字段,以在其第一个 userOp 中部署发送者(账户合约)。
  • 在 StarkNet 和 zkSync 中,用户必须将第一笔交易发送给算子 / 排序器来部署账户合约。

7. zkSync 中的特殊设计

如果你直接将 ETH 从以太坊 EOA 转移到 zkSync, 无需部署定制账户合约,你将收到一个具有相同地址的默认账户。该账户可以像以太坊 EOA 一样工作,并且也由相应的以太坊 EOA 的私钥控制。

这账户类型是版本 None 而不是 version1 。你不能调用 DefaultAccount 的函数,因为它没有在内核空间部署任何代码。

L1 的 4337 和 L2 的 4337 的区别

在 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

财华网所刊载内容之知识产权为财华网及相关权利人专属所有或持有。未经许可,禁止进行转载、摘编、复制及建立镜像等任何使用。

如有意愿转载,请发邮件至content@finet.com.hk,获得书面确认及授权后,方可转载。

更多精彩内容,请登陆
财华香港网(https://www.finet.hk/)
财华智库网(https://www.finet.com.cn)

现代电视(http://www.fintv.hk)

PANews

PANews是区块链和Web3.0领域领先的智库型信息平台,为行业用户提供具有国际视野的前沿资讯与报告。PANews优质多元的内容以图文、音频、视频等形式在全网多渠道覆盖,包含推特、微博、抖音、视频号等主流平台,旨在成为用户的Web3信息官。PANews同时还是腾讯新闻的内容合作伙伴,内容被福布斯、财新等媒体引用,获得腾讯新闻、今日头条、澎湃新闻等颁发的相关奖项。PANews的两位联合创始人均为福

相關文章

7月10日
全球支付的未来?万字解析Web3支付赛道
7月10日
微软和苹果放弃在OpenAI董事会的观察员席位
7月10日
10x Research:别慌,加密市场8月就反转
7月10日
致Web3项目创始人:发币之后,如何做好上所、做市与宣发工作?
7月10日
Wasabi Wallet:名为WasabiCoordinator的协调器正窃取用户资金,将很快发布新版本以防止此类攻击
7月10日
BTC恐贪指数跌至18个月以来最低,“大底部”已至?
7月10日
IOSG:图解AI与Web3的融合盛景
7月10日
分析:近期出售比特币的不是德国,而是其所属州之一
7月10日
人工智能初创公司Captions完成6000万美元融资,Index Ventures领投
7月9日
MetaMask开发公司Consensys发布新的开发工具包“MetaMask Delegation Toolkit”

视频

快讯

17:33
【盈喜】捷荣国际控股(02119.HK)料中期录母净利同比增长60%至65%
17:09
外汇局:6月银行结汇12217亿元人民币 售汇14705亿元人民币
17:08
中国石化:上半年原油产量同比增长0.6%
17:05
外汇局:上半年外资净增持境内债券接近800亿美元 为历史同期次高值
17:01
香港交易所将阿布扎比证券交易所及杜拜金融市场纳入认可证券交易所名单
16:59
中能控股(00228.HK):任命刘文选为董事会主席兼执行董事
16:56
【盈喜】中国淀粉(03838.HK)料上半年除税前利润约3.5亿人民币
16:42
中国生物制药(01177.HK)ESG表现获得标普全球、富时罗素认可
16:39
中国电信:6月移动用户数达41,685万户 当年累计净增908万户
16:37
翰森制药(03692.HK)阿美乐上市许可申请获国家药监局受理