UserOperation 是什么?一文看懂 ERC-4337 账户抽象核心机制 | 币安
什么是 UserOperation?
UserOperation(简称 UserOp)是 ERC-4337 账户抽象标准中引入的一种新型对象,用于表达用户在链上的操作意图。你可以把它理解为一笔“伪交易”或结构化的元交易——它并非真正的以太坊交易,却承载了传统交易所需的全部信息,帮助用户在不改变以太坊共识层的前提下,实现可编程的智能钱包体验。
在 ERC-4337 体系里,用户不再直接广播一条交易,而是生成一个由智能合约钱包签名授权的 UserOperation,再将其提交到独立的 UserOp 内存池(Alt Mempool)等待处理。
UserOperation 包含哪些核心字段?
一个标准的 UserOperation 结构包含 sender(发送方)、nonce(防重放)、initCode(账户创建代码)、callData(调用数据)以及 signature(签名)等字段。此外,它还引入了三个与 Gas 相关的专用字段:
- callGasLimit:主执行调用所需的 Gas 上限;
- verificationGasLimit:完成验证步骤消耗的 Gas;
- preVerificationGas:用于支付捆绑器(Bundler)预验证与 calldata 成本。
可选的 paymasterAndData 字段则指向赞助方 Paymaster,用于实现其他代币支付 Gas 或代付 Gas 等灵活场景。
UserOperation 是如何被处理与上链的?
UserOperation 的处理流程大致分为以下几步:用户构建并签名 UserOperation 后提交给捆绑器;捆绑器先模拟验证(simulateValidation),检查签名、nonce、余额与 Paymaster 逻辑;验证通过后将其打包进内存池,并调用 EntryPoint 合约的 handleOps 方法批量执行。整个过程由捆绑器承担 Gas 成本风险,最终由用户账户或 Paymaster 偿还手续费。
UserOperation 与传统交易有何区别?
与普通 EOA 交易必须由外部账户直接发起不同,UserOperation 让智能合约钱包成为主要账户载体。它走的是独立的内存池而非传统交易池,因此天然支持多签、社交恢复、Passkey 生物识别、批量操作以及 Gas 抽象等高级能力。理解 UserOperation,是把握以太坊智能钱包基础设施与账户抽象技术演进的关键。对普通用户而言,这更意味着更流畅、更低门槛的 Web3 体验。
UserOperation 与传统以太坊交易有什么区别?
UserOperation 是 ERC-4337 定义的一种伪交易对象,它取代了由外部账户(EOA)直接发起的普通交易。传统交易由 EOA 签名并广播到以太坊交易池,而 UserOperation 由智能合约钱包签名,并提交到独立的 UserOp 内存池。两者都包含 sender、nonce、callData 等字段,但 UserOperation 额外引入 callGasLimit、verificationGasLimit、preVerificationGas 与 paymasterAndData 等专用字段,以支持对智能账户更灵活的执行与验证机制。
UserOperation 的常用字段有哪些?
UserOperation 的核心字段包括 sender(账户地址)、nonce(防重放计数器)、initCode(首次部署账户的创建代码)、callData(要执行的数据)与 signature(签名)。此外还包含三个 Gas 相关字段:callGasLimit(主执行 Gas 上限)、verificationGasLimit(验证步骤 Gas)和 preVerificationGas(支付捆绑器的预验证成本)。可选的 paymasterAndData 则用于接入 Paymaster,实现 Gas 赞助或代付。
Bundler(捆绑器)在 UserOperation 中起什么作用?
Bundler(捆绑器)是监听 UserOp 内存池的节点,负责挑选、模拟并验证合法的 UserOperation,再将其打包成真实的交易提交给 EntryPoint 合约的 handleOps 方法执行。捆绑器先承担 Gas 成本风险,执行完成后由用户账户或 Paymaster 偿还手续费。它还可以根据 ERC-7562 规则应用本地策略与信誉评分,以保障内存池的安全与去中心化。
EntryPoint 合约是如何验证和执行 UserOperation 的?
EntryPoint 是一个单例合约。捆绑器通过 handleOps 提交 UserOperation 后,EntryPoint 会先调用账户上的 validateUserOp 进行验证,若存在 Paymaster 还会调用 validatePaymasterUserOp;全部验证通过后,再批量执行各操作的 callData。为防重入与恶意操作,EntryPoint 会检查 msg.sender 是否为合法入口,验证或执行失败时会以 FailedOp 回滚。
什么是 Paymaster?它与 UserOperation 有何关系?
Paymaster 是可选的赞助合约,通过 paymasterAndData 字段与 UserOperation 关联。它可在链下或链上设置规则,为符合条件的操作代付 Gas,例如允许用户使用 ERC-20 代币支付手续费或实现无 Gas 的入门体验。Paymaster 必须在 EntryPoint 中质押并存入 ETH,只要 validatePaymasterUserOp 通过,就由它承担执行成本;即使操作失败,它仍需支付网络费用。
UserOperation 支持哪些高级应用场景?
借助 UserOperation,可以实现多签认证、Passkey 与生物识别登录、监护人社交恢复、批量操作以及 Gas 抽象等能力。例如游戏可以赞助玩家完成多步操作,DAO 可以管理复杂的链上工作流,新用户也能通过 Paymaster 体验无 Gas 的丝滑入门。这些应用让智能合约钱包获得接近 EOA 的交互体验,同时保留更强的安全与灵活性。
UserOperation 与传统交易池的机制有何不同?
UserOperation 走的是独立的 UserOp 内存池(也被称为 Alternative Mempool),与以太坊的传统交易池相互隔离,避免与之混淆。进入内存池前,操作需通过合法性校验与模拟验证(simulateValidation),确认其有能力支付 Gas。这种分离设计既提升了网络处理效率,也让更多基于意图与账户的个性化逻辑得以实现,而无需改动底层共识协议。
理解 UserOperation 对普通用户有什么意义?
对普通用户而言,UserOperation 背后带来的是更流畅、更低门槛的 Web3 体验。它让智能合约钱包成为主账户,支持用邮箱或生物识别创建钱包,甚至无需持有 ETH 也能发起交易。无论你是刚接触加密的新手,还是关注 Web3 技术的开发者,理解 UserOperation 都有助于把握账户抽象这一重要演进方向,并更好地使用支持 ERC-4337 的钱包与应用。