Pages:
Author

Topic: Double spent - page 2. (Read 1596 times)

legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
January 01, 2015, 07:21:53 AM
#19
A double spend implies that one of the two  transactions will be "refused"  or maybe I don't understand how it works (maybe I'm wrong).

Yes - you are not wrong - this is why it is really more correctly described as a "double spend attempt" as blockchains do not allow "double spends" (if they did then they would be absolutely useless in performing the very job they were created for).

@Domino - There is no way to "speed up the process" currently. If a method to "replace a tx that has insufficient fees with one that has sufficient fees" is worked out and adopted by the majority of nodes then this would be the solution (for now you just have to wait).
hero member
Activity: 560
Merit: 500
January 01, 2015, 07:18:07 AM
#18
A double spend implies that one of the two  transactions will be "refused"  or maybe I don't understand how it works (maybe I'm wrong).

No you are quite right. If you have 1BTC in your wallet and you send it ~2 times (2x1BTC), only one transaction gets confirmed.
legendary
Activity: 1778
Merit: 1043
#Free market
January 01, 2015, 06:55:28 AM
#17
A double spend implies that one of the two  transactions will be "refused"  or maybe I don't understand how it works (maybe I'm wrong).
hero member
Activity: 662
Merit: 500
January 01, 2015, 06:51:45 AM
#16

It is really confusing, what are the double spends they show at blockchain?
https://blockchain.info/double-spends

Oh wow, I don't know what to say about those. There's many of them, and all happened recently which means in theory there should be many more.

I know double-spending is not actually possible with Bitcoin, but this may be beyond my level of understanding. DannyHamilton, could you please break this down and explain to me and the beginners that are present? I feel like I'm probably just misunderstanding something here.

Understanding what you are seeing at that link requires a pretty good technical knowledge about exactly how bitcoin transactions work.  These are technical situations involving transaction inputs and outputs.

As a simple example though...

If you create a transaction that sends a very small amount of bitcoins (for example 0.00001 BTC) and you don't include a transaction fee with your transaction...
Or if you create a very large (in bytes, not in bitcoins) transaction (such as 5000 bytes) and you don't include a transaction fee with your transaction...

You might discover after several days that no miners have bothered to confirm your transaction yet.  Therefore, your transaction is still "unconfirmed" several days after you sent it.

Transactions that do not get confirmed take up space in the memory pool of peers.  Those peers want to use that space in their memory pool for transactions that actually have a chance of getting confirmed eventually.  Therefore, peers will start dropping unconfirmed transactions that are a few days old from their memory pool.  Eventually most of the network forgets that the transaction ever existed, and the bitcoins are once again available for you to send from your wallet (since they never actually got where they were going).  Some wallets will simply re-transmit the original transaction repeatedly forever waiting for it to confirm.  However, some wallets (such as blockchain.info/wallet) will return the bitcoins to your balance and allow you to create a new transaction with the bitcoins.

If you create a new transaction (perhaps sending the exact same amount to the exact same person as before, only this time with a transaction fee), then blockchain.info will see that a new (different) transaction is re-using the same bitcoins that they saw in the earlier transaction that never confirmed.  Blockchain.into will label this as a "double spend" since it saw the same bitcoins in two slightly different transactions, and they will add it to that linked web page.

There are more complex situations where this can occur, and it relies on exactly which outputs are being spent in the transactions, but as a user level explanation that's a pretty good example.

Before the unconfirmed transaction is dropped, how will the peers handle the new double-spent-attempt transaction? Will they replace the old one with the new one? Or will they reject the new one?

Is there any way to "speed up" the process of peers dropping an unconfirmed transaction with 0 fee? Or we can just wait patiently for a few days?
hero member
Activity: 672
Merit: 502
December 31, 2014, 11:57:40 PM
#15
So these were merely an attempt at double spends but only 1 of those Tx was confirmed, right? And other one was rejected.

Yes - it would be better if they (blockchain.info) used the term "double spend attempt" (as that is far more technically correct).

Note that even that description is perhaps a little "emotionally loaded" as in fact it may just be someone who made a genuine *mistake* by omitting a fee trying to resend with an appropriate fee (currently a "replace with proper fee" is not supported).

Thus the existence of two such txs doesn't imply that someone is actually trying to cheat someone else at all (but if you have received funds in such a manner of course it would be better to be aware of the situation than not - although as has been pointed out accepting 0 confirmations is never a very good idea).

As far as alt coins go - any blockchain that doesn't prevent double spends is *useless* so even if they don't use the same consensus method as Bitcoin one would assume they don't allow "actual double spends".


Yeah, it portrays to the general audience that there are so many double spends happening with bitcoin and gives the impression that maybe it's unsafe. When it's not actually true.

legendary
Activity: 1890
Merit: 1086
Ian Knowles - CIYAM Lead Developer
December 31, 2014, 11:46:00 PM
#14
So these were merely an attempt at double spends but only 1 of those Tx was confirmed, right? And other one was rejected.

Yes - it would be better if they (blockchain.info) used the term "double spend attempt" (as that is far more technically correct).

Note that even that description is perhaps a little "emotionally loaded" as in fact it may just be someone who made a genuine *mistake* by omitting a fee trying to resend with an appropriate fee (currently a "replace with proper fee" is not supported).

Thus the existence of two such txs doesn't imply that someone is actually trying to cheat someone else at all (but if you have received funds in such a manner of course it would be better to be aware of the situation than not - although as has been pointed out accepting 0 confirmations is never a very good idea).

As far as alt coins go - any blockchain that doesn't prevent double spends is *useless* so even if they don't use the same consensus method as Bitcoin one would assume they don't allow "actual double spends".
hero member
Activity: 518
Merit: 500
December 31, 2014, 11:42:33 PM
#13
How about Altcoin double spends (ex: Rubycoin).
hero member
Activity: 672
Merit: 502
December 31, 2014, 11:39:48 PM
#12
It is really confusing, what are the double spends they show at blockchain?
https://blockchain.info/double-spends

These are not true double spends.  In every one of the cases listed at that link, there was never more than one transaction of the transactions that actually made it permanently into the blockchain.

Those are all situations where a previously unspent output was used as an input to one transaction, and then that exact same output was used as an input into the other transaction.  In some cases, both the transactions were seen on the network with zero confirmations at the same time, in other cases the second transaction wasn't transmitted until after the first transaction failed to get confirmed as was already dropped from the memory pool of most peers.

There are legitimate reasons to re-use an unspent output, and as I already mentioned in my previous post in this thread there are fraudulent reasons to do so.  Unless you were either the sender or the receiver of one of the transactions, it is impossible to know which (if any) of these are attempted scams and which occurred for legitimate reasons.



So these were merely an attempt at double spends but only 1 of those Tx was confirmed, right? And other one was rejected.

But Blockchain saw 2 tx from same unspent outputs and called it double spends but they weren't actually any double spends?
legendary
Activity: 3472
Merit: 4801
December 31, 2014, 09:05:35 PM
#11

It is really confusing, what are the double spends they show at blockchain?
https://blockchain.info/double-spends

Oh wow, I don't know what to say about those. There's many of them, and all happened recently which means in theory there should be many more.

I know double-spending is not actually possible with Bitcoin, but this may be beyond my level of understanding. DannyHamilton, could you please break this down and explain to me and the beginners that are present? I feel like I'm probably just misunderstanding something here.

Understanding what you are seeing at that link requires a pretty good technical knowledge about exactly how bitcoin transactions work.  These are technical situations involving transaction inputs and outputs.

As a simple example though...

If you create a transaction that sends a very small amount of bitcoins (for example 0.00001 BTC) and you don't include a transaction fee with your transaction...
Or if you create a very large (in bytes, not in bitcoins) transaction (such as 5000 bytes) and you don't include a transaction fee with your transaction...

You might discover after several days that no miners have bothered to confirm your transaction yet.  Therefore, your transaction is still "unconfirmed" several days after you sent it.

Transactions that do not get confirmed take up space in the memory pool of peers.  Those peers want to use that space in their memory pool for transactions that actually have a chance of getting confirmed eventually.  Therefore, peers will start dropping unconfirmed transactions that are a few days old from their memory pool.  Eventually most of the network forgets that the transaction ever existed, and the bitcoins are once again available for you to send from your wallet (since they never actually got where they were going).  Some wallets will simply re-transmit the original transaction repeatedly forever waiting for it to confirm.  However, some wallets (such as blockchain.info/wallet) will return the bitcoins to your balance and allow you to create a new transaction with the bitcoins.

If you create a new transaction (perhaps sending the exact same amount to the exact same person as before, only this time with a transaction fee), then blockchain.info will see that a new (different) transaction is re-using the same bitcoins that they saw in the earlier transaction that never confirmed.  Blockchain.into will label this as a "double spend" since it saw the same bitcoins in two slightly different transactions, and they will add it to that linked web page.

There are more complex situations where this can occur, and it relies on exactly which outputs are being spent in the transactions, but as a user level explanation that's a pretty good example.
hero member
Activity: 910
Merit: 530
$5 24k Gold FREE 4 sign-up! Mene.com/invite/h5ZRRP
December 31, 2014, 08:54:50 PM
#10

