Author

Topic: confirmations (Read 1002 times)

donator
Activity: 1218
Merit: 1079
Gerald Davis
January 23, 2013, 07:30:11 PM
#20
Two confirmations is better than one because to reverse the tx an attacker would need to make a longer chain and the more confirmations that a tx has the further back the miner would need to go to produce the longest chain which doesn't include the tx.  If a tx has 2 confirmations to be reverses an attacker would need to produce 3 blocks before all the good miners combined make 1.  If the attacker only makes 1 or 2 he is still behind.  60 blocks is better than 2 because for an attacker to attempt to reverse this would require making 61 blocks before all good miners combined can make 1.  This is essentially impossible unless an attacker has 51% or more of the global hashing power.

I think somehow despite two dozen explanations you don't understand what a confirmation means.

Say the most recent block is 10009.

(unconfirmed tx)
Block 10009
Block 10008
Block 10007
Block 10006
....
Block 1
Block 0 (genesis block)
 
If your tx is not in the blockchain it is unconfirmed (0-confirms).  If your tx is in block 10009 (the most recent) then it has 1 confirmation.  If your tx is in block 10008 it has 2 confirmation.  etc.

Quote
What happens if two miners generate a valid block a the same time? Which one wins?
Neither each will broadcast their block to their peers and those peers will build off that block.  Temporarily the network will be split some miners building off block "a", some building off block "b".   Eventually one side will solve the next block and the other chain will be orphaned.

Example:
current block  is 1000
Miner A produces block 1001a, Miner B produces block 1001b.  Part of the network believes block 1001a is the correct block, part of it believes 1001b is the correct block.
Eventually someone will produce block 1002.  If block 1002 builds off block 1001a then 1001b will be orphaned and all miners will build off block 1002 to produce 1003, 1004, etc.
newbie
Activity: 39
Merit: 0
January 23, 2013, 06:59:28 PM
#19
Simple version is no.  There is no such thing as a "fake" block.  Either the block is valid or it is invalid.  An attacker could broadcast invalid blocks on the network, however it is trivial to validate a block.  The average CPU can validate a block in a fraction of a second so it isn't much of an attack.  No miner is going to build upon a block until they validate it.  If the block doesn't validate it will be discarded.  

