转账发出去了,区块浏览器上一直显示 pending,价格在动而资产动不了——这是链上最常见的一次小型事故。卡住的原因几乎总是同一个:手续费的出价低于当前市场的打包门槛,而它的 nonce 已经占住了一个位置,于是后面所有交易都被挤在后面等着排队。这篇只讲机制与处置规则,不做任何投资建议。

一、先理解 nonce:它不是编号,是顺序票
每个地址都有一串按顺序递增的序号,叫 nonce,从 0 开始。每成功打包一笔交易,nonce 加一。关键点在于:同一个地址的交易必须按 nonce 顺序依次被确认——nonce 为 7 的交易卡住,nonce 为 8、9、10 的交易即使手续费给得再高,也只能一起等。这就是”一笔卡住、全部排队”的由来。
二、为什么会卡住
交易发出时给的是一个手续费出价,而打包是按出价排序的拍卖。出价低于拥挤时段的门槛,交易就留在内存池里等待。出价不会随时间自动上涨,所以行情突然活跃时,昨天还够用的出价今天就可能排在队尾。
三、三种处置方式
第一种是等:出价只要还在合理范围,通常会在网络空下来之后被打包,问题是等多久无法预测。第二种是加速:用同一个 nonce 重新发一笔内容相同、但手续费更高的交易,矿工会优先选高的那笔——原来是这笔替代了那笔,而不是”两笔都发”。第三种是取消:同样用那一个 nonce,向自己的地址转 0,手续费给到更高,结果等于宣告原来那笔作废。三种方式的共同前提是:都必须沿用原来那一个 nonce。

四、替换交易的规则细节
替换不是随便提高一点点就算数,节点与钱包通常会要求新交易的出价明显高于旧交易(常见做法是至少高出 10%),否则会被直接拒绝。比特币这边要注意:传统的替换手续费(RBF)是”选择加入”的——一笔交易如果没标记允许替换,就不能被同 nonce 的更高出价顶掉,只能等。以太坊与多数智能链则天生支持同 nonce 替换。
五、数字速查表
下面这些数字是判断”该等还是该动手”的基本标尺。
| 项目 | 常见数值 / 规则 | 说明 |
|---|---|---|
| nonce 起始值 | 0 | 每成功确认一笔 +1 |
| 以太坊出块间隔 | 约 12 秒 | 决定等待的节奏 |
| 比特币出块间隔 | 约 10 分钟 | 等待更慢,替换规则也不同 |
| 替换交易的常见门槛 | 手续费至少高出约 10% | 低于门槛通常被节点拒绝 |
| 普通转账的 gas 用量 | 21,000 | 代币转账与合约交互更高 |
| 比特币 RBF | BIP125 选择加入 | 未标记则不能替换,只能等 |
六、避坑要点卡
下面五条是可以直接照做的。
- 转出前先看一眼当前网络的出价水位,不要沿用几天前的旧出价。
- 一笔交易卡住时,先确认它是不是”占用 nonce 的那一笔”,再决定等或替换。
- 替换交易必须用原来的 nonce,手续费要明显提高(常见要求至少高 10%)。
- 不要在卡住期间继续发新交易,否则会把后面的 nonce 一起堵住。
- 处理大额转账时优先用可替换的出价方式,或预留更高的手续费缓冲。
常见问题
问:为什么我提高了手续费,交易还是没动?
答:很可能发成了新 nonce 的另一笔交易,而不是同 nonce 的替换交易。只有同 nonce 才能顶掉原来那一笔。
问:比特币的交易也能这样顶掉吗?
答:只有当它被标记为允许替换手续费(RBF,BIP125 的选择加入机制)时才可以;否则只能等它被打包或掉出内存池。
问:交易一直 pending 会自己消失吗?
答:出价过低时可能被节点从内存池丢弃,但这不是保证;在它被丢弃或被打包之前,nonce 一直占着位置。
问:一笔卡住会影响我其他转账吗?
答:会。同一个地址的交易必须按 nonce 顺序确认,所以后面所有交易都会一起排队。
问:取消交易的原理是什么?
答:用同一个 nonce 发一笔给自己转 0 的交易,并给出更高的手续费。它被打包就等于宣告原来那笔作废。
常见问题
《交易卡在 pending 怎么办:nonce、加速与替换交易的规则》有1条评论