摘要:账户抽象(ERC-4337)用 UserOperation、Bundler、Paymaster 与 EntryPoint 在不改共识的前提下扩展账户能力。本文用 ethereum.org 中文说明、EIP-4337 字段表与 Jiffyscan 实机页,教你核对 UserOperation 关键字段。
账户抽象(Account Abstraction,AA)想解决的是:普通以太坊账户(EOA)只能靠私钥签名、还得自己留 ETH 付 Gas。ERC-4337 在不改共识层的前提下,用另一套内存池与 EntryPoint 合约,让用户把意图打成 UserOperation。本文不讲行情,只用 ethereum.org 中文说明、ERC-4337 官方文档、EIP-4337 字段表,以及 Jiffyscan 实机 UserOp 页,教你读懂关键字段该怎么核对。
账户抽象在解决什么
打开 ethereum.org 中文「账户抽象」。页面说明:多数用户仍通过 EOA 交互,批量操作、社交恢复、代付 Gas 等体验受限;账户抽象则允许用智能合约账户自定义安全规则、恢复与代付等。实现路径上,文档同时提到 EIP-7702(升级现有 EOA)与 EIP-4337(并行的第二套交易系统)。本文聚焦 ERC-4337 的 UserOperation 字段。

ERC-4337:UserOperation、Bundler、Paymaster、EntryPoint
ERC-4337 官方文档(docs.erc4337.io) 开篇写明:ERC-4337 在无需改协议的情况下实现账户抽象,核心是 UserOperation 对象、去中心化的 alt-mempool,以及链上 EntryPoint 合约。侧栏还能看到 Smart Accounts、Bundlers、Paymasters 等章节——分别对应「谁发起」「谁打包上链」「谁可能代付 Gas」。

可以先记四角色(以文档当时文案为准):
- Smart Account(sender):智能合约账户,真正执行 callData。
- Bundler:从 UserOp 内存池打包,提交到 EntryPoint。
- Paymaster(可选):代付或部分代付 Gas。
- EntryPoint:链上统一入口,校验并执行一批 UserOperation。
UserOperation 字段表:先会读再去浏览器
打开 EIP-4337 · The UserOperation structure。规范用表格列出字段类型与含义。核对时不必背全表,优先认下面几组:

| 字段组 | 常见字段 | 你在核什么 |
|---|---|---|
| 身份与防重放 | sender、nonce | 哪个合约账户发起;nonce 防重放 |
| 执行内容 | callData(及 factory / factoryData) | 这次要调用什么;新账户部署时才看 factory |
| Gas 预算 | callGasLimit、verificationGasLimit、preVerificationGas、maxFeePerGas、maxPriorityFeePerGas | 验证/执行各留多少 gas;费用上限类似 EIP-1559 |
| 代付 | paymaster、paymasterData、paymaster*GasLimit | 是否有人代付;空则多半由 sender 自付 |
| 授权 | signature | 必须绑定 chainid 与 EntryPoint(规范要求),防跨链重放 |
规范还强调:用户把 UserOperation 发到专用内存池,而不是普通交易内存池;签名须依赖 chainid 与 EntryPoint 地址。具体类型名与拆分方式以 EIP 当时版本为准(字段会随标准修订微调)。
Jiffyscan:在浏览器里对照实机字段
Jiffyscan(UserOp Explorer for 4337) 首页可看 Recent User Operations、Top Bundlers / Paymasters。点进一笔 UserOp 后,Transaction Details 常见字段包括 Sender、Target、Status、Fee、Gas Used、Paymaster、Beneficiary(打包方)、Transaction Hash、Block 等——数值为截图时状态,会随网络变化。

再切到 Developer Details:可见 Entry Point 地址,以及解码后的 sender、nonce、initCode、callData 等——这正是把 EIP 字段表落到一笔真实 UserOp 上的入口。initCode 为空通常表示账户此前已部署;callData 若显示 Unknown,只说明浏览器未识别 ABI,不等于失败。

实操核对步骤:
- 在支持 AA 的钱包里发起一笔智能账户操作(或从 Jiffyscan 打开公开 UserOp)。
- 复制 UserOp Hash → Jiffyscan 搜索。
- 先看 Status 是否 Success,再对照 Sender、Paymaster、Transaction Hash。
- 打开 Developer Details,把 sender / nonce / callData / Entry Point 与 EIP 字段表逐项对照。
- 若关心 Gas:对照 Fee、Gas Used 与 UserOp 里的 maxFeePerGas 等上限(实际消耗≤上限)。
自托管可用 欧易 Web3 钱包(创建时可填推荐码 CHENGXULVTU);需要少量 ETH 作 Gas 时可先在 币安 或 欧易 准备。普通交易的 Gas 字段对照见 以太坊 Gas 费怎么算:Base Fee、Priority Fee 与 EIP-1559;Nonce 卡住见 以太坊 Nonce 是什么。
相关阅读
- 以太坊 Gas 费怎么算:Base Fee、Priority Fee 与 EIP-1559 字段对照
- 以太坊 Nonce 是什么:卡住交易、加速与取消怎么在浏览器核对
- 以太坊内存池是什么:Pending 交易在浏览器里怎么看
- 欧易 Web3 钱包怎么用(含推荐码说明)
说明:文中 EntryPoint 地址、Fee、Gas Used、Bundler/Paymaster 排行、区块高度等均为 2026-09-30 截图时的文档/浏览器状态,会随网络与标准修订变化;UserOperation 字段定义以 eips.ethereum.org EIP-4337 与 docs.erc4337.io 当时文案为准。本文只做技术核对,不构成任何投资建议。
