两笔交易不会都生效,矿工只会打包 Gas 价格更高的一笔,另一笔会被标记为"Dropped & Replaced"(丢弃并替换)。 因为同一个地址的 Nonce 是顺序编号,矿工按规则只能接受其中一笔。
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。
4. 交易生效后,另一笔的 Gas 费和金额怎么算
被替换掉的交易不会上链,因此:
这笔交易不会被扣除任何 Gas 费
转账金额不会变动
你的账户余额只会反映新确认的那笔交易的影响
风险提醒:如果两笔相同 Nonce 的交易用相近的 Gas 价格广播,网络拥堵时矿工对收哪笔可能有先后判断,最终生效的那笔不确定。如果两笔交易的接收方和金额不同,最终生效的是哪一笔你无法完全控制,只取决于哪个节点的交易先被打包。
做完以上判断,怎么确认最终哪笔生效了?
去 Eth erscan 输入你的钱包地址,在交易列表里找到这笔 Nonce。状态是"Success"的那笔就是最终上链的,另一笔会显示"Dropped & Replaced"。如果两笔都显示"Success",说明它们根本就不是同一个 Nonce——再看一眼你复制的 Nonce 数字。