So back to where I started :-(

Why is 2 confirmations better then one confirmation?

Perhaps it is related to the answer to this question: What happens if two miners generate a valid block a the same time? Which one wins?
donator
Activity: 1218
Merit: 1079
Gerald Davis
January 23, 2013, 06:51:28 PM
#18
A confirmation means that your transaction has been included in a block. More confirmations means that the transaction is being buried deeper in the block chain. Because it is possible to create a fake block chain more than one confirmation is needed. If the block was fake, it will be rejected before a few confirmations.

[/attempt at non-technical explanation]

So if I understand this correctly, it is considered a lot harder to fake a longer chain then a small chain, so the longest chain wins[1].

Would it be possible to insert a fake block, and then trick the other miners that this is the real block, and they should generate a new block based on this fake one?

Notes
[1] hence the concerns with the 51% attack.
https://bitcointalksearch.org/topic/how-exactly-would-a-51-attack-work-52388
https://bitcointalksearch.org/topic/prevention-of-the-51-attack-53647
etc

Simple version is no.  There is no such thing as a "fake" block.  Either the block is valid or it is invalid.  An attacker could broadcast invalid blocks on the network, however it is trivial to validate a block.  The average CPU can validate a block in a fraction of a second so it isn't much of an attack.  No miner is going to build upon a block until they validate it.  If the block doesn't validate it will be discarded.  
donator
Activity: 1218
Merit: 1079
Gerald Davis
January 23, 2013, 06:49:20 PM
#17
no. he transfers the funds from the shared private key to his private private key as soon as he gets the shared private key. (which only takes a minute because he can trust his own 0 confirmation transaction)

Um he can't trust the 0-confirm transfer from a private key known by someone else. You could already be racing him to the next block in a double spend using that private key, or created a tx with a massive fee attached to tempt irreputable miners, or used your own hashing power to perform a Finney attack.

Shared Private Key = EXACTLY SAME LEVEL OF SECURITY as 0-confirm tx on the blockchain.

Please don't share misinformation which could result in someone losing funds to an attacker.


newbie
Activity: 39
Merit: 0
January 23, 2013, 06:48:13 PM
#16
no. he transfers the funds from the shared private key to his private private key as soon as he gets the shared private key. (which only takes a minute because he can trust his own 0 confirmation transaction)

It doesn't stop the buyer doing the same thing at the same time.

If the buyer had a transaction to remove funds already submitted (i.e. 0 confirmations) before meeting the seller, would the seller be able to find out?
newbie
Activity: 39
Merit: 0
January 23, 2013, 06:44:05 PM
#15
A confirmation means that your transaction has been included in a block. More confirmations means that the transaction is being buried deeper in the block chain. Because it is possible to create a fake block chain more than one confirmation is needed. If the block was fake, it will be rejected before a few confirmations.

[/attempt at non-technical explanation]

So if I understand this correctly, it is considered a lot harder to fake a longer chain then a small chain, so the longest chain wins[1].

Would it be possible to insert a fake block, and then trick the other miners that this is the real block, and they should generate a new block based on this fake one?

Notes
[1] hence the concerns with the 51% attack.
https://bitcointalksearch.org/topic/how-exactly-would-a-51-attack-work-52388
https://bitcointalksearch.org/topic/prevention-of-the-51-attack-53647
etc
legendary
Activity: 1722
Merit: 1217
January 23, 2013, 05:04:48 PM
#14
. . . i just hand the customer a cd with a pre loaded private key saved in a text file . . . he has no risk of being defrauded . . .
Of course he does.  You know the private key, since you put it on the CD.  Using that private key, you could still perform the exact same fraud as you would if you sent him the bitcoins over the network using the private key instead of him doing it.  The fact that he knows the private key too doesn't keep you from using it.  There is even more risk of fraud if he accepts it from you before he transfers the bitcoins away from that private key.  If you leave and he hasn't yet transferred the coins, you could use the private key and steal the coins before he can transfer them.



no. he transfers the funds from the shared private key to his private private key as soon as he gets the shared private key. (which only takes a minute because he can trust his own 0 confirmation transaction)
legendary
Activity: 3472
Merit: 4801
January 23, 2013, 05:00:02 PM
#13
. . . i just hand the customer a cd with a pre loaded private key saved in a text file . . . he has no risk of being defrauded . . .
Of course he does.  You know the private key, since you put it on the CD.  Using that private key, you could still perform the exact same fraud as you would if you sent him the bitcoins over the network using the private key instead of him doing it.  The fact that he knows the private key too doesn't keep you from using it.  There is even more risk of fraud if he accepts it from you before he transfers the bitcoins away from that private key.  If you leave and he hasn't yet transferred the coins, you could use the private key and steal the coins before he can transfer them.

legendary
Activity: 1722
Merit: 1217
January 23, 2013, 04:10:32 PM
#12
it should also be noted that if you are buying something very expensive with bitcoin you can make the transaction offline and it will be instantaneous. You can do this with paper wallets/physical bitcoins. So like if you are going to buy a car you dont have to wait an hour at the dealership. You just load up a barrier bond with the full amount of the car before you leave the house. When you get there if you were able to talk the salesman down than you would negotiate to have those bitcoins refunded as a rebate. The car salesman would simply look up the public key in the blockchain and make sure it had 6 confirmations and then forward the funds to his own wallet.
I'm going to need more details to understand what you are trying to say.

I don't see how the scenario you are describing is any different security-wise than an online transaction at the time of purchase.

I do this sometimes when i sell on local bitcoins, i just hand the customer a cd with a pre loaded private key saved in a text file. Then instead of sending the transaction over the network and waiting for 10+ minutes for a confirmation, he can just load the private key into a temporary wallet and then send the funds over the network to his own wallet. This makes the transaction take only 1 minute instead of 10 and because the customer himself is the one who makes the transaction and since he doesnt have to worry about himself defrauding himself he has no risk of being defrauded. The one downside is that i have to load the bitcoins onto the private key more than 1 hour before i make the exchange and the price of bitcoin can fluctuate a little in that time but if products prices were denominated in BTC that wouldn't be an issue. (which was assumed in the earlier example of buying a car with btc) In such a world you might for expensive purchases carry BTC cash in your wallet.
legendary
Activity: 1148
Merit: 1008
If you want to walk on water, get out of the boat
January 23, 2013, 03:30:18 PM
#11
more confirmations - more legit? and comfirmations are from others updating there bitcoin client?
No, as i said, confirmation=block, i won't repeat it  Cheesy
1 confirmation is more than enough, it means that the transaction has been inserted in a block. 2 confirmations means that another block after that one has been found. And so on.
legendary
Activity: 3066
Merit: 1147
The revolution will be monetized!
January 23, 2013, 03:23:36 PM
#10
A confirmation means that your transaction has been included in a block. More confirmations means that the transaction is being buried deeper in the block chain. Because it is possible to create a fake block chain more than one confirmation is needed. If the block was fake, it will be rejected before a few confirmations.

[/attempt at non-technical explanation]
newbie
Activity: 13
Merit: 0
January 23, 2013, 03:00:44 PM
#9
more confirmations - more legit? and comfirmations are from others updating there bitcoin client?
legendary
Activity: 3472
Merit: 4801
January 23, 2013, 02:51:46 PM
#8
it should also be noted that if you are buying something very expensive with bitcoin you can make the transaction offline and it will be instantaneous. You can do this with paper wallets/physical bitcoins. So like if you are going to buy a car you dont have to wait an hour at the dealership. You just load up a barrier bond with the full amount of the car before you leave the house. When you get there if you were able to talk the salesman down than you would negotiate to have those bitcoins refunded as a rebate. The car salesman would simply look up the public key in the blockchain and make sure it had 6 confirmations and then forward the funds to his own wallet.
I'm going to need more details to understand what you are trying to say.

I don't see how the scenario you are describing is any different security-wise than an online transaction at the time of purchase.
legendary
Activity: 1722
Merit: 1217
January 23, 2013, 02:14:04 PM
#7
it should also be noted that if you are buying something very expensive with bitcoin you can make the transaction offline and it will be instantaneous. You can do this with paper wallets/physical bitcoins. So like if you are going to buy a car you dont have to wait an hour at the dealership. You just load up a barrier bond with the full amount of the car before you leave the house. When you get there if you were able to talk the salesman down than you would negotiate to have those bitcoins refunded as a rebate. The car salesman would simply look up the public key in the blockchain and make sure it had 6 confirmations and then forward the funds to his own wallet.
legendary
Activity: 3066
Merit: 1147
The revolution will be monetized!
January 23, 2013, 02:02:30 PM
#6
So it's best practice to wait at least 2 confirmations?
It's situational. If it's a pack of gum... na.   If it's a car, I would wait for 5 or 6.
legendary
Activity: 3472
Merit: 4801
January 23, 2013, 01:59:53 PM
#5
So it's best practice to wait at least 2 confirmations?
That depends on the application.

If I am selling monthly VPN access, I can accept your payment with 0 confirmations.
If I see the payment vanish because you are engaging in fraud to replace the transaction before it gets in a block, I'll just remove your VPN access.

If I am selling a pack of gum in a brick&mortar retail location.  I'll accept your payment with 0 confirmations.  The risk of you pulling off a double-spend while you are in the store standing next to me is slim, and if you do manage to pull it off my losses are minimal.  The speed of service is worth the small risk of a small loss.

If I'm selling something that I'll be shipping to you, I'll probably wait 1 or 2 confirmations before I go to the effort of packing it up.

If I'm selling you something expensive that you will be walking away with (and I don't know who you are), I'll probably wait for 6 confirmations before turning over the merchandise.
newbie
Activity: 6
Merit: 0
January 23, 2013, 01:52:35 PM
#4
So it's best practice to wait at least 2 confirmations?
legendary
Activity: 1148
Merit: 1008
If you want to walk on water, get out of the boat
January 23, 2013, 08:04:37 AM
#3
Confirmations=block  Smiley
legendary
Activity: 1792
Merit: 1111
January 23, 2013, 05:40:44 AM
#2
Hello,

