仅供教育参考,不构成交易或安全建议。替换与取消是取决于竞速结果、客户端和提交路径的操作;在认定原交易已被取代前,请核验具体链、发送方、nonce、已签名载荷、费用字段、收据与最终性。
直接答案
以太坊交易替换是一项本地交易池策略:节点可以优先保留一笔新签名交易,而不再保留来自同一发送方且具有相同 nonce 的另一笔候选交易。它并不是共识层的全局费用替换开关。某个节点接受新哈希,不会从其他节点、私有中继或构建者处删除旧的已签名交易;只有交易被纳入规范链,才会决定哪一笔候选交易消耗账户 nonce。
钱包的“加速”操作通常保留原交易的目标地址、金额和 calldata,只提高费用字段。公开交易池中的“取消”通常会创建一笔发送方与 nonce 相同、金额为零的自转账。它是一笔竞争交易,而不是撤销操作:若原交易先被纳入,其转账或合约调用不会被逆转。特定产品的私有路径可以定义不同的取消 API;例如 Flashbots Protect 记录了一种不上链的身份验证取消机制,不能将其泛化为公开以太坊交易替换。
运作方式
- 锁定准确谱系:链 ID、客户端及版本、头部区块与基础费、提交路径、发送方、规范账户 nonce、原始已签名字节、交易哈希与类型。查询多个相关的公开或私有视图;钱包标签或单个 RPC 响应不是全局状态。
- 准确划分原交易状态:准入前被拒绝、在本地 pending、因 nonce 缺口而 queued、已丢弃或逐出、通过私有路径提交、成功纳入、以
status = 0纳入、因重组被移除,或已经最终确认。一旦 nonce 在规范链上被消耗,就不应再把替换视为可用方案,但重组可能重新开启竞速。 - 定义新交易意图。加速交易应复现每个预期语义字段;公开取消尝试通常使用相同发送方与 nonce,并设置
to = sender、value = 0和空 calldata。签名前逐项比较链 ID、类型、目标地址、金额、calldata、访问列表、gas 上限、Blob 哈希与授权。 - 读取目标节点的实际替换策略。Legacy 与 type-1 交易使用
gasPrice;type-2 交易包含maxFeePerGas和maxPriorityFeePerGas;type-3 交易还包含maxFeePerBlobGas并需要 sidecar。Geth 当前普通交易池默认txpool.pricebump = 10、Blob 交易池默认blobpool.pricebump = 100,它们只是 Geth 的配置示例,并非以太坊全网常量。 - 把加价资格与资金要求分开计算。对于 type 2,实际价格为
min(maxFeePerGas, baseFeePerGas + maxPriorityFeePerGas)。候选交易仍需编码有效、固有 gas 充足,且余额能够覆盖转账金额与最高费用暴露;提高上限不能修复无效 calldata,也不能保证 EVM 执行成功。 - 有意识地提交并保存每项响应。公开重新广播可能暴露意图并招致 MEV;私有中继各有不同的可见性、取消方式、构建者覆盖范围与可用性。沿每条路径追踪新旧哈希,不要假定本地接受意味着竞争交易已被删除,也不要盲目发送第三笔带金额的候选交易。
- 根据规范链对胜出交易进行对账。按所需最终性级别核验收据区块与哈希、交易索引、
status、gas 使用量、实际 gas 价格、日志、发送方 nonce、余额和合约状态。根据证据把落选哈希记录为已替换、已丢弃或仍可观察;发生重组后重新分析。
计算示例
- 普通 type-2 教学加价。 旧候选交易的
maxFeePerGas = 40 gwei、maxPriorityFeePerGas = 2 gwei。在加价幅度为10%的 Geth 教学配置下,算术门槛为44 gwei与2.2 gwei。44/2.1 gwei的候选交易未达到优先费门槛;44/2.2 gwei则达到两项教学门槛。基础费为32 gwei、gas 使用量为21,000时,实际价格为34.2 gwei,总费用为718,200 gwei = 0.0007182 ETH,其中基础费销毁0.000672 ETH,优先费为0.0000462 ETH。实际准入仍取决于具体实现、版本和以 wei 为单位的整数取整。 - 基础费敏感性。 某替换交易的两项上限为
66/4.4 gwei。基础费为60 gwei时,实际价格为min(66, 60 + 4.4) = 64.4 gwei。基础费为65 gwei时,实际价格为66 gwei,实际优先费仅为1 gwei。基础费为67 gwei时,由于66 < 67,即使候选交易通过本地加价测试,该费用上限也使其无法纳入该区块。 - 取消竞速。 nonce 为
20的原交易向商户发送5 ETH。若它以21,000 * 42 gwei = 0.000882 ETH的费用率先胜出,商户会收到5 ETH,取消交易则变为 nonce 过低。若金额为零的自转账以21,000 * 45 gwei = 0.000945 ETH的费用率先胜出,它会消耗 nonce20,使原交易此后无法进入同一条规范历史。仅凭点击“取消”按钮,无法预先确定结果。 - Blob 交易池边界。 旧 type-3 候选交易的执行费用上限为
100 gwei、优先费上限为3 gwei、Blob 费用上限为20 gwei。在加价幅度为100%的 Geth Blob 交易池教学配置下,算术门槛为200/6/40 gwei。200/6/39 gwei的候选交易未达到 Blob 上限;200/6/40 gwei达到全部三项教学门槛,但仍需具备有效 sidecar、nonce、余额并通过交易池准入。这些数值并非普通交易或其他客户端的规则。
风险
- 选错链 ID 或网络。
- 选错发送方或账户 nonce。
- 使用过时的头部区块、基础费或规范 nonce。
- 在原交易已纳入或最终确认后仍尝试替换。
- 把普通交易池规则用于 ERC-4337
UserOperation。 - 假定另一客户端、提供商、版本或配置采用相同策略。
- 因以 wei 为单位的整数取整而未达到加价门槛。
- 只提高一项必需的 EIP-1559 费用字段。
- 将
maxFeePerGas设得低于候选区块基础费。 - 忽略 Blob 费用上限、sidecar 或 Blob 交易池特殊规则。
- 余额不足以覆盖金额与最高授权费用。
- 签名、类型、编码、固有 gas 或链域无效。
- 意外更改目标地址、金额、calldata、访问列表或 Blob 哈希。
- 公开取消交易在纳入竞速中落败。
- 旧交易仍存在于其他节点或构建者输入中。
- 私有中继泄露、审查、丢弃提交或无法取消。
- 公开重新广播将意图暴露给抢跑、三明治攻击或其他 MEV。
- nonce 缺口阻塞后续交易,或诱发重复转账。
- 替换交易虽被纳入,却回滚或耗尽 gas,同时仍消耗 nonce 与费用。
- 重组、最终性或收据谱系错误使候选交易复活或被错误分类。
常见误区
- 费用更高的候选交易会在全网删除旧交易。
- 任何两笔数值 nonce 相同的交易都会互相替换,即使发送方不同。
- 钱包的“取消”按钮可以逆转已经纳入的交易。
- 某个节点接受替换交易,就证明构建者会将其纳入。
- 通用的 10% 加价规则适用于所有客户端、Blob 交易、私有中继和
UserOperation。
相关主题
来源
- Transactions - Ethereum.org(查阅日期:2026-08-13)
- EIP-1559: Fee market change for ETH 1.0 chain - Ethereum Improvement Proposals(查阅日期:2026-08-13)
- txpool Namespace - go-ethereum(查阅日期:2026-08-13)
- Command-line Options - go-ethereum(查阅日期:2026-08-13)
- eth_sendRawTransaction - Ethereum Execution APIs(查阅日期:2026-08-13)
- EIP-4844: Shard Blob Transactions - Ethereum Improvement Proposals(查阅日期:2026-08-13)
- ERC-4337: Account Abstraction Using Alt Mempool - Ethereum Improvement Proposals(查阅日期:2026-08-13)
- Cancellations - Flashbots Documentation(查阅日期:2026-08-13)