从可选信号到默认规则:全量 RBF 政策这几年怎么变的 图 1
从可选信号到默认规则:全量 RBF 政策这几年怎么变的 · 图 1

替换机制的两种哲学

比特币的内存池规则里,花同样输入的两笔交易互斥,先到者占坑。所谓 RBF,就是允许后来者花更高的费把先来的那笔顶出去。BIP125 设计的路线是”自愿亮牌”:发起方把任一输入的序号字段设得低于上限,等于举手声明”我这笔可替换”,节点才接受替换尝试,同时给替换交易附上几条防耍赖细则——原交易占用带宽不能白扔,新交易增量费要覆盖自身的增量带宽,且不能给自己扩输入。与之相对的是”全量 RBF”路线:不看信号,凡遵循基本细则的替换一律接受,把”任何未确认交易都是可替换的”变成网络常识。

版本时间线:默认值怎么被改写的

这条路线的切换发生在几个具体的版本上。Bitcoin Core 长期默认只接受带 BIP125 信号的交易,同时提供 mempoolfullrbf 启动选项供人提前试水全量语义。28.0 的发布说明记录了一次关键转向:该选项的默认值从关改为开,即默认接受无信号的替换;文档同时说明,随着带信号交易的普及,关闭它已无必要。到了 29.0,这个选项被整个移除,全量替换从此成为不可切换的标准行为。读到这里必须校准一个常见误读:无论默认值怎么变,共识层从来没有”替换规则”——进块的永远是矿工收到的那一条,节点政策只决定交易在中继网络里走得多顺;矿工侧是否接受替换,取决于其挖矿软件的政策,与节点默认值是两回事。

零确认场景下的真实风险

对付款方,全量 RBF 是福音:出价低了随时加价,卡单自救不再依赖钱包是否支持信号。对收款方,它把零确认收款的风险面拉宽了——原来只有”钱包打了可替换标记”的交易有被顶掉的可能,如今任何一笔 0 确认交易在规则上都可能被同输入的加价双胞胎替换,而替换交易未必再走同一批节点,双花虽然仍是少数时点的窄门,成本却实实在在降了一档。风险不等于随便双花:替换要付更多费,还要赶在同一批矿工打包前到达,现实中大规模 0 确认双花依旧罕见且有公开实验记录可循,但”以前一直没事”的经验在新政策下折扣更小。

收款侧的自处方式

防御手段不需要多复杂。能等区块确认的商品交付,维持等待习惯就好——这是唯一在共识层面免疫的做法;必须即时放货的小额场景,把依赖的确认数写进风控额度,等于把 0 确认的信任半径明确标价;跑自己的全节点并配置只接受带 BIP125 信号交易的替换策略,能过滤掉一部分替换风险,但要清楚这只是自己节点的政策,不改变别人的行为。无论哪档,把”交易已进入区块”作为不可逆放行的分界线,都比研究任何节点参数更根本。政策演进的受益者是付款人的钱包体验,承担后果的是收款决策,这个不对称在可见的版本里不会消失,认识它就够了。

一个容易混淆的技术细节

最后澄清一个字段层面的误会。BIP125 的信号方式是让任一输入的序号字段低于上限值,而序号字段同时被相对时间锁等其他功能使用,于是”设了低序号”并不总等于”愿意被替换”——带相对时间锁的交易天然满足信号条件,这是规范制定时就公开的语义重叠。全量 RBF 时代这个重叠不再重要,因为接受替换不再依赖信号;但在混跑旧政策节点的网络里,把序号字段当成可替换标记来读会得出错误结论。理解这层重叠的价值在于:当你读到某分析机构声称”全网可替换交易比例已达某数”时,先确认它统计的是序号字段形态还是真实的替换行为,两种口径能差出一个量级。

风险提示:本文内容仅为技术说明,不构成任何投资建议;涉及资产操作请自行核验当前版本行为与官方文档。