Coinbase Leverages “Child Payments” to Enhance Bitcoin (BTC) Transactions
San Franciso-based cryptocurrency exchange and wallet Coinbase revealed an innovative method for handling millions of “stuck” Bitcoin transactions on its platform, addressing one of the most voiced problems with the rising asset class on an enterprise level.
Bitcoin’s “Stuck” Transactions
As published on its official blog on Oct. 3, Coinbase detailed the “Child Pays for Parent” (CPFP) procedure to fulfill thousands of BTC transactions per day, circumventing issues faced by customers due to network congestions, volatile fees, and slippages.
Noting the foremost steps taken to avoid customer dissatisfaction, Coinbase stated two steps are taken if transactional issues arise; first, balancing the transaction fee in real-time. Second, manually choosing a fee to include transactions faster in a particular block.
For the uninitiated, Bitcoin transactions rely on an auction-like, fee-based structure for miners to include transactions on the network. Typically, the highest fees are the most preferred, and low fees take substantial time to be confirmed. However, if several people rely on the same third-party applications to include their transaction on the next block while offering the same fees; the latter is expected to increase significantly in the case of network congestion.
The problem herein lies in transactions with higher fees getting confirmed ahead of a person who attempted to transact prior to an increase in network activity. Such a setting leads to “stuck” transactions, which continue to be unconfirmed unless the network is decongested and the fee rates drop.
Leveraging Bitcoin Protocol
A possible solution to the points as mentioned above is to introduce a method for incentivizing miners to confirm transactions that are listed on a low rate during times of network congestion. Such an economic strategy is called the CPFP, which leverages the math behind the Bitcoin protocol for inputting older, low-fee transactions before confirming new, more-fee ones.
Blockchain transaction fees can be notoriously volatile. Learn how our engineering team is using a technique called Child Pays for Parent to improve the reliability of #Bitcoin transactions for our customers. #CPFP https://t.co/oRzxeqx9RM
— Coinbase (@coinbase) October 3, 2018
At its core, Bitcoin transactions represent inputs and outputs of BTC value on a shared ledger, with each transaction mathematically a “child” of its parent. In addition, transactions always include a “change output”–similar to paying $10 for a $5 product and receiving $5 in change.
Now, while miners always choose the most profitable transactions to include in a block, the Bitcoin protocol makes it impossible to allow child transactions before a parent transaction is added–the former can either be in a later block or the same block.
However, when multiple “dependent” transactions are pending at the same time, the Bitcoin code calls for computing the transactional fees of a whole set of transactions simultaneously, instead of looking at them individually.
For miners, the above makes sense, as transactions are valid only when confirmed together. Since fees are computed over a group of dependents (child and parents), a child transaction–with its change output controlled by Coinbase–with a higher fee can be submitted alongside low-fee transactions.
Increasing Bitcoin Adoption
Miners have more profitable transactions available to them, but the CPFP’s structure means some less profitable transactions are picked up as well.
Coinbase has implemented this method to speed up bitcoin transactions on their platform, estimating they have “saved” thousands of users that may not have been possible for hours. The exchange believes the method lends reliability to bitcoin transactions while ensuring inclusivity.
Meanwhile, if transactions continue being stuck for more than four blocks, Coinbase pays for a child transaction for “rescues” the parent transactions, adding they batch all transactions so multiple parent transactions are included with a single child transaction.