Author

Topic: Never confirm attack? (Read 1172 times)

legendary
Activity: 1162
Merit: 1007
December 31, 2013, 05:51:54 PM
#13
0 Confirmation transactions are totally spendable without any problems. Your client might now allow you to do this but that is a problem of your client, not the bitcoin protocol. So if you have a non-confirmed transaction you could spend the output and add a fee to increase miners incentive to mine both and thus get the fee.

You can try this yourself to confirm that it doesn't work.  Send a transaction to an address that you control with zero fee (but a transaction that is allowed to have zero fee) and then wait till you see that it was picked up by the bulk of the network (check blockchain.info).  Next, rebroadcast a fraudulent transaction using the same coin to a different address and this time attach a higher fee (you can do all of this with the "transactions" page at brainwallet.org).  The second transaction won't propagate, and the miners won't mine it, because they can see that that output has already been spent.  

As far as I know, the only ways you may get the second transaction to confirm would be to (1) be in cahoots with a miner who controls a lot of hash power and have him manually add your fraudulent transactions to his memory pool, (2) hope that your first transaction gets dropped by the network before it gets mined (and that no-one rebroadcasts it).  After your first transaction has been dropped by enough miners and nodes, your second transaction can propagate.  

I think you misunderstood. What he wanted to say is you can spend unconfirmed coins (legitimately) and include a fee in the transaction so the previous transaction that would take long to confirm would confirm quicker - because it's in miners best interest to include both.

Oh, yes you're absolutely right, I misunderstood.  I'm used to people arguing that the double-spend problem is bigger than it really is, and I thought this was one of those cases.  My apologies, Aswan. 

sr. member
Activity: 430
Merit: 250
December 31, 2013, 05:47:27 PM
#12
0 Confirmation transactions are totally spendable without any problems. Your client might now allow you to do this but that is a problem of your client, not the bitcoin protocol. So if you have a non-confirmed transaction you could spend the output and add a fee to increase miners incentive to mine both and thus get the fee.

You can try this yourself to confirm that it doesn't work.  Send a transaction to an address that you control with zero fee (but a transaction that is allowed to have zero fee) and then wait till you see that it was picked up by the bulk of the network (check blockchain.info).  Next, rebroadcast a fraudulent transaction using the same coin to a different address and this time attach a higher fee (you can do all of this with the "transactions" page at brainwallet.org).  The second transaction won't propagate, and the miners won't mine it, because they can see that that output has already been spent.  

As far as I know, the only ways you may get the second transaction to confirm would be to (1) be in cahoots with a miner who controls a lot of hash power and have him manually add your fraudulent transactions to his memory pool, (2) hope that your first transaction gets dropped by the network before it gets mined (and that no-one rebroadcasts it).  After your first transaction has been dropped by enough miners and nodes, your second transaction can propagate.  

I think you misunderstood. What he wanted to say is you can spend unconfirmed coins (legitimately) and include a fee in the transaction so the previous transaction that would take long to confirm would confirm quicker - because it's in miners best interest to include both.
legendary
Activity: 1162
Merit: 1007
December 31, 2013, 01:15:09 PM
#11
0 Confirmation transactions are totally spendable without any problems. Your client might now allow you to do this but that is a problem of your client, not the bitcoin protocol. So if you have a non-confirmed transaction you could spend the output and add a fee to increase miners incentive to mine both and thus get the fee.

You can try this yourself to confirm that it doesn't work.  Send a transaction to an address that you control with zero fee (but a transaction that is allowed to have zero fee) and then wait till you see that it was picked up by the bulk of the network (check blockchain.info).  Next, rebroadcast a fraudulent transaction using the same coin to a different address and this time attach a higher fee (you can do all of this with the "transactions" page at brainwallet.org).  The second transaction won't propagate, and the miners won't mine it, because they can see that that output has already been spent.  

As far as I know, the only ways you may get the second transaction to confirm would be to (1) be in cahoots with a miner who controls a lot of hash power and have him manually add your fraudulent transactions to his memory pool, (2) hope that your first transaction gets dropped by the network before it gets mined (and that no-one rebroadcasts it).  After your first transaction has been dropped by enough miners and nodes, your second transaction can propagate.  
legendary
Activity: 1734
Merit: 1015
December 31, 2013, 08:31:32 AM
#10
0 Confirmation transactions are totally spendable without any problems. Your client might now allow you to do this but that is a problem of your client, not the bitcoin protocol. So if you have a non-confirmed transaction you could spend the output and add a fee to increase miners incentive to mine both and thus get the fee.
full member
Activity: 215
Merit: 101
December 31, 2013, 08:21:57 AM
#9
It would be nice for the standard client to have an explicit re-broadcast option.
sr. member
Activity: 430
Merit: 250
December 31, 2013, 08:09:18 AM
#8
legendary
Activity: 2912
Merit: 1060
December 31, 2013, 08:03:27 AM
#7
How do you get the priority score?
sr. member
Activity: 430
Merit: 250
December 31, 2013, 07:37:14 AM
#6
Such a transaction would not even be relayed. Any transaction that is relayed normally will confirm eventually.

Nope, relaying =\= guaranteeing confirmation.

True, my bad. It would have to be re-broadcasted regularly as well - but a merchant could also do that. (I am assuming every transaction with a priority of 58 mio will eventually be included in a block, so no miner selectively disregarding it or any shenanigans like that)
full member
Activity: 165
Merit: 102
December 31, 2013, 07:28:22 AM
#5
I'm not sure if merchants accepting 0 confirmations check transaction fee but what would happen if I send a very complicated payment with no transaction fee. Isn't there a possibility it will never confirm?

For this => https://bitcointalksearch.org/topic/to-know-a-block-in-mainchain-390969 ?
legendary
Activity: 966
Merit: 1004
Keep it real
December 31, 2013, 07:27:51 AM
#4
Such a transaction would not even be relayed. Any transaction that is relayed normally will confirm eventually.

Nope, relaying =\= guaranteeing confirmation.
sr. member
Activity: 430
Merit: 250
December 31, 2013, 07:26:40 AM
#3
Such a transaction would not even be relayed. Any transaction that is relayed normally will confirm eventually.
sr. member
Activity: 364
Merit: 250
I am Citizenfive.
December 31, 2013, 07:15:02 AM
#2
I'm not sure if merchants accepting 0 confirmations check transaction fee but what would happen if I send a very complicated payment with no transaction fee. Isn't there a possibility it will never confirm?

In theory. Maybe in practice too. You can recall it and try again. Basically a doublespend but one where you know the first one got stuck. It's happened for mistaken zero-fee tx before.
legendary
Activity: 2912
Merit: 1060
December 31, 2013, 06:45:59 AM
#1
I'm not sure if merchants accepting 0 confirmations check transaction fee but what would happen if I send a very complicated payment with no transaction fee. Isn't there a possibility it will never confirm?
Jump to: