Confirmation: Difference between revisions

From Bitcoin Wiki
Jump to navigation Jump to search
Belcher (talk | contribs)
→‎Confirmation Times: added comment about unintuative
Belcher (talk | contribs)
m →‎How Many Confirmations Is Enough: added link to irreversible transactions page
 
(13 intermediate revisions by 2 users not shown)
Line 3: Line 3:
With each subsequent block that is found, the number of blocks deep is increased by one.
With each subsequent block that is found, the number of blocks deep is increased by one.
To be secure against [[double spending]], a transaction should not be considered as '''confirmed''' until it is a certain number of blocks deep.
To be secure against [[double spending]], a transaction should not be considered as '''confirmed''' until it is a certain number of blocks deep.
Note that unconfirmed transactions do not [[Transaction expiration|expire]].
=Number of Confirmations=


The classic bitcoin client will show a transaction as "n/unconfirmed" until the transaction is 6 blocks deep.
The classic bitcoin client will show a transaction as "n/unconfirmed" until the transaction is 6 blocks deep.
Line 13: Line 17:
6 blocks are overkill for casual attackers, and at the same time powerless against more dedicated attackers with much more than 10% hashrate.<ref>[https://bitcoil.co.il/Doublespend.pdf Analysis of hashrate-based double-spending]</ref>
6 blocks are overkill for casual attackers, and at the same time powerless against more dedicated attackers with much more than 10% hashrate.<ref>[https://bitcoil.co.il/Doublespend.pdf Analysis of hashrate-based double-spending]</ref>


Coins generated aren't considered valid by the Bitcoin protocol for 100 blocks.
Freshly-mined coins cannot be spent for 100 blocks.
It is advisable to wait some additional time for a better chance that the transaction will be propogated by all nodes.
It is advisable to wait some additional time for a better chance that the transaction will be propagated by all nodes.
Some older bitcoin clients won't show generated coins as confirmed until they are 120 blocks deep.
Some older bitcoin clients won't show generated coins as confirmed until they are 120 blocks deep.


==Confirmation Times==
==How Many Confirmations Is Enough==
 
Transactions with 0/unconfirmed can be reversed with not too much cost via [[Irreversible_Transactions#Attack_vectors|Finney attack and race attack]], but in some cases may still be acceptable especially for low-value goods and services, or ones which can be clawed back.
 
For transactions with confirmations, the website (https://people.xiph.org/~greg/attack_success.html) can be used to calculate the probability of a successful doublespend given a hashrate proportion and number of confirmations. Note that in the reality of bitcoin mining today, more than 6 confirmations are required. (60 confirmations to have <1% odds of succeeding against an entity with 40% hash power). See Section 11 of the (https://bitcoin.org/bitcoin.pdf bitcoin whitepaper) for the AttackerSuccessProbability formula.
 
Some mining enterprises may hide their hash power across several mining pools. Also mining [[Mining#ASIC_Mining|ASICs]] can be temporarily overclocked to increase their hash power. This is less power-efficient but could be used for a brief burst of hashrate. For maximum safety, it is recommended that for the irreversible sale of items with value comparable to the block reward, a large number of confirmations (144 blocks = 1 day) is required before completing the exchange.
 
See also: [[Irreversible Transactions]]
 
=Confirmation Times=


Each additional confirmation is a new [[block]] being found and added to the end of the [[blockchain]].
Each additional confirmation is a new [[block]] being found and added to the end of the [[blockchain]].


Miners create blocks by solving the [[proof of work]] for their proposed block. The block interval has an average of 10 minutes but not every block interval is exactly 10 minutes. In statistics it's called a [https://en.wikipedia.org/wiki/Poisson_point_process poisson process], where random events happen with the same probability in each time interval. Another way of expressing this is that the mining process has no memory, so at every second a block has the same chance of being found. Poisson processes are well-understood but can be unintuative.
Miners create blocks by solving the [[proof of work]] for their proposed block. The block interval has an average of 10 minutes but not every block interval is exactly 10 minutes. It follows a statistical process known as a [https://en.wikipedia.org/wiki/Poisson_point_process poisson process], where random events happen with the same probability in each time interval. Another way of expressing this is that the mining process has no memory, at every second a block has the same chance of being found. Poisson processes are well-understood but can be unintuative.


[[File:Block-interval.png|600px|center|alt text]]
[[File:Block-interval.png|600px|center|alt text]]
Line 31: Line 45:
In a 10 minute interval, the probability of a block being found is about 63% (or 1 - e^(-1)). So approximately two-thirds of the time a block will be found in 10 minutes or less. In 30 minutes a block has a 95% chance of being found, which rises to 99.7% if the time interval is 60 minutes.
In a 10 minute interval, the probability of a block being found is about 63% (or 1 - e^(-1)). So approximately two-thirds of the time a block will be found in 10 minutes or less. In 30 minutes a block has a 95% chance of being found, which rises to 99.7% if the time interval is 60 minutes.


==See Also==
=See Also=


* [[Blocks]]
* [[Blocks]]
* [[Transaction]]


==References==
=References=
<references />
<references />


[[Category:Technical]]
[[Category:Technical]]

Latest revision as of 15:53, 16 March 2018

After a transaction is broadcast to the Bitcoin network, it may be included in a block that is published to the network. When that happens it is said that the transaction has been mined at a depth of 1 block. With each subsequent block that is found, the number of blocks deep is increased by one. To be secure against double spending, a transaction should not be considered as confirmed until it is a certain number of blocks deep.

Note that unconfirmed transactions do not expire.

Number of Confirmations

The classic bitcoin client will show a transaction as "n/unconfirmed" until the transaction is 6 blocks deep. Merchants and exchanges who accept bitcoins as payment can and should set their own threshold as to how many blocks are required until funds are considered confirmed. When potential loss due to double spending as nominal, as with very inexpensive or non-fungible items, people may choose not to wait for a transaction to be confirmed, and complete the exchange as soon as it is seen on the network. Most exchanges and other merchants who bear the risk from double spending require 6 or more blocks.

There is nothing special about the default, often-cited figure of 6 blocks. It was chosen based on the assumption that an attacker is unlikely to amass more than 10% of the hashrate, and that a negligible risk of less than 0.1% is acceptable. Both these figures are arbitrary, however; 6 blocks are overkill for casual attackers, and at the same time powerless against more dedicated attackers with much more than 10% hashrate.[1]

Freshly-mined coins cannot be spent for 100 blocks. It is advisable to wait some additional time for a better chance that the transaction will be propagated by all nodes. Some older bitcoin clients won't show generated coins as confirmed until they are 120 blocks deep.

How Many Confirmations Is Enough

Transactions with 0/unconfirmed can be reversed with not too much cost via Finney attack and race attack, but in some cases may still be acceptable especially for low-value goods and services, or ones which can be clawed back.

For transactions with confirmations, the website (https://people.xiph.org/~greg/attack_success.html) can be used to calculate the probability of a successful doublespend given a hashrate proportion and number of confirmations. Note that in the reality of bitcoin mining today, more than 6 confirmations are required. (60 confirmations to have <1% odds of succeeding against an entity with 40% hash power). See Section 11 of the (https://bitcoin.org/bitcoin.pdf bitcoin whitepaper) for the AttackerSuccessProbability formula.

Some mining enterprises may hide their hash power across several mining pools. Also mining ASICs can be temporarily overclocked to increase their hash power. This is less power-efficient but could be used for a brief burst of hashrate. For maximum safety, it is recommended that for the irreversible sale of items with value comparable to the block reward, a large number of confirmations (144 blocks = 1 day) is required before completing the exchange.

See also: Irreversible Transactions

Confirmation Times

Each additional confirmation is a new block being found and added to the end of the blockchain.

Miners create blocks by solving the proof of work for their proposed block. The block interval has an average of 10 minutes but not every block interval is exactly 10 minutes. It follows a statistical process known as a poisson process, where random events happen with the same probability in each time interval. Another way of expressing this is that the mining process has no memory, at every second a block has the same chance of being found. Poisson processes are well-understood but can be unintuative.

alt text
alt text

There are lots of block intervals with a time less than 10 minutes but then a few block intervals much longer which bump up the average to 10 minutes. So the bitcoin network can get unlucky and a block won't be found for a whole hour.

alt text
alt text

In a 10 minute interval, the probability of a block being found is about 63% (or 1 - e^(-1)). So approximately two-thirds of the time a block will be found in 10 minutes or less. In 30 minutes a block has a 95% chance of being found, which rises to 99.7% if the time interval is 60 minutes.

See Also

References