CPFP是什么?比特币父子交易加速与组合费率完整教学


比特币付款还没确认,收款人除了等待,有没有可能帮忙加速?

如果收款人能花费这笔未确认付款产生的输出,且钱包与节点支持相应处理,就可能透过CPFP 建立另一笔交易,提高相关交易组合的费率,吸引矿工一起收录。

CPFP 不会替换原付款。它建立的是依赖原付款的新交易,因此理解「父子关系」与「组合费率」,比只看子交易付了多少费用更重要。

CPFP 是什么? Child Pays For Parent 的意思

CPFP 是Child Pays For Parent 的缩写,常译为「子交易为父交易付费」。

它是一种交易费用调整方式:花费低费率未确认交易的某个输出,建立较高费率的子交易,让父子交易一起被收录更有吸引力。

其中「为父交易付费」是经济效果的描述,不是把额外费用填回父交易,也不是让父交易原本的手续费数字改变。

本文以Bitcoin(比特币)的一般交易为主,不将特定钱包功能视为全网通用介面。

父交易与子交易是什么?

Bitcoin 交易输入会引用先前的UTXO 未花费交易输出。若交易B 花费交易A 产生的输出,A 就是B 的父交易,B 是A 的子交易。

在符合条件的情况下,子交易可以先被建立与传播,不必等父交易取得一个确认后才开始处理。

但在有效链上,必须先有父交易产生输出,才有子交易花费它。父子交易可以出现在同一个区块,父交易在区块中的顺序须早于子交易。

项目 父交易 A 子交易 B
资金来源 引用更早交易的输出 花费A 产生的至少一笔输出
原本状态 未确认且费率偏低 为提高组合费率而新建立
能否独立于另一笔成立 不依赖 B 不能在没有A 的有效历史中成立
加速时的作用 需要一起被收录 提供更多费用诱因

CPFP 为什么可能加速确认?

在Mempool 交易池中,交易不一定是各自独立的候选项目。矿工若想收取子交易的费用,就必须处理它依赖的未确认交易。

如果相关组合的费率具竞争力,矿工可能选择一起收录。这是CPFP 的核心原理。

不过,并非全网有一个共同排序名单,也不是只要子交易费率高,矿工就必须将它放进下一个区块。传播、接受政策、依赖关系及后续费率竞争都会影响结果。

CPFP 组合费率怎么算?

先以「一笔未确认父交易+一笔子交易,且没有其他未确认依赖」的简化情境说明:

组合费率=(父交易费+子交易费)÷(父交易虚拟大小+子交易虚拟大小)。

费用以sat 计算,虚拟大小以vB 计算,得到的单位就是sat/vB。这是依两笔交易费用与大小加总推导的算例,不是任何节点都必定接受的门槛公式。

范例:父交易只有2 sat/vB,如何让组合达到10 sat/vB?

假设父交易大小为200 vB,已支付400 sat;预估子交易大小为150 vB,希望两笔合计达到10 sat/vB:

计算项目 结果
父交易原费率 400 ÷ 200=2 sat/vB
父子总大小 200+150=350 vB
目标总费用 350 × 10=3,500 sat
子交易需支付 3,500-400=3,100 sat
子交易本身费率 3,100 ÷ 150≈20.67 sat/vB

子交易的费率约为20.67 sat/vB,组合费率才达到10 sat/vB,因为它也承担了提高整体竞争力的成本。

反过来,若只让子交易本身支付10 sat/vB,也就是1,500 sat,组合费率只有(400+1,500)÷350≈5.43 sat/vB。

以上均是假设数字,不代表当前建议费率。实际签署后的大小、费用取整及政策要求仍须核对。

有其他未确认祖先时,不能只算两笔

若父交易本身又依赖其他未确认交易,实际需要一起考虑的范围可能更大。若有其他子交易或更复杂的相连结构,矿工与节点也可能依交易群组评估。

因此,简单父子平均公式适合入门算例,不能直接代替所有版本的实际区块选择演算法。

谁可以使用CPFP?付款人与收款人都可能吗?

判断重点是「谁能花费父交易中的适合输出」。

角色 可能使用的输出 需要确认
付款人 自己控制的找零输出 是否有找零、金额及花费条件是否适合
收款人 自己收到的未确认输出 钱包是否允许建立相应子交易
交易所用户 通常由平台控制的链上输出 平台是否提供相关处理服务
其他人 不一定具有花费权限 只知道TxID 不代表能操作

一般情况下,付款人不能任意花费收款人的输出,收款人也不能任意花费付款人的找零。

如果付款直接存入交易所,由平台控制对应地址,使用者不能只凭帐面余额,在自己的钱包建立该输出的CPFP。

CPFP 操作教学:一般钱包流程

以下是通用检查顺序,实际按钮及支持条件依钱包不同。

步骤一:确认父交易仍未确认

