以太坊同一Nonce有两笔交易:最终哪笔会生效

 / 
43

两笔交易不会都生效,矿工只会打包 Gas 价格更高的一笔,另一笔会被标记为"Dropped & Replaced"(丢弃并替换)。 因为同一个地址的 Nonce 是顺序编号,矿工按规则只能接受其中一笔。

欧易OKX交易所
全球领先的加密货币平台,适合新手与进阶交易者
新手福利:注册即享20% 交易手续费减免!

1. 先搞清楚 Nonce 是什么

Nonce 是以太坊为每个地址分配的交易计数器。第一笔交易的 Nonce 是 0,之后每发一笔交易就 +1

矿工打包交易时有两条铁律:

  • 严格按 Nonce 从小到大顺序打包:Nonce 为 0 的交易没确认,Nonce 为 1、2 的交易哪怕 Gas 给得再高也得等着。

  • Nonce 不能跳过:不能从 Nonce 0 直接跳到 Nonce 2,中间缺了 1 的话,2 永远无法被打包。

2. 相同 Nonce 的两笔交易:矿工会选哪笔

当两笔交易用同一个 Nonce 时,规则很明确:

矿工只会接受 Gas 价格更高的那一笔。另一笔会在内存池里被丢弃,状态显示为"Dropped & Replaced"。

Etherscan 官方对"Dropped & Replaced"状态的定义是:一笔交易被另一笔来自同一地址、使用相同 Nonce 且 Gas 价格更高的新交易替换并确认后,原交易就会被网络丢弃。

这其实是钱包实现"加速交易"或"取消交易"功能的底层机制:

  • 加速交易:发一笔相同 Nonce、更高 Gas 价格的新交易,覆盖原来的。

  • 取消交易:发一笔相同 Nonce、更高 Gas 价格,但金额为 0、收款方是自己的新交易,相当于"撤回"原来的挂单。

3. 为什么会发出相同 Nonce 的两笔交易

常见原因有三个:

原因一:交易卡住,用户手动加速或取消

原交易因 Gas 太低一直未确认,钱包帮你用更高 Gas 重发了一笔。这时候你会在 Etherscan 上看到原交易变成"Dropped & Replaced",新交易正常确认。

原因二:钱包或节点不同步,Nonce 计错了

两个钱包同时在操作同一个地址,或者连接的全节点同步慢,导致用了同一个 Nonce。

原因三:不小心重复发了两笔

手动操作失误,连续发了两笔内容不同的交易,但用了同一个 Nonce。

欧易OKX交易所
全球领先的加密货币平台,适合新手与进阶交易者
新手福利:注册即享20% 交易手续费减免!

4. 交易生效后,另一笔的 Gas 费和金额怎么算

被替换掉的交易不会上链,因此:

  • 这笔交易不会被扣除任何 Gas 费

  • 转账金额不会变动

  • 你的账户余额只会反映新确认的那笔交易的影响

风险提醒:如果两笔相同 Nonce 的交易用相近的 Gas 价格广播,网络拥堵时矿工对收哪笔可能有先后判断,最终生效的那笔不确定。如果两笔交易的接收方和金额不同,最终生效的是哪一笔你无法完全控制,只取决于哪个节点的交易先被打包。

做完以上判断,怎么确认最终哪笔生效了?

Eth erscan 输入你的钱包地址,在交易列表里找到这笔 Nonce。状态是"Success"的那笔就是最终上链的,另一笔会显示"Dropped & Replaced"。如果两笔都显示"Success",说明它们根本就不是同一个 Nonce——再看一眼你复制的 Nonce 数字。