Blockchain Semantics Insights
Business Case | Deep Tech | Announcements | Blockchain Glossary |
Why is Bitcoin transaction not getting confirmed immediately?By Abhishek Singh | April 6, 2018, 8 a.m. GMT
Even though Bitcoin Blockchain takes 10 min to add a block to the chain, users of Bitcoin Blockchain are made to wait more than 1 hour to ensure that their transaction is confirmed.
Let’s discuss this with an example where Rob wants to send Bitcoins to Laura.
Now Rob will have to do three things:
1) Rob will have to get Laura’s Bitcoin address to send her Bitcoins
2) He will have to sign the transaction with his private key
3) Then broadcast the transaction to the network and wait for it to get confirmed.
Once Rob broadcasts the transaction to the wider Bitcoin network, it will be queued for verification. All the transaction in the Bitcoin Blockchain stays in an unconfirmed pool of transaction before it is verified and added to a block. Thus, Rob’s transaction will stay in the unconfirmed pool of transaction till a miner takes it for verification and adds it to a block. Now Rob has to wait till a miner chooses his transaction and verifies it and adds it to a block.
There is one more factor which decides when a transaction will be picked by the miners for verification. It is the fee that the miner will get for verifying it. In Bitcoin Blockchain the transaction fee is decided by the sender. Which means if someone wants to make a quick transaction to someone then he will put a higher transaction fee.
Why is it required?
Because, there are many transactions happening in Bitcoin Blockchain, the number of transaction waiting for verification is high. To give a number, the number of the unconfirmed transaction was 28800 at the point of writing this article. So, the miner has to choose a set of transactions from this pool and on an average, each block contains 900-2000 transactions. Thus, to make a quick transaction the sender should increase the transaction fee. As transaction fee is high every miner will want to mine that transaction. Otherwise, the transaction will be in the unconfirmed pool for a longer period. This is one of the major reason for an increased waiting time in Bitcoin Blockchain. Thus it is necessary to put an optimum transaction fee.
If we consider that Rob had put a high transaction fee, his transaction would get picked up from the pool and would be verified and added to the block relatively quickly. He will still have to wait a little more before he considers that the transaction is completed. Why is that?
Everytime a transaction is added to a block it gets 1 confirmation. If a block is mined which contains Rob’s transaction then this will mean that Rob’s transaction has 1 confirmation and this confirmation value increases by one everytime a block is added to Blockchain thereafter. Like if a block is added to the Blockchain after the block in which Rob’s transaction is present then the transaction will have 2 confirmations. And if a block is mined after that block then Rob’s transaction will have 3 confirmations and this goes on. It is recommended to wait for at least 6 confirmations in order to be 99.9% sure that your transaction won’t get canceled – this takes roughly 1 hour to achieve. If you’re dealing with smaller amounts of money you’re probably fine with waiting for just 1 confirmation.
Why are these confirmations required?
Reversing a transaction takes planning, time and effort and a lot of computing power. It is almost impossible to do that. In Blockchain, if a miner tries to change a transaction from history, he will have to re-mine all the blocks from that block till the current block and this will have to be reflected in every copy of the ledger in the network. While this miner is busy remining old blocks, there will be new blocks getting added to the chain. Thus to edit a historical record, the miner will have to remine the old blocks and keep up with the pace of newly generated blocks too. As Bitcoin Blockchain uses proof-of-work, even to mine a single block takes a lot of computing power. The computing power required to re-mine 6 blocks is practically impossible till date.
Average Confirmation time of a transaction Bitcoin Blockchain is around 800- 1500 minutes. So Rob will have to wait for this much time before he gets his transaction confirmed.