In a Medium post published October 2, 2018, Coinbase explained why their engineering team is taking another look at the established Child Pays for Parent technique to make sending and receiving bitcoin a more consistent experience.
Bitcoin Fees Are a Double-Edged Sword
While Bitcoin transaction fees are significantly lower than most traditional methods of cross-border payments, the price added to sending bitcoin is as volatile as the price of the cryptocurrency itself.
On occasions, fees can be as low as one Satoshi per kb during times of extremely low network activity. However, in other cases when network usage surges, like in the last quarter of 2017, it was reported that people were paying as much as $28 per transaction, more than a Western Union remittance.
The problem is further compounded by the auction market behavior fees follow. If the hypothetical Alice were to submit a transaction to be included in the next block at the expense of five Satoshis/kb, but network activity surges and Bob sends a transaction with a fee of 25 Satoshis/kb included.
Alice’s transaction essentially goes into limbo: Alice isn’t able to cancel the transaction, but the receiver has no indication that the bitcoin has been sent. Alice can only wait until network activity, and subsequently, network fees, come back down for her transaction to be accepted by a miner.
Coinbase’s Solution
The Child Pays for Parent principle boils down to the fact that an output of one transaction will later become the input for a new operation. Alice sending Bob bitcoin would be an output for Alice but would be a new input that Bob could use at a later date.
Typically, a second transaction called a “change output,” is sent back to the sender. In layman terms, this would be like paying for a $12 box of donuts with a $20. The $8 as change would be the change output and the sum that Coinbase would manipulate to save transactions from limbo.
Miners see the fee of both the parent and child as one unit since the transactions essentially need to be confirmed together. While we can’t change the parent transaction, we can change the fee for the change output, making a transaction more economically attractive to miners.
Coinbase has been deploying this feature across their platform gradually over the last few months, automatically increasing the fee for any customer with a transaction stuck for over four blocks. Their post reports that thousands of transactions have been saved already with that number only increasing as the feature becomes more widespread.