What Happens to Unconfirmed Bitcoin Transactions?
Bitcoin transactions are clear to everyone once they reach their destination. There is a transaction hash that anyone can check on the blockchain explorer and after 2 or 3 confirmations, that transaction is reliable for any purpose. But what happens when you are waiting for that first confirmation? Where do unconfirmed Bitcoin transactions go and how are they sorted out? Here are the answers to those questions without getting too technical.
How do Bitcoin Transaction Confirmations Work?
To understand what happens to unconfirmed Bitcoin transactions, it is necessary to understand how the whole system works:
- A transaction is a message sent to the network that includes the public key of a Bitcoin address, a signature corresponding to the private key, an amount of Bitcoin being sent, and a recipient address.
- When a new transaction is broadcast it ends up in a mempool (memory pool), with other transactions that are waiting for confirmation.
- Miners/nodes pick up the transactions in the mempool and confirm that the address from which Bitcoin is sent exists and has enough funds to fulfill the transaction.
- Miners then confirm these transactions by timestamping them on a block which gets added to the blockchain.
- That block includes a hash referencing previous transactions.
- Each new block will include all previous information on the blockchain, making it increasingly difficult to alter, fake, or forge a transaction the more confirmations it receives.
How Many Confirmations are Needed for a Transaction?
Given the process described above, users must grapple with how reliable one confirmation really is. There is no real answer for this. Many vendors and exchanges require 3 confirmations, because there is a chance that the first confirmation is not solid enough. That is because there are no other blocks referencing that transaction that was just confirmed once. When more transactions are confirmed after that, and they are recorded on subsequent blocks, now the transaction that had one confirmation, adds another confirmation.
This additional confirmation tells us that the transaction in question is now a source of reference for subsequent transactions on subsequent blocks, therefore becoming a more reliable point of reference on an immutable blockchain.
Transactions that only have one confirmation are not as reliable as those that have more confirmations due to the following factors:
- Once a transaction is confirmed on the blockchain it should remain part of the blockchain.
- However, those with enough hashing power could theoretically alter transactions with little confirmations.
- The Bitcoin community sees 6 confirmations as the minimum threshold to accept a transaction with a reasonable risk burden.
- An attacker is unlikely to amass more than 10% of the network’s hash rate, which is the amount of hash rate needed to attack a transaction that has 6 confirmations.
- Bitcoin’s white paper has a section dedicated to the math behind these risk calculations for further reference.
What Happens to Unconfirmed Bitcoin Transactions Then?
Now that you know how the system works, you can understand what really happens with unconfirmed Bitcoin transactions. A Bitcoin transaction can only belong to 1 of the following 3 statuses: confirmed, unconfirmed, or rejected. We know what a confirmed transaction is. A rejected transaction would result from a miner detecting that there are not enough coins in the sender’s address or that these coins have been used before.
Unconfirmed transactions, therefore, are transactions waiting to be confirmed. Most of the time what this means is that they are waiting to be picked up by miners, confirmed on the blockchain, and have this process happen enough times for vendors or receivers to deem it valid.
Transactions with zero confirmations remain in the mempool waiting to be picked up by miners. This usually happens because miners select which transactions to prioritize based on the transaction fee. If transaction fees are too low, miners are not incentivized to process and confirm or reject them; they are not getting paid enough to do so. Unconfirmed transactions can remain in the mempool indefinitely until eventually they are picked up and confirmed or rejected by a miner.
Unconfirmed Transactions or Transactions with Zero Confirmations
Users can push unconfirmed transactions, or transactions with zero confirmations through the mempool, using 1 of the following 3 methods:
- RBF or Replace By Fee protocol – certain wallets allow the original transaction to be replaced by one with a higher transaction fee, which makes it more likely to be picked up by miners.
- Double spending – yes, Bitcoin is designed to pretend this can happen. However, if a new transaction with an equal amount to the original is sent with a significantly higher fee it may be picked up by miners, rendering the first (unconfirmed) transaction invalid. This method could also allow users to “cancel” a transaction by sending the funds to themselves the second time around.
- Child-pays-for-parent protocol – This is a solution that allows the receiver to broadcast the same transaction with a higher fee, moving low-fee transactions higher in the mempool.
What can you do Now?
Those are, in simple terms, the inner workings of the Bitcoin transaction confirmation mechanism. Hopefully, the information here will allow you to understand what happens with unconfirmed Bitcoin transactions and how to push your transactions through. It should also allow you to understand how to prioritize your transactions to save on transaction fees. Think about the following technique, based on the information above:
- If you have are buying something, sending your coins to an exchange or doing anything else that is time sensitive and depends on exchange rates, you should hike the fees.
- Transactions that you are sending to addresses where you hold your coins for long term savings, you can lower the fees.
- Before you send a transaction, take a look at the 7-day average transaction cost to see how much you should spend on a transaction when you want it to get faster confirmation.