Bitcoin Forum
December 13, 2024, 02:24:16 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: What is a confirmation?  (Read 7422 times)
farmer_boy (OP)
Newbie
*
Offline Offline

Activity: 56
Merit: 0


View Profile
November 28, 2010, 11:23:42 PM
 #1

The highest number of confirmations I have seen for some of my transactions is around 900. In a screenshot I have seen someone with over 6000. I thought a confirmation simply meant that one node has seen my transaction in the longest blockchain it has seen. 6000 nodes would mean that bitcoin is getting extremely popular or that some people have hundreds of nodes running.

Is my characterization a confirmation correct? What's the highest number you have seen?
kiba
Legendary
*
Offline Offline

Activity: 980
Merit: 1024


View Profile
November 28, 2010, 11:25:36 PM
 #2

The highest number of confirmations I have seen for some of my transactions is around 900. In a screenshot I have seen someone with over 6000. I thought a confirmation simply meant that one node has seen my transaction in the longest blockchain it has seen. 6000 nodes would mean that bitcoin is getting extremely popular or that some people have hundreds of nodes running.

Is my characterization a confirmation correct? What's the highest number you have seen?

Confirmations is really how many blocks that had been generated. If there are 5 blocks after my transaction, it mean that there are 5 new blocks.

theymos
Administrator
Legendary
*
Offline Offline

Activity: 5404
Merit: 13498


View Profile
November 28, 2010, 11:35:23 PM
 #3

It's just the number of blocks that were generated by the network after the transaction. It goes up without limit.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
RHorning
Full Member
***
Offline Offline

Activity: 224
Merit: 141


View Profile
November 29, 2010, 12:17:13 AM
Last edit: November 29, 2010, 10:20:26 AM by RHorning
 #4

The advantage of a transaction with many confirmations as opposed to just a few is that you can be more "certain" that the transaction has been accepted into the network.  There is the potential that what your personal client thinks might be a confirmed transaction may be in a block that is accepted by some nodes and rejected by others (aka a fork in the blocks).  This happens from time to time and it isn't something to be very worried about, but as more confirmations happen the deeper that transaction is into the block chain making it much less likely that the block it is attached to will be rejected in the future.

If a miner creates a new block and rejects an old one, the old transactions are either incorporated into that new block or are sent around the network to be incorporated into what ever new blocks are created.  Even non-generating nodes can reject blocks and push the transactions back out to the network (of course verified that no double spending will happen).

Therefore, a transaction with one or a couple of confirmations is something being processed, but a transaction with hundreds or thousands of confirmations is rock solid and it would take nearly an act of God to get pulled from the network.  I certainly don't know of any blocks deeper than a hundred or so that have been rejected by a new block and generally accepted by the network as a whole.

An unconfirmed transaction is one that hasn't even been put into any block at all, so far as your software is concerned or aware of.
Cryptoman
Hero Member
*****
Offline Offline

Activity: 726
Merit: 500



View Profile
November 29, 2010, 08:46:47 PM
 #5

Has anyone quantified the probability of fraud given the number of confirmations?  Are there any rules of thumb, perhaps a sliding scale depending on the value of the transaction?

"A small body of determined spirits fired by an unquenchable faith in their mission can alter the course of history." --Gandhi
davout
Legendary
*
Offline Offline

Activity: 1372
Merit: 1008


1davout


View Profile WWW
November 29, 2010, 08:55:54 PM
 #6

The advantage of a transaction with many confirmations as opposed to just a few is that you can be more "certain" that the transaction has been accepted into the network.  There is the potential that what your personal client thinks might be a confirmed transaction may be in a block that is accepted by some nodes and rejected by others (aka a fork in the blocks).  This happens from time to time and it isn't something to be very worried about, but as more confirmations happen the deeper that transaction is into the block chain making it much less likely that the block it is attached to will be rejected in the future.

Just because a block is rejected doesn't mean the transactions that are in it will vanish, they'll be included in the other for branch anyway.
The only transactions that actually get rejected when a fork branch is discarded are the generation transaction, that's why the standard client considers them valid after more confirmations than regular transactions.


Has anyone quantified the probability of fraud given the number of confirmations?  Are there any rules of thumb, perhaps a sliding scale depending on the value of the transaction?

Thats in satoshi's PDF

RHorning
Full Member
***
Offline Offline

Activity: 224
Merit: 141


View Profile
November 29, 2010, 09:42:33 PM
 #7

The advantage of a transaction with many confirmations as opposed to just a few is that you can be more "certain" that the transaction has been accepted into the network.  There is the potential that what your personal client thinks might be a confirmed transaction may be in a block that is accepted by some nodes and rejected by others (aka a fork in the blocks).  This happens from time to time and it isn't something to be very worried about, but as more confirmations happen the deeper that transaction is into the block chain making it much less likely that the block it is attached to will be rejected in the future.

Just because a block is rejected doesn't mean the transactions that are in it will vanish, they'll be included in the other for branch anyway.
The only transactions that actually get rejected when a fork branch is discarded are the generation transaction, that's why the standard client considers them valid after more confirmations than regular transactions.

When a block is rejected obviously the "mining" transaction for that block is also rejected (as you suggest here), so there is at least some loss, plus there is entropy in the system where from time to time (as people turn on and off clients) that over time transactions will be dropped.

I know this is semantics and splitting hairs, but there is at least an outside possibility where transactions with no fees or low fees will not get incorporated into any block at all... depending on the rules that most of the miners are using.  There is a sort of mean lifetime of a transaction and if it doesn't get incorporated into the chain it may eventually vanish altogether.  Transactions of coins less than 0.01 BTC are examples of transactions that will likely not be incorporated in any particular block (if there is no fee attached) as most miners reject those transactions.  Some miner might, however, and in that case if the block where such a miner incorporated a transaction of that nature but the block itself was rejected for some reason (including that in the competition for "winning" the block somebody else got their block in first even though both blocks had "successful hashes") those transactions simply bounce around the network as unconfirmed transactions.

It is also possible that peers may choose not to relay all unconfirmed transactions, for whatever selfish reason they choose.  I know that the current client is usually agnostic in that regard, but there isn't anything stopping a node from relaying only transaction from any domain ending in *.pk or excluding all transactions from a *.ru domain (to give an example only... I'm not picking on any country in particular!) Other criteria could be developed but once the transaction is incorporated into the chain recognized by the vast majority of the computer power of the network, such games for unconfirmed transactions are over.  Rejecting blocks by a particular node when the rest of the network accepts the block will end up being a futile exercise.
theymos
Administrator
Legendary
*
Offline Offline

Activity: 5404
Merit: 13498


View Profile
November 29, 2010, 10:30:35 PM
 #8

When a block is rejected obviously the "mining" transaction for that block is also rejected (as you suggest here), so there is at least some loss, plus there is entropy in the system where from time to time (as people turn on and off clients) that over time transactions will be dropped.

Pre-0.3.9 clients are still trying to include the overflow transaction. Generation transactions can't be spent for 100 blocks, so a split would have to last longer than that for any problems to occur there. The chance of a transaction being accidentally reversed after 1 confirmation is nearly 0. It requires a real attack.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!