很少有什么,比一笔在「待处理」上悬了一个钟头的交易、或一笔失败了却仍收你费的交易,更让新用户不安。二者都是区块链运作方式的正常部分,而一旦你理解正在发生什么,二者都可修复、或可避免。以下是交易为何会卡住或失败,以及在每种情况下该做什么。
待处理、卡住与失败
这三个词,描述不同的状态,而把它们混淆,会引起不必要的恐慌。一笔待处理的交易,已被广播、正在排队等待被纳入——在一段时间里,完全正常。一笔卡住的交易,因为它的费用太低而无法被选中,待处理了异常地久。一笔失败的交易,相比之下,实际被处理了,却没有完成它意图的动作。知道你身处哪个状态,就告诉你该等待、干预,还是调查。
一笔交易为何会卡住
一笔交易,本质上是在竞标一个区块里的空间。如果你设了一个对当前需求而言太低的费用,验证者就干脆偏爱付得更高的交易,而你的等待着,有时长达数小时。还有第二个、更狡猾的原因:你钱包发出的每一笔交易,都带着一个叫 nonce 的顺序编号,而它们必须按顺序确认。如果一笔早先的、低费的交易停滞了,每一笔更靠后的都被堵在它后面,即便那些靠后的付了很多。
如何让一笔交易脱困
因为一笔待处理的交易尚未最终,你可以替换它。标准的工具是 replace-by-fee (按费替换):你用相同的 nonce 、但更高的费用,重新提交一笔交易,而验证者采用那个付得更好的版本。钱包通常把这暴露为一个「加速」按钮。如果你宁愿它永不执行,你就发一笔「取消」——一笔用相同 nonce 、与更高费用、发给你自己的零值交易,它转而占据那个位置。无论哪种,清掉那个卡住的 nonce ,也释放了排在它后面的一切。
一笔交易为何失败、却仍花钱
一笔失败的交易,感觉不公平,因为你仍被收费,但那逻辑是一致的:验证者做了真实的工作去执行它,所以无论结果如何,他们都必须被付钱。常见的原因包括:用尽了你分配的 gas 、一个智能合约以一次回滚拒绝了那个动作,或一次兑换,因价格移动超出了你的滑点容忍度而失败。区块链记录下这次尝试、并消耗掉那 gas ,即便你的资金在其它方面留在了原处。
读懂并避免那个错误
一个区块浏览器,通常会显示一笔交易为何失败,往往带一个简短的原因,如「gas 耗尽」、或一条合约的错误消息。为了避免失败,让你的钱包去估算 gas 、而非强设一个低的上限,在波动的兑换上设一个现实的滑点容忍度,并对可能回滚的、不熟悉的合约保持谨慎。当某事反复失败,那往往是合约在告诉你,这个动作当前无法成功,而非一个可以蛮力破解的问题。
结语
卡住与失败,是有着不同修复的、不同的问题。一笔卡住的交易,是在等一个对需求而言太低的费用,靠加速它、或取消它来解决,记住那 nonce 的顺序,堵着它后面的一切。一笔失败的交易,已经运行过、却无法完成,仍花掉 gas ,最好用明智的 gas 与滑点设置来预防。二者都不是无望之事——一旦你懂得那些招法,它们都是家常便饭。
免责声明:本文为币贝学院提供的教育内容,仅供参考。不构成投资、交易、税务或财务建议。撰写于 2026 年 7 月;请以最新官方信息为准。
参考资料
[1] MetaMask, "Speed up, cancel, or resubmit a transaction" metamask.io
[2] Blocknative, "Understanding stuck and dropped transactions" blocknative.com