It is really confusing, what are the double spends they show at blockchain?
https://blockchain.info/double-spends

Oh wow, I don't know what to say about those. There's many of them, and all happened recently which means in theory there should be many more.

I know double-spending is not actually possible with Bitcoin, but this may be beyond my level of understanding. DannyHamilton, could you please break this down and explain to me and the beginners that are present? I feel like I'm probably just misunderstanding something here.


EDIT: DannyHamilton's response beat my post asking him for clarification. Well done sir, you are on it and thank you for the detailed explanation!
legendary
Activity: 3472
Merit: 4801
December 31, 2014, 08:52:01 PM
#9
It is really confusing, what are the double spends they show at blockchain?
https://blockchain.info/double-spends

These are not true double spends.  In every one of the cases listed at that link, there was never more than one transaction of the transactions that actually made it permanently into the blockchain.

Those are all situations where a previously unspent output was used as an input to one transaction, and then that exact same output was used as an input into the other transaction.  In some cases, both the transactions were seen on the network with zero confirmations at the same time, in other cases the second transaction wasn't transmitted until after the first transaction failed to get confirmed as was already dropped from the memory pool of most peers.

There are legitimate reasons to re-use an unspent output, and as I already mentioned in my previous post in this thread there are fraudulent reasons to do so.  Unless you were either the sender or the receiver of one of the transactions, it is impossible to know which (if any) of these are attempted scams and which occurred for legitimate reasons.

hero member
Activity: 672
Merit: 502
December 31, 2014, 08:43:28 PM
#8
A true double spend has never happened and cannot happen.  It is not possible for two different transactions to both include as inputs the same unspent outputs, and for both of those transactions to be permanently recorded in the blockchain.

However, people that don't understand the technical details of how bitcoin works like to use the words "double spend" to describe a variety of scams that allow an attacker to fool their target into believing that they've received bitcoins that they never actually received.

So, if you are asking about a true double spend, then no, it hasn't ever happened.  It never will.

If you are asking about a scam where someone is tricked into believing that they've received bitcoins that they haven't due to the target's own misunderstanding about how bitcoin works, then yes.  That has happened many times.

It is really confusing, what are the double spends they show at blockchain?
https://blockchain.info/double-spends
legendary
Activity: 3472
Merit: 4801
December 31, 2014, 02:00:08 PM
#7
A true double spend has never happened and cannot happen.  It is not possible for two different transactions to both include as inputs the same unspent outputs, and for both of those transactions to be permanently recorded in the blockchain.

However, people that don't understand the technical details of how bitcoin works like to use the words "double spend" to describe a variety of scams that allow an attacker to fool their target into believing that they've received bitcoins that they never actually received.

So, if you are asking about a true double spend, then no, it hasn't ever happened.  It never will.

If you are asking about a scam where someone is tricked into believing that they've received bitcoins that they haven't due to the target's own misunderstanding about how bitcoin works, then yes.  That has happened many times.
legendary
Activity: 3248
Merit: 1070
December 31, 2014, 01:30:48 PM
#6
you need a 51% attack to do it with a 100% rate

this mean you need to create your own blockchain, mining in in solo mode with a stronger hashrate than the total net, so above 50%
newbie
Activity: 31
Merit: 0
December 31, 2014, 12:04:48 PM
#5
lol then its mean that spend its only once when the other ones send its then it would be recorded as double spend we got nothing Tongue

i mean if double spend from a same person from same wallet then he get 1btc in prfoit  Huh Huh
hero member
Activity: 560
Merit: 500
December 31, 2014, 11:54:32 AM
#4
i did`nt get it !!

for e.g :: if i have 1btc can i double spend ?? means i can use it two times in two trx`s?

but i think if i send 1 btc to someone And the someone send the 1 btc to any one then 1btc will be double spended Huh Huh Huh Angry

Theoretically yes, but only one transaction gets a confirmation and the other one will be detected as a double-spend.
newbie
Activity: 31
Merit: 0
December 31, 2014, 11:41:22 AM
#3
i did`nt get it !!

for e.g :: if i have 1btc can i double spend ?? means i can use it two times in two trx`s?

but i think if i send 1 btc to someone And the someone send the 1 btc to any one then 1btc will be double spended Huh Huh Huh Angry
hero member
Activity: 560
Merit: 500
December 31, 2014, 11:36:17 AM
#2
newbie
Activity: 31
Merit: 0
December 31, 2014, 11:35:05 AM
#1
i want to know that double spent is actually is Huh?

 Huh Huh
Pages:
Jump to: