Zelcore

ERC-4337 架构:EntryPoint、Bundler 和 Paymaster,轻松读懂

阅读约 11 分钟
ERC-4337 架构:EntryPoint、Bundler 和 Paymaster,轻松读懂

在 Ethereum 上,账户抽象有两个值得记住的标准地址。EntryPoint v0.6 的地址是 0x5FF137D4b0FDCD49DcA30c7CF57E578a026d2789。2024 年初部署的 EntryPoint v0.7 位于 0x0000000071727De22E5E9d8BAf0edAc6f37da032。主网上的每笔 ERC-4337 交易,以及 Arbitrum、Optimism、Base、Polygon 和大多数其他 EVM 链上的每笔此类交易,都会经过这两个单例合约之一。了解这些合约的作用以及周边另外五个角色,您就掌握了 ERC-4337。

这是智能账户系列的第 2 篇。第 1 篇介绍了为什么 EOA 不适合作为默认方案。本文将深入介绍其内部机制:六个角色、UserOperation 结构体、智能账户兑换代币时实际发生的过程、v0.6 到 v0.7 的变化、Paymaster、公用 alt-mempool 与私有 Bundler,以及您应预期承担的额外成本。

六个角色,一图看懂

ERC-4337 将 EOA 一步完成的操作拆分为六个协同参与的角色。它们都不需要 Ethereum 硬分叉——整个系统由合约和链下基础设施组成。

请记住这六个角色。本文其余内容讲的都是它们之间如何协作。

UserOperation 结构体

UserOperation 是一组便于通过 JSON-RPC 传输的字段。签名后,它表达了用户意图,但尚未将其提交到 L1。v0.7 的布局包含 11 个逻辑字段:

签名方案由钱包决定。常见方案是使用 secp256k1 的 ECDSA;P-256/通行密钥验证、多重签名、社交恢复阈值和会话密钥签名者也都可以通过同一接口实现。这种灵活性正是该设计的核心。

全流程:智能账户如何将 USDC 兑换为 ETH

跟随一次实际兑换,看看各个角色如何依次参与。

  1. 用户在钱包界面点击“兑换”。 钱包构建一个 UserOperation:sender = 0xUserSafe、callData = swapUSDCforETH(amount),目标为 Uniswap。
  2. 估算 Gas。 钱包通过 Bundler 的 RPC 调用 eth_estimateUserOperationGas。Bundler 根据 EntryPoint 模拟该操作,并返回三项 Gas 限额。
  3. 用户签名。 钱包将 UserOp 与 EntryPoint 地址和链 ID 一起进行哈希处理,提示用户签名(可用通行密钥、硬件密钥等),然后附上签名。
  4. 提交。 已签名的 UserOp 通过 eth_sendUserOperation 发送给一个或多个 Bundler。它会进入 alt-mempool——这是一个独立于 Ethereum 常规交易内存池的 P2P 网络。
  5. Bundler 模拟。 Bundler 使用 eth_call 针对 simulateValidation 重新模拟操作,并检查 ERC-7562 存储访问规则:验证期间,UserOp 只能访问自己的存储,否则 Bundler 就可能遭到恶意攻击。
  6. 打包。 Bundler 将该 UserOp 与最多约 10 个其他 UserOp 一起打包,通过一次 handleOps([...userOps], beneficiary) 调用发送给 EntryPoint。
  7. 链上执行。 EntryPoint 循环处理:对每个操作,调用发送方的 validateUserOp,扣除预存 Gas,然后执行 callData。随后,智能账户发起 Uniswap 兑换。
  8. 退款。 EntryPoint 将未使用的 Gas 退还给发送方(或 Paymaster),并向 Bundler 的受益人地址付款。

如果第 5 步失败,Bundler 会丢弃该操作,用户会看到 AAxx 错误代码。最常见的有 AA21(未支付预存 Gas)、AA23(签名错误)、AA25(nonce 无效)、AA33(Paymaster 回滚)和 AA40(超出验证 Gas 限额)。请记住这些错误代码,您会遇到它们。

EntryPoint v0.6 与 v0.7

v0.6 于 2023 年 3 月推出,地址为 0x5FF1…2789。它可以正常工作,但有三个一直存在的问题:单个 paymasterAndData 数据块混杂了三个 Gas 维度、initCode 打包方式不便,以及 Gas 记账导致发送方多付费用。v0.7 修复了这三个问题。

值得了解的 v0.7 主要变化:

v0.6 仍在运行,也仍有人使用——许多钱包直到 2024 年下半年才推出兼容 v0.7 的模块。大多数链会让两个版本的 EntryPoint 并行运行多年。

Paymaster:谁来支付 Gas

Paymaster 是一种在 EntryPoint 中存有 ETH 质押,并同意为符合其策略的 UserOp 承担 Gas 费用的合约。主要有三种类型:

Paymaster 的 validatePaymasterUserOp 会在 EntryPoint 的验证阶段运行。如果它回滚,您会收到 AA33。如果其质押不足,EntryPoint 会罚没其质押,损失则由 Bundler 承担——因此 Bundler 会维护 Paymaster 声誉名单。ERC-7562 将这些声誉规则编纂成规范,让 Bundler 内存池能够抵御垃圾信息。同样的基本机制也说明了为什么 DeFi 授权与多重签名的安全管理能直接适用于 4337 体系:威胁相同,只是外层机制有所不同。

公共 alt-mempool 与私有 bundler

将 UserOp 提交到链上有两种方式。

公共 alt-mempool:符合 ERC-7562 的 bundler 会通过 libp2p 网络传播 UserOp。任何运行 Pimlico、Stackup、Alchemy、Etherspot 或 Voltaire 节点的人都可以接收您的 UserOp。这种方式无需许可且抗审查,但您面临的 MEV 风险与普通 Ethereum 交易相同:搜索者可以在您的操作被纳入区块前看到它。

私有 bundler:您直接通过 RPC 向一家服务提供商发送 eth_sendUserOperation。该服务提供商会进行模拟、打包并私下提交(通常通过 Flashbots)。这种方式速度更快且可防范 MEV,但您需要信任 bundler 不会审查或抢跑。到 2026 年,大多数面向消费者的钱包默认使用私有 bundler。

这与普通交易使用公共内存池还是 Flashbots Protect 的权衡相似。如果您自 L1 时代以来还没有了解过底层的交易生命周期,这篇入门介绍会讲解 bundler 介入后有哪些变化。

聚合器、普及情况与成本

聚合器是通过一次签名检查来验证一批交易的合约。典型用例是 BLS:收集 50 个使用 BLS 签名的 UserOp,将签名聚合为一次配对检查,从而节省约 95% 的签名 Gas。由于编写支持 BLS 签名的钱包较为困难,而且只有在交易量很大时 Gas 节省才划算,因此普及速度较慢。截至 2026 年年中,主网使用聚合器的 UserOp 不到 1%。

普及数据(来自 bundlebear.com 的 2026 年第一季度数据):所有链上的 UserOp 累计约 3.8 亿笔,其中大部分来自 Base、Polygon 和 Arbitrum。主网占比约为 6–8%——按交易量计算占比最低,但转移价值最高。Coinbase Smart Wallet、Farcaster 和 Argent 占据了面向消费者的主要使用量。

额外成本:v0.7 UserOp 的 Gas 成本比等效的 EOA 交易约多 30,000–40,000 Gas,这些开销来自 EntryPoint 循环、验证和交易打包管理。在主网以 20 gwei 计,每笔操作的成本不到一美元。首次通过 factoryData 部署账户还会额外消耗约 250,000 Gas。在 calldata 成本占主导的 L2 上,额外开销的比例只有个位数。由 dApp 赞助的 UserOp 会将这笔成本转移给 dApp;这就是为什么面向消费者的应用提供免费交易,而严肃的 DeFi 应用却不这么做。更全面的交易手续费入门介绍会说明这类额外开销在不同费用市场中的影响。

简而言之:ERC-4337 包含六种角色(sender、UserOp、bundler、EntryPoint、paymaster 和 aggregator)、一个结构体、两个值得记住的 EntryPoint 地址,以及约 30–40k Gas 的额外开销;作为交换,您可以使用任意签名方案、Gas 赞助、批量处理和并行 nonce。本系列第 3 部分将介绍 EIP-7702——Pectra 的并行方案,它允许现有 EOA 借用这套机制,而无需更改地址。


延伸阅读

钱包、Gas 费与授权:每位 DeFi 用户都必须了解的三件事

钱包、Gas 费与授权:每位 DeFi 用户都必须了解的三件事

在进行兑换、借贷或流动性挖矿之前,您需要了解每次 DeFi 交互都依赖的三项基本要素:钱包、Gas 费和代币授权。

阅读约 9 分钟
账户、合约与 EVM:Ethereum 如何实际执行交易

账户、合约与 EVM:Ethereum 如何实际执行交易

Ethereum 用一张巨大的账户表和按 gas 计量的栈式虚拟机,取代了 Bitcoin 的 UTXO 钱包。本文将介绍状态、操作码以及 ERC-20 转账的实际运作方式。

阅读约 13 分钟
Ethereum Gas 机制:Dencun 升级后的 EIP-1559、优先费与 Blob 费用

Ethereum Gas 机制:Dencun 升级后的 EIP-1559、优先费与 Blob 费用

了解 2026 年 Ethereum Gas 费用的实际运作方式:EIP-1559 基础费用竞价、优先费小费,以及 Dencun 引入并由 Pectra 扩展的独立 Blob 市场。

阅读约 12 分钟

订阅我们的新闻通讯

我们每月为您发送一次简讯。没有垃圾邮件,只有 Zelcore 的最新动态。

订阅我们的新闻通讯