子支付父(Child Pays for Parent,CPFP)费率调整

任何收到未确认交易输出的人都可以通过消费该输出来激励矿工确认该交易。您想要确认的交易称为父交易。花费父交易输出的交易称为子交易。

正如我们在“输出点(Outpoint)”中学到的那样,确认的每个输入都必须引用区块链中较早的交易的未使用输出(无论是同一个区块中还是之前的区块)。这意味着希望确认子交易的矿工必须确保其父交易也被确认。如果父交易尚未被确认,但子交易支付的费用足够高,矿工可以考虑在同一个区块中确认它们是否会有利可图。

为了评估挖掘父交易和子交易的盈利性,矿工将它们视为一个包含有总大小和总费用的交易包,从中可以将费用除以大小以计算包费率。然后,矿工可以按照费率对他们知道的所有单个交易和交易包进行排序,并将收益最高的交易包含在他们尝试挖掘的区块中,直到达到允许包含在一个区块中的最大大小(权重)。为了找到更多可能有利可图的包,矿工可以评估跨多个代的包(例如,将未确认的父交易与其子交易和孙子交易相结合)。这称为祖先费率挖掘。

Bitcoin Core多年来一直实现了祖先费率挖掘,据信,目前几乎所有矿工都在使用该功能。这意味着钱包可以使用此功能通过使用子交易支付其父交易(CPFP)来提高收到的交易的费率。

CPFP相对于RBF有几个优势。任何收到交易输出的人都可以使用CPFP,包括支付接收者和支付者(如果支付者包含了找零输出)。此外,它也不需要替换原始交易,这使得它对某些商家的影响较小。

与RBF相比,CPFP的主要劣势是通常使用更多的区块空间。在RBF中,费率提升交易通常与其替代交易大小相同。在CPFP中,费率提升会增加一个完整的单独交易。使用额外的区块空间需要支付超出费率提升成本之外的额外费用。

CPFP存在一些挑战,其中一些我们将在“交易固定”中探讨。我们特别需要提到的另一个问题是最小中继费率问题,这个问题通过包传递来解决。

Last updated