RBF是什么?比特币交易加速、替换与取消的差别


比特币转帐卡在未确认状态,钱包显示「提高费用」,按下去究竟是在补缴手续费,还是重新发送另一笔付款?

RBF(Replace-by-Fee)透过替代交易竞争取代原本的未确认交易,常用来提高费用、改善确认机会。它不会直接修改已上链的付款,也不是按一下就能保证撤销交易。

本文说明RBF 的原理、一般钱包操作流程,以及交易加速与取消最容易混淆的地方。

RBF 是什么? Replace-by-Fee 的意思

RBF 通常译为「费用替换」,是节点处理未确认交易替换的政策机制。

替代交易会与原交易使用至少一笔相同输入,并须符合节点的替换条件。提高交易费是常见用途,但不代表只要随便多付一点,所有节点都必须接受。

它的作用位置是Mempool 交易池,不是改写已经成立的区块。若原交易先被有效区块收录,就不能再靠一般RBF 流程把它撤回。

RBF 如何运作?为什么不是再付一次?

Bitcoin付款会引用先前的UTXO作为输入。 RBF 替代交易与原交易竞争使用相同资金来源,因此两者不能同时在同一条有效链上成立。

常见的费用调整方式,是保留收款内容、减少自己的找零,或在需要时加入其他输入,再重新签署及广播。

替代交易不是另外用一笔独立资金再支付相同款项。若直接建立没有输入冲突的另一笔付款,两笔就可能都确认,这与RBF 加速不同。

范例:增加费用、保留收款金额

假设原交易使用0.01 BTC,支付0.004 BTC 给收款人,并透过降低找零增加费用:

项目 原交易 A 替代交易 B
输入金额 0.01000 BTC 0.01000 BTC
收款人得到 0.00400 BTC 0.00400 BTC
自己的找零 0.00599 BTC 0.00596 BTC
交易费 0.00001 BTC 0.00004 BTC

B 的费用比A 多0.00003 BTC。如果B 最后确认,链上成立的是B 的费用与输出,不是先收A 的矿工费、再额外收B 的全部矿工费。第三方服务若另有服务费,则应分开计算。

这是资金配置示例,不代表符合所有替换规则,也不是即时建议费率;实际仍须核对交易大小、费率与钱包结果。

Opt-in RBF 与Full RBF 有什么不同?

Opt-in RBF:历史上的选择性替换信号

BIP 125 描述一种使用输入nSequence 表达可替换性的政策,也包含继承未确认祖先替换信号的情况。

它解释了许多旧钱包为什么有「启用RBF」选项,但不能把旧文件中的条件当成所有节点目前唯一的接受规则。

Full RBF:不以原交易的信号作为必要前提

Full RBF 不要求原交易先表达BIP 125 的可替换信号,仍须检查交易有效性、费用及其他政策条件。

Bitcoin Core 的版本演进包括:

  • 28.0 将Full RBF 设为预设政策。
  • 29.0 移除关闭Full RBF 的相关选项,使其成为该软体的标准行为。

这是节点软体政策的变化,不代表全网每个节点都使用相同版本,也不会让其他人因此获得你的签署权限。

钱包没有加速按钮,和节点不能替换是两回事

节点愿意接受某类替代交易,不代表你的钱包介面能建立它。还需要有相应的签署能力、资金与交易资料。

因此,「未显示启用RBF」不等于网路保证不能替换;「Full RBF」也不等于任何钱包都能一键加速。

使用RBF 加速前,需要确认什么?

检查项目 为什么要看
原交易仍未确认 已确认交易不能用一般RBF 撤回
自己能授权替代交易 不能只凭别人的TxID 改写付款
钱包有相应功能 按钮名称与支持条件依钱包不同
有足够资金提高费用 可能需要减少找零或加入输入
是否有依赖交易 子交易等关系可能影响钱包能否处理
收款内容与总费用 加速前仍须核对地址与金额

如果BTC 是由交易所提领,通常由平台控制并签署链上交易。这时应向平台确认加速选项,不能假设自己能用个人钱包替换平台付款。

RBF 操作教学:一般钱包的处理流程

不同钱包介面有差异,以下为通用流程,并非某个App 的逐画面教学。

步骤一:查看原交易状态

从钱包交易纪录取得TxID,确认使用Bitcoin 网路,并查看是否仍未确认。若已确认但商家或交易所未认列,先核对接收端条件。

步骤二:寻找提高费用功能

在原交易详情中,查看是否提供「提高费用」「加速」或类似功能。若找不到,先查该钱包说明,避免直接另建一笔独立付款。

步骤三:检查替代交易

确认收款地址与原本应付金额,查看新的费率、总费用,以及额外增加多少成本。若钱包估算确认时间,应视为参考。

步骤四:签署并广播

依钱包流程完成签署。硬体钱包使用者仍须核对装置上的交易资讯。广播成功只表示已提交,不代表替代交易一定先于原交易确认。

步骤五:改追踪新的TxID

RBF 会产生另一笔交易及新的交易ID。若需向商家或客服提供付款资料,应说明原交易与替代交易的关系,再确认最后上链结果。

RBF 要增加多少手续费?

没有所有交易通用的固定加价百分比。需要区分交易费总额、sat/vB 费率,以及节点对替换的政策要求。

对一般用户而言,最直接的做法是由支持该功能的钱包估算,再核对总费用。不要只比较「新费率比旧费率高多少」,就推论一定能被接受。

Bitcoin Core 31.0 的替换验证调整

Bitcoin Core 31.0 引入cluster mempool,并调整RBF 验证,要求替换后交易池的费率图必须严格改善。对各自独立、没有其他相连交易的简单情况,较高费用及费率可满足这项改善判断;仍有其他接受条件。

这表示不能把复杂依赖交易的判断,简化为「新费率高于旧交易就一定成功」。进阶操作应参考实际软体版本,不宜沿用过时的固定参数教学。

RBF 可以取消比特币交易吗?

部分钱包的「取消」功能,实际上会尝试建立一笔冲突交易,将原本准备支付的资金改送回自己控制的输出,并竞争先被确认。

因此,它比较接近「尝试用另一笔交易改变未确认付款结果」,不是通知全网删除原交易。

如果原付款先确认,或替代交易未被接受,就可能无法达成预期。替代交易尚未确认时,也不能只凭按下取消便认定完成。

钱包的「放弃交易」等于全网取消吗?

不是。以Bitcoin Core 的abandontransaction 为例,它是在符合条件时调整本地钱包对交易及相关输入的处理,不是全网撤销指令。

其他节点可能仍保存原交易;只要原交易仍能有效成立,就不能将本地显示改变当成永远不会确认的保证。

RBF、CPFP 与重新广播有什么不同?

方法 核心做法 原交易如何处理
RBF 建立使用冲突输入的替代交易 与替代交易竞争,不能都有效成立
CPFP 花费原交易输出,建立较高费率子交易 父交易仍须被收录
重新广播 再传送相同交易资料 仍是同一笔交易,不会自动增加费率

CPFP 可能由控制合适输出的一方操作,例如掌握找零的付款人或能花费收款输出的收款人。它评估的是父子组合,与单纯替换不同。

若问题只是传播不足,重新广播可能有帮助;若问题是费率竞争力不足,原样重送并不会让交易自动变贵或保证更快确认。

RBF 等于双重支付攻击吗?

RBF 的替代交易与原交易存在输入冲突,但不能因此把每次正常加速都称为诈骗。

判断双重支付造成的影响,要看收款人依赖的付款是否失效,以及是否已交付商品或资产。保留原付款内容、只提高费用的替换,与改变收款结果是不同情境。

收款人也不应因交易没有标示RBF,就把零确认视为不可逆。确认保障可搭配Finality 最终确认理解。

RBF 本身也不等于Reorg 区块重组:前者处理未确认交易替换,后者涉及改采另一段区块历史。

RBF 常见问题FAQ

已经确认的交易,可以用RBF 撤回吗?

不能透过一般RBF 流程撤回已被有效区块确认的交易。

没有开启RBF,就一定不能替换吗?

不是。 Full RBF 不以原交易事先发出信号为必要前提,但钱包能否操作及交易能否被接受仍要分别判断。

RBF 会扣两次矿工费吗?

若替代交易取代原交易并确认,计入的是最后有效交易的费用。其他独立付款或服务费不能混在一起比较。

提高费用后,TxID 为什么改变?

因为建立的是另一笔替代交易,需要追踪新的交易ID。

别人拿到我的TxID,就能替换付款吗?

不能仅凭公开交易ID 取得相应输入的花费授权。

按下取消,就一定不会付给对方吗?

不一定。替代交易仍需竞争被确认,原交易也可能先成立。

收款人可以用RBF 帮付款人加速吗?

收款人通常没有原付款输入的授权,不能只凭收款身分直接使用RBF;若能花费合适的未确认输出,则可另评估CPFP。

加速需要向网站提供助记词吗?

不需要向外部加速网站交出助记词或私钥。签署应在自己的可信钱包流程内完成。

本文链接地址:https://www.wwsww.cn/btbwhy/42216.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。