When making Bitcoin transactions, setting low fees can leave them stuck without confirmation.
RBF, CPFP and transaction accelerators are methods that allow transactions to be unblocked.
This article was written by Diego Gurpegui, information systems engineer and co-founder of Improve-in. In this guide, a bitcoiner and volunteer from the NGO Bitcoin Argentina, explains three ways to ensure that our transactions locked in the Bitcoin network are confirmed or expedited.
What are Bitcoin network miner commissions?
When we transact in Bitcoin, the concept of a commission or fee appears, which refers to the amount we have to pay to have our transaction included in the block chain (the final record of all transactions) and, therefore, accepted as valid by the rest of the network . This concept must be considered in order to unlock a Bitcoin transaction.
One of the first differences noticed when entering this world, compared to the traditional one, is that this commission is not proportional to the amount we transfer, but it depends on the size of the transaction; a strange idea for those who do not know the technical specifics of Bitcoin. To simplify, we can say that the size has a direct relationship with the complexity of the said transaction (transferring funds to one person is not the same as transferring funds to three people at the same time, for example, where the latter is more complex).
The main reason this commission depends on the size of the transaction is that the miner has to include it in a limited block size. Since the size is limited, it is assumed that miners will choose those transactions that give them the highest commission, since they are the ones collecting them.
Why should I care about all this? The answer is that it is useful to have this basic understanding of committees and the reason for their existence in order to understand them The amount of these fees is based on the free market, between users making transactions and competitors to find their place in the block. Accordingly, there are no set rules or values that ensure the confirmation of our transaction at a given moment in a definitive and absolute manner. A high commission today can be very low tomorrow.
This is a lesson that many must have learned the hard way when a transaction is “stuck” waiting for confirmation for longer than they would like (hours, days…weeks!). Sometimes by miscalculation, other times by the wrong button press, and sometimes simply from some external cause, such as Bitcoin network congestion. In short, it is always to blame for not reporting enough of those cursed (or blessed?… topic for another article) royalties.
How to unblock or speed up a transaction in Bitcoin?
There are some techniques and we will explain each of them below.
Important: It’s worth clarifying that when we talk about “wallets” (or purse/wallet/wallet) we mean user-controlled wallets; not stock exchanges, nor brokers or any sites or platforms you enter with a username and password, and private keys (those 12 or 24 words, which they call “seeds”) are not controlled.
Replace the transaction with commission or RBF (Replace with commission)
We can replace a low commission transaction with a new transaction that now includes sufficient fees. The condition is that the first transaction is created in a special way so that it can be replaced later.
This method, which in Spanish would be called “exchange by commission”, is designed specifically for the purpose we want to achieve. That is, unblocking a transaction in Bitcoin. This allows, in short, increase the fee for a transaction that has already been sent to encourage those miners to include it in the next block.
This works by sending the original transaction again from your wallet, but this time with a higher fee according to the market context at the time (wallets usually help with this calculation). Technically speaking, the transaction is not exactly the same but a very similar one that replaces the previous one, but this is not a detail that should worry the average user.
This solution seems to be ideal, but it depends on certain conditions which must be fulfilled:
- The wallet used must support this feature. Here’s one list of different wallets and the support they provide to RBF.
- Second and VERY IMPORTANT is that the original transaction (the one that ended up having a low commission to be included) should have been marked as “replaceable” from the beginning. This is the only way that the transaction can later be replaced with another one that has a higher commission.
For these reasons, some wallets choose to leave the feature active that indicates transactions are fungible by default. This article shows some examples de wallets con RBF.
I have two comments regarding this functionality. First, its existence is not a mandatory rule in the Bitcoin network, so its proper functioning depends on a large part of said network assuming it is valid (not a problem today anyway). And, secondly, given the nature of his work, It is important that if someone is on the receiving end of a payment with an RBF transaction, they wait for some confirmations before accepting it as valid. This is clearly seen in some service companies such as exchange offices that when receiving payments with transactions they use RBFthey usually wait for 6, 10 or more confirmations to consider the payment made.
Speed up the transaction with CPFP (Child Pay For Parent)
Using the necessary order that transactions must follow (first I receive, then spend) and the miners’ economic incentives, we send a second transaction that consumes the funds from the first one that was blocked. Only in this second transaction do we include enough commission for both transactions.
When we don’t have a specific functionality available to unblock or speed up a transaction, there is a mechanism that takes advantage of existing Bitcoin rules and the expected behavior of the actors involved.
Before we get into that, we must first understand that in Bitcoin (or any monetary transaction system), the transaction that consumes the funds must be timed after the one in which the funds are received. That is, we cannot send funds that we do not have (basic, right?). Furthermore, we can assume that miners, who build blocks and include transactions in them, will operate according to what generates the greatest economic return.
So what is the use of this knowledge for us to unblock our transaction?
Suppose our transaction has a commission of 1 satoshi per byte or hour/byte (price by weight) and cannot be taken by any miner. We check our wallet or trusted site and see that the average commission is online 30 hours/byte per transaction, with which we realize that we are far below. Then, taking advantage of what we just described, we issue a new transaction that moves the funds received from the first, but with a much higher commission, from 59 hour/byte.
This second transaction already captures the interest of the miners, but they will not be able to include it in the block if they do not first include the first transaction, because, if not, the second would be invalid, as it depends on the first. Miners see that the first transaction has a fee of 1 hour/byte, and the second 59 hour/byte, which gives a total commission of 60 hours/byte for two transactions. It sounds reasonable for market values, so miners will take them to include in the block.
If the previous procedure is understood, some doubts may arise: how should I do it, if I don’t want to move the funds from the first transaction? How could I transfer the funds from the first transaction, if they were not sent to me?
The questions can be answered with two concepts: the first considers the fact that In Bitcoin, one can transact for oneself. The second is based on the idea of ”change” or “return” in transactions. “Refund” exists in Bitcoin because the output coins in a transaction cannot be split, but must be spent in full, similar to what happens with paper bills (which I don’t recommend breaking). This relates to the concept of UTXO, which we won’t go into here, but feel free to explore further.
Let’s take a concrete and visual example where Bruce has 2000 and wants to transfer 1300 to Clark (any resemblance to superhero names is purely coincidental). Transaction 1 exited with a very low fee, so Bruce uses CPFP and issues another transaction after the return to include transaction 1 in the block:
An example of a child transaction that sets a much higher fee in order to confirm the parent transaction along with it. Source: author.
As we can see in the graph, the child transaction pays its commission and the commission of the parent. Also note that, within the same transaction, the input values must match the output values plus the fee.
The advantage of this mechanism is that you will not depend on any additional pre-configured functionality and this can be done in almost any scenario.
Although CPFP can be done manually by any user (using wallets like Electrum, Bitcoin Core or tools like Bitcoin Forge, with proper care), can be very complex for the inexperienced. Therefore, it is easiest to use one of the wallets that support this functionality and allow the user to use CPFP in an easier way, just by pressing a few keys. Some wallets that explicitly support this functionality are:
Bitcoin transaction accelerators
If we pay some miners an extra commission, they will be willing to include our transaction in the next block they mine.
When no system method (protocol) works to unblock a transaction in Bitcoin, we just have to go directly to the miners and ask them to include the transaction. And when we say “please ask” we really mean, in many cases, “pay the right price”.
Moose transaction accelerators They are, in almost all cases, web tools that provide a service whose goal is to make that “stuck” transaction that has not yet been confirmed faster. Provision must be made for this Transaction ID (or TX ID in jargon), which is usually obtained from the wallet used when consulting the said transaction, or through the blockchain explorer, specifying the address that sends or receives the funds.
Once you’ve provided the transaction ID so the accelerator knows what it’s dealing with, the solution consists of one of two techniques: the first is simple propagate the transaction in question over and over again so that it reaches the miner’s “eyes” with greater frequency and insistence, and the second is that a particular miner deliberately includes the transaction in the next block to be mined. The first alternative is usually offered for free, is not necessarily offered by miners, and may not be very efficient; while others, as you can imagine, comes with a price tag since the miner will want to be compensated for including a transaction with such a low fee that he would otherwise not consider.
Some of the famous accelerators are:
This type of solution is a mechanism that is highly dependent on third parties, and in some cases even with the payment of money in advance, It is advisable to do good preliminary research to be aware of what you are going to do and above all to choose a service provider with the best reputation, for which you will not regret paying later.
Summary of Alternatives to Unblock a Bitcoin Transaction
Here’s a quick summary to help you decide when to use each mechanism to unblock a Bitcoin transaction:
|It requires preparation
|Dependent on third parties
|New commissions only
|New commissions only
|TX Accelerator (Propagation)
|Free of charge
|TX accelerator (pool/miner)
|Price indicated per pool/miner