As far as I understood so far, CPFP and BIP125 are both designed to help spenders to make new transactions using an input of an unconfirmed transaction by paying the cost. The most well known use case of them are when the spender wants his/her transaction confirm faster by raising the transaction fee. In BIP125 the node accept the new conflicting transaction if the newer one pays enough fee. But in CPFP method, the spender should construct a new transaction spending an output of the low-fee (parent) transaction, to encourage miners to include both transactions in the block they're mining.
Can someone explain the most important differences between these two approaches? Mentioning pros and cons of each one and which one is now more acceptable in the community.
The differences I can see:
- I believe BIP125 is easier to implement rather than CPFP. Because calculating overall fee of a chain of transactions, we should see them as packages and I think implementing packages have some challenges.
- On the other hand CPFP is not introducing any new rule or alteration in the protocol. I think it doesn't need any change in the protocol, but BIP125 is changing the way nodes are interpreting transactions.
- Using BIP125 is more space saving, because it doesn't include 2 transactions (or more), it will throw the older transaction away and replace the new one. But in the CPFP both transactions are consequently included in the blockchain.
I appreciate any idea of how these two approaches differentiate each other.