When I receive bitcoins I see a certain number of "confirmations" in the client. What do these mean? Why do most sites make me wait for 6 "confirmations" before a purchase will go through?

up vote 28 down vote accepted

Bitcoin confirmations represent the number of blocks in the block chain that have been accepted by the network since the block that includes the transaction.

In simpler terms it represents the difficulty of a double spend attack. With zero confirmations no proof of work has been done, so you can't tell if anyone considers the transaction valid. Even with a single transaction it is possible for an attacker to pre compute a single block.

With zero or even one confirmation a double spend is very possible since the next block that is solved may confirm a different block instead of the one that has the transaction. That different block my show the coins being spent elsewhere. The odds that a double spend has occurred gets exponentially smaller with each confirmation.

An attacker must match the power of the entire bitcoin network to keep up with block creation so as time goes by it becomes increasingly difficult to forge a transaction.

It is generally accepted for most transactions that 6 confirmations represent enough security to assure the transition is valid.

  • 3
    Probably you should differentiate between "a 50/50 chance that a double spend is possible" and "a 50/50 chance that a double spend occurred" since many people might take the former to mean the latter. – eMansipater Sep 8 '11 at 0:34
  • 2
    This answer could be improved be indicating the chance of a double spend is not 50/50. It is based on the % of hashing power the attacker has (assuming it is less than 50%). Thus if the attacker has 10% of hashing power he has a 10% chance of reversing one block. Roughly a 0.1^2 = 1% chance of reversing two blocks, etc. If the attacker has an 51% of hashing power then this doesn't apply as it requires an infinite number of blocks to ensure the transaction can't be reversed and thus alternative means are necessary to protect the block chain. – DeathAndTaxes Nov 23 '11 at 16:35
  • Most of this post succinctly answers the main question, but the 50/50 section is downright false. It would be great if that could be improved. – Murch Oct 22 '14 at 11:22
  • @Murch the 50/50 comment intentionally leaves out hashing rate because it is an unknown variable. You DO NOT KNOW the hashing rate a *possible* attacker *may* be employing when considering confirmations, but I agree that isn't clearly explained so I will clarify the answer. It is not "downright false", just unclear. – Joshua Kolden Oct 23 '14 at 10:32
  • @JoshuaKolden Sorry, "downright false" was indeed the wrong way to put it. What I meant was: Maybe the expression "50/50" is used differently colloquially, but reading "about a 50/50 chance" would to me imply equal chances (50%/50% out of 100%) for each case. To somebody at the knowledge stage of asking "What is a confirmation?" it would sound as if double-spending is frequent, as well as much more likely to succeed than it is in reality, and that one should always wait for six confirmations to securely receive payments. The paragraphs implies more accuracy than the described scenario allows. – Murch Oct 23 '14 at 11:54

If you don't grasp the basic concept, imagine for a second that a network outage split the bitcoin network in half. I could send one transaction giving 30 bitcoins to Abel to one half and one transaction giving those same 30 bitcoins to Fred to the other. Each half would accept that transaction and until the two halves reconnected, you wouldn't know which transaction would be honored tomorrow.

Confirmations are simply blocks that have been generated after the block that contains your transaction. Because there is no central authority that can be consulted to be sure a transaction will be committed, recipients use the number of confirmations as a way of protecting against double-spend attacks.

The network is always trying to extend the longest chain, and eventually, some chain will win. The deeper the transaction is in the chain, the higher the chance it will win because the network tries very hard not to duplicate efforts. (Because miners want their coinbase transactions to win, they all try very hard to extend the chain most likely to win, which makes sure it does in fact win.)

Effectively, the more confirmations, the higher the likelihood that a transaction will remain forever in the public hash chain rather than a conflicting transaction if there was one. At 6 confirmations, it is perhaps one in a billion that a transaction won't be permanent -- and that's if the sender is attempting a double spend attack.

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.