交易包中继的三年松绑:v28 开门、v30 扩拓扑、v31 连零费父亲也放行 图 1
交易包中继的三年松绑:v28 开门、v30 扩拓扑、v31 连零费父亲也放行 · 图 1

一笔低费率的比特币交易能不能进别人的内存池,曾是全凭运气的事:父亲太抠门,节点直接连子一起拒。过去三年,这条政策的闸门被松了三次——v28 开了交易包中继的门,v30 把能过关的拓扑画大,v31 连零费的父亲也放进来。发布说明里每条只有几行,合起来却是一张完整的松绑时间线。本文把三版原文对齐,标出每一格放宽了什么、还卡着什么。

v28:先解决”父亲太穷进不了池”

v28.0 发布说明的措辞很克制:费率过低的交易现在会被机会性地与其子交易配对,以包的形式通过既有交易中继协议提交;这让节点能够在父交易低于内存池最低费率时完成有限度的包中继。两条边界同时写死:一是只支持一父一子的包,说明里特别提醒,与 submitpackage 接口不同,多个未确认父亲的情况在 P2P 路径上不受支持;二是”在对抗条件下尚不可靠”——这是特性预告,不是稳定承诺。同一版还给 TRUC 交易留了特权:这类拓扑受限交易的父亲允许低过最小中继费率,甚至零费。

交易包中继的三年松绑:v28 开门、v30 扩拓扑、v31 连零费父亲也放行 图 2
交易包中继的三年松绑:v28 开门、v30 扩拓扑、v31 连零费父亲也放行 · 图 2

v30:一父一子扩成”孩子有其他在池父亲”

v30.0 的改动一句话带过但分量不小:机会性一父一子包中继被改进为能处理”子交易已经带有未确认父亲”的情形,也就是说子交易可以挂在更宽的拓扑上——多父一子(其中只有一个父亲需要加费)、祖父母父子的链条(同样只有一个父亲等钱),都能被接受并继续传播。关键在于新加进来的那些父亲们必须已经在内存池里:这次放宽没有给”整族未确认”开绿灯,只是允许包里恰好有一个父亲是来要饭的。同一版内存池的孤儿库也换了算法,为迟到交易按体积记账,两件事合起来看,是节点对”父母双全才能进门”这条老规矩的两次不同方向的让步。

v31:非 TRUC 包的父亲也能零费

v31.0 发布说明把 v28 那段特权文字改写了一半:参与一父一子包中继的交易,其父交易现在可以低过 -minrelaytxfee 设定的费率,甚至零费——并且明确注明这是把 28.0 版只给 TRUC 的放宽推广到非 TRUC 交易。同版把内存池重做成簇结构,包与依赖链的记账单位从祖先后代计数改为连通分量计数,簇上限六十四个成员、十万一千虚拟字节;旧文档里以”祖先数量”为前提的直觉要整体重学。还有一条不变的边界值得反复强调:v31 原文仍然写着,子交易可以有额外的未确认父亲,但这些父亲必须已经在内存池里,包才能被中继。

这条松绑线对普通人意味着什么

闪电通道的锚定输出设计从第一天就假设”关闭交易的加费由孩子来补”,v28 到 v31 的三步恰好把这套假设的适用面从实验性特性扩到普通交易:给一笔卡在低费父亲名下的子交易加费,从”看运气”变成协议内的常规操作。但三版说明都留着同一句底色:机会性意味着节点可以选择不看你的包,对抗环境下的可靠性是逐步建设而非一次到位;真要把包当作确定性的提交手段,走 submitpackage 接口、按当期版本的大小与费率规则组包,仍然是比被动中继更稳的路。

风险提示:本文逐条依据比特币核心 v28.0、v30.0、v31.0 发布说明整理,包中继政策的边界仍在演化,请以实际运行版本的文档与策略源码为准。内容为技术说明,不构成任何投资建议。