I am a bit confused, what is a "confirmation"?

My understanding is when a transaction is generated, it has to appear in a block before it is "official". This happens when the block is mined. The transaction will never appear in more then one block (or it would be a replay attack). I think I understand this much.

However what is the difference between 1 confirmation, and 2 confirmations? Or 3 confirmations?

When you have 1 confirmation, and are waiting for 6 confirmations, what exactly are you waiting for?

Maybe you are waiting for additional blocked to be mined beyond your block? If so, how does this make your transaction more certain?

I think I have the general idea, just would like to try to confirm my understanding.

Thanks

Transactions not in any block have 0-confirmation. It is as good as a cheque. You may get the money, or you may not.

Transactions appear in a block when a block is found (given that the miner has accepted it before the block is found. Miners have the freedom to include any transaction or not). We call it 1-confirmation. At this moment, the transaction is kind of "official", but still not very secure.

When the next block is found, it will confirm all blocks before it. So your transaction in the previous block has 2-confirmation now. It becomes more secure. Then you get 3-confirmation when one more block is found. For most cases, 6-confirmation is considered to be very secure and the risk charge back is negligible.
newbie
Activity: 39
Merit: 0
January 23, 2013, 05:05:56 AM
#1
Hello,

I am a bit confused, what is a "confirmation"?

My understanding is when a transaction is generated, it has to appear in a block before it is "official". This happens when the block is mined. The transaction will never appear in more then one block (or it would be a replay attack). I think I understand this much.

However what is the difference between 1 confirmation, and 2 confirmations? Or 3 confirmations?

When you have 1 confirmation, and are waiting for 6 confirmations, what exactly are you waiting for?

Maybe you are waiting for additional blocked to be mined beyond your block? If so, how does this make your transaction more certain?

I think I have the general idea, just would like to try to confirm my understanding.

Thanks
Jump to: