BIP-125的RBF判断不能只看nSequence。替换交易还要满足未确认输入、绝对费用、增量中继费和被淘汰交易数量等节点策略。
本文列出原始opt-in规则集合,并把“节点接受替换”与“链上确认”分开。
事实与证据边界
| 核验项 | 可确认结论 |
|---|---|
| RBF信号 | BIP-125原始opt-in信号来自输入nSequence小于0xfffffffe,未确认祖先发出信号时后代也可能继承可替换状态。 |
| 替换费用门槛 | 替换交易要支付高于被替换集合的绝对费用并补足增量中继费,且对被移除原交易及后代数量设有限制。 |
| 替换集合限制 | RBF属于节点内存池接收策略,不是链上共识;节点可启用更宽的full-RBF策略,已确认交易也不能再按未确认替换规则处理。 |
五道替换门槛
- 原交易通过输入
nSequence < 0xfffffffe直接发出可替换信号,或从未确认祖先继承信号。 - 替换交易不能随意引入原交易集合没有使用过的未确认输入。
- 新交易绝对费用必须不低于被移除原交易及相关集合的总费用。
- 还要额外支付足以覆盖自身带宽的增量中继费,不能只提高极小数额。
- 被替换交易及其后代的总淘汰数量受策略上限约束。
例如原交易费率较低但绝对费用1000 sat,替换交易不能只把费率做高却把绝对费用降到900 sat。钱包还应先查后代数量;替换一笔有大量后代的交易可能被节点拒绝。不同节点启用full-RBF后,第一道信号判断可能放宽,但其他资源和费用策略仍存在。
故障与停止条件
| 误判 | 正确处置 |
|---|---|
| 只比较sat/vB而忽略绝对费用总额 | 保留原始证据,停止外推并按本文步骤复核 |
| 替换交易偷偷增加一个新的未确认输入 | 保留原始证据,停止外推并按本文步骤复核 |
| 节点返回txid就宣称旧交易已被全网撤销 | 保留原始证据,停止外推并按本文步骤复核 |
从输入到验收
| 阶段 | 动作 |
|---|---|
| 准备 | 读取所有输入nSequence和未确认祖先,判断信号来源 |
| 读取 | 收集原交易、冲突交易与后代集合的绝对费用 |
| 解释 | 检查新交易是否加入新的未确认输入 |
| 复核 | 按目标节点增量中继费计算额外费用 |
| 收尾 | 广播后分别显示本节点接受、其他节点传播与最终确认 |
用三条路径验收替换费用门槛
第一条是成功路径。选择一个已经知道结果的对象,执行“读取所有输入nSequence和未确认祖先,判断信号来源”和“收集原交易、冲突交易与后代集合的绝对费用”,同时保存原始输入、原始输出、网络或版本、取证时间。另一位复核者只能读取这些材料,不读取页面上的结论;他需要独立完成RBF信号解释。两次结果一致,说明这个样本可复现,但不能据此承诺所有环境都得到相同结果。
第二条是单变量反例。故意制造“只比较sat/vB而忽略绝对费用总额”,并确保其余字段与成功样本完全相同。系统应明确指出哪一项校验失败,保留错误码、返回值或字节差异;若它自行切换默认值、吞掉未知字段或沿用缓存,测试就算失败。然后再针对“替换交易偷偷增加一个新的未确认输入”建立独立反例,两个错误不要同时注入。
第三条是状态切换。先完成“检查新交易是否加入新的未确认输入”取得旧状态,再改变一个会影响节点策略边界的条件并重新查询。旧证据不能被覆盖,新证据也不能倒推旧时点。页面要把对象主键、上下文和时间放在结果旁边,让读者知道结论针对哪次观察。
最终交接包应包含RBF信号原文、替换费用门槛推导、替换集合限制验收和节点策略边界说明。若出现“节点返回txid就宣称旧交易已被全网撤销”,发布状态只能是待核验,并回到“按目标节点增量中继费计算额外费用”补证据。这样可把底层事实错误、环境变化与界面展示错误分开定位。
来源、增量与风险边界
| 来源 | 本文用途 |
|---|---|
| Bitcoin Improvement Proposals | 正式接口、字段与规范语义 |
| Bitcoin Core Mempool Replacements | 实现路径、兼容性或安全边界 |
本文资料读取于2026-07-20。不同节点版本和启动参数会改变本地接受结果,钱包必须把“已广播”“节点接受”和“已确认”分开显示。
站内相邻主题可继续阅读:比特币交易结构、手续费确认。RBF是内存池策略,不撤销已经确认的交易,也不保证所有节点采用相同策略。收款方应等待适当确认。
发表评论
还没有评论,来说两句吧。
评论区为展示样式,提交不会被处理。