取得原付款TxID,核对网路、地址与确认状态。父交易如果已经确认,便不再需要靠它的子交易带动确认。

步骤二:查看能否花费合适输出

确认自己控制的是找零还是收款输出,并查看钱包是否提供CPFP、子交易加速或相应的币控制功能。

若钱包限制使用未确认输出,或输出有不符当前条件的锁定要求,就不能假设按一般转帐即可完成。

步骤三:核对整个组合的费用

除了子交易自身费率,也查看父交易大小与费用,以及是否有其他未确认依赖。可优先使用钱包提供的组合估算,再确认额外成本。

所选输出的金额需足以安排子交易费用与有效输出;若需要加入其他输入,子交易大小及费用也要重新估算。

步骤四:确认子交易目的与签署内容

常见方式是将资产移至自己控制的地址。检查新地址、金额与费用,不要为了加速而把资产转给陌生服务。

签署应在自己的可信钱包或硬体钱包流程完成,公开查询与加速咨询不需要交出助记词。

步骤五:追踪父子两笔交易

CPFP 会新增子交易TxID,父交易TxID 不因建立子交易而改变。确认时要查看两笔状态,不能只看到子交易已广播就认定父交易已完成。

CPFP 与RBF 有什么不同?

RBF 费用替换会建立与原交易存在输入冲突的替代交易;CPFP 则建立依赖原交易的后续交易。

比较项目 CPFP RBF
原交易 保留,仍需要确认 与替代交易竞争
资金引用 花费原交易产生的输出 与原交易竞争使用至少一笔相同输入
谁能操作 能花费合适输出的一方 能授权替代交易的一方
TxID 保留父交易ID,新增子交易ID 产生替代交易ID
费用判读 父交易与子交易都要计算 查看最后有效交易及额外服务费

两者不是固定哪个比较便宜。应比较钱包支持情况、交易结构与实际成本。已有子交易时,也可能影响钱包可提供的替换选项。

CPFP 会收两笔矿工费吗?

若父子两笔交易都确认,两笔各自的费用都会计入,不像RBF 的原交易与替代交易互相冲突。

前述范例中,父交易费是400 sat,子交易费是3,100 sat,整体费用为3,500 sat。若另有服务费,则还需额外核对。

如果父交易已自行确认,而子交易也已有效广播,子交易并不会因此自动取消。它仍可能作为一般后续转帐继续确认并支付费用,操作前应考虑这个结果。

为什么CPFP 可能没有成功?

情况 可能影响
组合费率仍不足 只看子交易高费率,忽略父交易或其他依赖成本
父交易未被相关节点看到或接受 子交易缺少可处理的前置资料
交易群组不符合政策 相连交易数量、大小或结构受到限制
父交易被有效冲突交易取代 原输出未在有效历史中成立,子交易失去来源
输出金额不足或无法花费 无法建立符合条件的子交易
市场费率又上升 原本估算不再具有相同竞争力

Bitcoin Core 31.0 的政策变化

Bitcoin Core 31.0 引入cluster mempool,以相连交易群组处理相关限制,并移除旧有CPFP carveout 例外。

移除carveout 不等于取消CPFP。它改变的是部分特定交易结构如何取得政策例外;一般读者仍可理解父子交易的加速原理,但不宜照抄旧版固定限制及「一定能多塞一笔子交易」的说法。

另外,将交易提交给一个节点,与保证全网传播、保证矿工收录是不同事情。套件提交与转发能力依软体版本及交易结构而异,不能以提交成功视为加速完成。

CPFP、双重支付与交易确认的关系

正常CPFP 是花费父交易建立的输出,不是竞争花费父交易原本的输入,因此不应直接称为双重支付。

不过,父交易尚未确认时,不能把收款视为完全不可改变。若原付款失效,依赖它的子交易也可能无法成立。

父子都被收进有效区块后,仍须依需求查看确认深度。

CPFP 常见问题FAQ

CPFP 中文是什么?

常称为子交易为父交易付费,或父子交易加速。

一定要付款人才能使用吗?

不是。能花费父交易中合适输出的一方,都可能在符合条件下操作,包括收款人。

父交易没确认,子交易能先建立吗?

可以在符合条件时先建立及传播,但有效链必须先包含父交易,才可包含花费其输出的子交易。

父子可以同一个区块确认吗?

可以,区块内须先排列父交易,再排列子交易。

子交易费率很高,就一定能加速吗?

不是。要一起考虑需要收录的未确认依赖、费用及接受政策。

CPFP 可以取消原付款吗?

不能把CPFP 当成撤回父交易的方法;它本身依赖父交易成立。

收到交易所地址的BTC,可以自己做CPFP 吗?

通常不能直接操作由交易所控制的输出,应先询问平台提供的处理方式。

CPFP 后原交易ID 会变吗?

不因建立子交易而改变;需要同时记录父交易与子交易各自的TxID。

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