Author

Topic: Confirmations. What are they? (Read 846 times)

legendary
Activity: 2506
Merit: 1010
September 27, 2012, 05:59:33 PM
#10
I'm familiar with transactions and blocks and all that, but I'm still not sure exactly what a confirmation is..

From another thread:

When you exchange cash when making a purchase from a store, you can then walk out seconds later with the item you purchased because the merchant now has the cash you gave in exchange.  A piece of paper used as cash can only exist in one place or another -- either in your purse or wallet, or in the merchant's cash register.  It cannot exist in both at any one piont in time.    There's no legal way that you can spend that cash at more than one store.  Cash then, cannot be double spent (excluding, of course, where cash is illegally being counterfeited).

Electronic cash accounting systems, such as those used by a bank, emulate that.  Before you withdraw cash at an ATM, your bank's accounting system will check to see the balance held in your account.  At the moment your withdrawal is processed, your account it debited.  That happens instantly rather than overnight or the next day because the the bank doesn't want to risk that you would visit another ATM and be able to withdraw more funds than you had in your account.  With that being instant, it prevents you from double spending funds from your bank balance.  In that way, the banks electronic cash systems emulate physical cash.

If there is a dispute, such as if the ATM thinks it spit out cash, but a malfunction resulted in no cash actually coming out, then the bank investigates and when warranted makes a correcting entry to the customer account.  The bank is the authority there.  The bank asserts "the truth" as far as its customer's account balances.

Bitcoin's architecture is such that there is no bank or anyone else with the authority to adjust balances.  There is no central authority.  The truth is determined from the consensus of computing work performed by miners who follow a specific protocol.    That computing work builds the Bitcoin blockchain.

When you first make a Bitcoin transaction and that transaction is broadcast to the network, "the truth" has not yet been established.  With Bitcoin's decentralized architecture, this consensus needs to form after your transaction gets included in a block and a chain of additional blocks extend from that.  At any point in time there could be two or more solved blocks at the same level in the blockchain competing to win this consensus.  At the time, there is no way to know which block will eventually attain consensus as being "the truth" and which blocks will lose support and become orphaned.

Only after the chain of blocks is extended with enough additional blocks on top is it then known which of the potentially competing blocks attained consensus and became "the truth".  The mathematics of the protocol show it to be safe to accept as "the truth" a block from the longest chain that occurred five or more blocks prior.  A block extended with five further blocks will show a total of six confirmations.

A Bitcoin exchange, just like your bank, cannot be exposed to the risk of double spending.  It will credit your account for the transfer of your funds only after it knows for sure "the truth", and thus it must ignore any blocks until they are part of the longest chain and have six or more confirmations.


Here is an interactive diagram that goes through the technical details of a Bitcoin transaction:

 - http://staging.spectrum.ieee.org/static/how-a-bitcoin-transaction-works


And here's the static image from that:



 - http://spectrum.ieee.org/img/06Bitcoin-1338412974774.jpg
legendary
Activity: 1596
Merit: 1012
Democracy is vulnerable to a 51% attack.
September 27, 2012, 05:08:43 PM
#9
One confirmation takes, on average, 10 minutes.

Sometimes it is faster, sometimes it is slower, as the network and probability constantly adjust.
The hard part to comprehend is that no matter how long you wait, unless you get a confirmation, you don't get any closer to a confirmation. If you wait ten minutes and get no confirmation, it still takes on average 10 more minutes to get a confirmation. And, to get even weirder, at any point in time, the average time between the previous confirmation and the next confirmation is twenty minutes!

One way I try to explain it to people is this: Imagine there's a confirmation, then a second confirmation, and then we go twenty minutes until the third confirmation. Like this:

confirmation - split second - confirmation - 20 minutes - confirmation

Clearly, the average time between confirmations is very close to 10 minutes. The average of 20 and 0 is 10. Yet if you pick any time interval but that tiny split second, the time between the previous confirmation and the next confirmation is 20 minutes.

Poisson processes make my head hurt.

Imagine there are two buses. One has two passengers and one has twenty passengers. How many passengers per bus on average? If you ask the drivers, they'll agree the average is 11. If you ask the passengers, they'll agree the average is 18.3 or so.
legendary
Activity: 1246
Merit: 1076
September 27, 2012, 04:59:06 PM
#8
Is that really all it is? So … waiting for three confirmations always takes up to half an hour?

One confirmation takes, on average, 10 minutes.

Sometimes it is faster, sometimes it is slower, as the network and probability constantly adjust.


If Moore's Law and Koomey's Law both hold, it will on average be faster than 10 minutes.
legendary
Activity: 1596
Merit: 1091
September 27, 2012, 04:54:53 PM
#7
Is that really all it is? So … waiting for three confirmations always takes up to half an hour?

One confirmation takes, on average, 10 minutes.

Sometimes it is faster, sometimes it is slower, as the network and probability constantly adjust.

newbie
Activity: 37
Merit: 0
September 27, 2012, 04:52:08 PM
#6
Is that really all it is? So … waiting for three confirmations always takes up to half an hour?

Simple enough!

It can take up to 1 hour to get 6 confirmations.

That's basically what he said Smiley he was talking about "3 confirmations".



uh ... I can swear I saw he said "waiting for six confirmations" ... guess I need to start wear my glasses Smiley
sr. member
Activity: 434
Merit: 250
100%
September 27, 2012, 04:45:38 PM
#5
Is that really all it is? So … waiting for three confirmations always takes up to half an hour?

Simple enough!

It can take up to 1 hour to get 6 confirmations.

That's basically what he said Smiley he was talking about "3 confirmations".

newbie
Activity: 37
Merit: 0
September 27, 2012, 04:41:18 PM
#4
Is that really all it is? So … waiting for three confirmations always takes up to half an hour?

Simple enough!

It can take up to 1 hour to get 6 confirmations.
sr. member
Activity: 444
Merit: 250
September 27, 2012, 02:21:44 PM
#3
Is that really all it is? So … waiting for three confirmations always takes up to half an hour?

Simple enough!
hero member
Activity: 637
Merit: 502
September 27, 2012, 02:16:33 PM
#2
The number of block created since this transaction was added in a block.

For example, if a transaction was added in block 200767 and the last block created is 200770. This transaction have 4 confirmations.
sr. member
Activity: 444
Merit: 250
September 27, 2012, 02:14:54 PM
#1
I'm familiar with transactions and blocks and all that, but I'm still not sure exactly what a confirmation is.

I guess a "confirmation" happens when a miner has looked at your transaction and determined it to be valid with regards to its inputs, outputs, signatures, timestamps and whatnot.

But what does a confirmation look like (as in: what information does it contain)? How is it published? Where is it stored?

For each transaction, how many times will it be confirmed, in practice? Looking at some old transactions, they seem to have thousands of confirmations.

Thanks.
Jump to: