The term Child Pays For Parent or CPFP, refers to a transaction that allows us to promote the confirmation of a transaction "stuck" in the mempool of a cryptocurrency. This is because it has a very low mining fee and therefore has no priority for miners.

Las type transactions Child Pays For Parent (CPFP) They are those in which a transaction with a higher mining rate is created, so that when this new transaction is sent to the network, it forces the confirmation of another previous transaction that has not yet been confirmed. This in order to encourage miners to perform the confirmation of these transactions much faster.

Although its concept seems very similar to fee replacement transactions (Replace By Free) they should not be confused with this one. Since CPFP transactions do not invalidate the previous transaction, but instead, it must be confirmed together with the new transaction created. Furthermore, in CPFP the secondary transaction is only created to motivate miners to process and confirm both transactions, and thus be able to receive the associated commission. Therefore, they are known as "the child pays for the father".

How do Child Pays For Parent transactions work?

When a transaction remains unconfirmed on the Bitcoin blockchain, while new blocks appear, it is mainly due to the payment of an insufficient fee. It is especially noticeable when the network is congested. In these times of congestion or high demand, miners prioritize only those transactions that have a high or minimally acceptable commission rate. So those transactions with a very low commission may be stagnant and unconfirmed in the bitcoin mempool for several days, and even weeks. Leaving its recipients waiting for the transferred funds for an indefinite time.

To solve this, the method is implemented Child Pays For Parent (CPFP), where the user of the unconfirmed transaction can create a new transaction, known as a child transaction. In it you will have to put a transaction fee much higher than the original transaction.

This new CPFP transaction will use this balance generated by the unconfirmed main transaction to create a new transaction that takes that balance to a new address. That is, if a user creates a transaction to send X amount of funds, and has in his wallet a little more than those funds, the wallet will automatically create 2 outputs. The first to send X amount of funds to the recipient, and the second to receive the returns or exchange of said transaction.

Recall that in Bitcoin transactions, all outputs must be spent. This is possible thanks to the fact that the first transaction generated a cryptocurrency sending transaction. But at the same time we returned a certain amount of unused cryptocurrency to a direction of change under our possession. This amount of unused cryptocurrencies is called an unspent transaction exit or UTXO. In short, a CPFP is used by our UTXO balance to generate a new transaction with a higher mining fee in order to speed up the confirmation of the initial transaction.

So, if that operation is unconfirmed, the user can create a child transaction (CPFP) associated with the parent transaction, where he will send those laps or change to another address of his own. The important thing is that this new transaction will have a very attractive commission rate for miners and that covers the commission necessary to process both transactions.

The moment miners see the secondary transaction, they will be drawn to confirm it to collect the associated commission fee. But they will not be able to confirm said transaction independently, without first confirming the main transaction first. So they will evaluate and verify the secondary transaction to see if it has the necessary fees to cover both transactions.

Once the miners verify this, they will choose to add the main transaction to the next mined block, so that they can also confirm the secondary transaction. To collect the commission fee included in this, and which is acceptable to process both transactions.

How much do you know, cryptonuta?

Does this functionality allow double spending attacks?

FALSE!

Performing a Child Pays For Parents (CPFP) does not mean that you are spending twice as much. In fact, this is impossible because a CPFP never replaces or prevents a transaction already made from being denied in one way or another. Instead it simply allows us to accelerate your acceptance by the network. So here is another myth of Bitcoin ousted.

Which customers or wallets include the CPFP option?

Among the most used wallets that allow the creation of a transaction Child Pays For Parent (CPFP) find the original customer Bitcoin Core, or the wallet of Electrum, among other. And although in these the CPFP function does not appear as such, the UTXOs of the original transaction can be sent to a different own address. Including, of course, the commissions necessary to cover both transactions, thus creating a CPFP transaction.

This function is very useful for those wallets that do not have a defined mechanism to speed up the confirmation of a waiting transaction. So with generating a secondary transaction you can activate CPFP.

This method does not involve any complicated or difficult process either, on the contrary, it is quite simple and easy to apply. It is based on the rules of the Bitcoin protocol, and on knowing the natural behavior of miners. And the miners will obviously choose to quickly process those transactions with much higher commission rates.