Author

Topic: Double-spending vs Double-spending (Read 996 times)

legendary
Activity: 1176
Merit: 1260
May Bitcoin be touched by his Noodly Appendage
August 20, 2013, 08:32:30 PM
#15
I totally agree and I always use(d) "double-spending" for both cases anyway.
My point here is that I think we should distinguish them for new comers. At least one person in this forum got confused and thought we were talking about stealing coins. I can't find the post again.
legendary
Activity: 3472
Merit: 4794
August 20, 2013, 08:15:01 PM
#14
I see the point, and I realize that I may be taking a rather technical view of the situation rather than a "real world intent" view, but I'm just not convinced that we need a word or phrase that distinguishes the intent.

One is criminal.
Other is a convenient daily used feature.

I also see your point, basically saying the first one is an exploit of the second feature, and thus just needs an "exploit" prefix.
I'm not convinced, but that's understandable.

Still, I'm sure people will need more precise vocabulary, on the long run, and that it will emerge, to avoid confusion. Smiley

I can point a gun at a paper target and pull the trigger, it's called "firing a gun".

I can point a gun at a person and pull the trigger, it's called "firing a gun".

One is criminal, the other is a convenient daily used feature.

The end result has two different names "homicide" vs. "target with holes in it", but we don't distinguish the "firing a gun" from "firing a gun" based on intent of the person "firing a gun".

Like I said, I see your point, and once one of the transactions makes it into the blockchain, I can certainly see using a name like "theft" or "fraud" for the result of the transaction that gets rejected, but the purpose of the act doesn't change the act itself.
sr. member
Activity: 336
Merit: 250
Cuddling, censored, unicorn-shaped troll.
August 20, 2013, 07:21:45 PM
#13
I see the point, and I realize that I may be taking a rather technical view of the situation rather than a "real world intent" view, but I'm just not convinced that we need a word or phrase that distinguishes the intent.

One is criminal.
Other is a convenient daily used feature.

I also see your point, basically saying the first one is an exploit of the second feature, and thus just needs an "exploit" prefix.
I'm not convinced, but that's understandable.

Still, I'm sure people will need more precise vocabulary, on the long run, and that it will emerge, to avoid confusion. Smiley
legendary
Activity: 3472
Merit: 4794
August 20, 2013, 07:02:56 PM
#12
As far as I'm concerned, while there are two valid transactions that both spend the same input it is a double-spend transaction.  It may not be a double-spend with confirmations, but the fact is that so long as the transaction is not in the blockchain some clients will see one transaction as valid while other clients will see the other transaction as valid.  That's a double-spend.  There are people and services that are willing to accept a bit of risk and deliver goods or services while a transaction has 0 confirmations.  Therefore the two transactions meet your requirements of "possible to spend a single digital token twice", since two separate vendors could theoretically both accept a transaction that pays them from the same input.


Once one of the transactions have been added to the blockchain and the other is dropped from the memory pools, you no longer have a double-spend since only one transaction exists.  Instead what you have is a single transaction and a theft (if products or services were delivered on the non-existent transaction).  You can refer to the rejected transaction as a failed double-spend attempt, or a rejected attempt to re-spend a spent input.
As much as I highly respect your input, I'm not really conviced this covers jack's interrogations.

"Double-spending" involves that your coins have been successfully used twice to pay 2 different recipients.
Successfully double-spending is a theft, which should be impossible, unless a systemic, critical flaw is abused.

Trying to double-cross another transaction for increased speed or any other reason might be legit.
If technically it's the same thing, the intent AND resolution differ.

- First case, we have an acutal, confirmed use of the same coins to pay 2 different recipients.
- Second case, we have opposing transactions, one of which ends up being discarded.

- First case is impossible, unless a huge fail from the core dev team, or a brilliant hacker work.
- Second case happens daily, and is not an issue.

I agree this needs some more precise vocabulary.

I see the point, and I realize that I may be taking a rather technical view of the situation rather than a "real world intent" view, but I'm just not convinced that we need a word or phrase that distinguishes the intent.
sr. member
Activity: 336
Merit: 250
Cuddling, censored, unicorn-shaped troll.
August 20, 2013, 06:49:02 PM
#11
As far as I'm concerned, while there are two valid transactions that both spend the same input it is a double-spend transaction.  It may not be a double-spend with confirmations, but the fact is that so long as the transaction is not in the blockchain some clients will see one transaction as valid while other clients will see the other transaction as valid.  That's a double-spend.  There are people and services that are willing to accept a bit of risk and deliver goods or services while a transaction has 0 confirmations.  Therefore the two transactions meet your requirements of "possible to spend a single digital token twice", since two separate vendors could theoretically both accept a transaction that pays them from the same input.


Once one of the transactions have been added to the blockchain and the other is dropped from the memory pools, you no longer have a double-spend since only one transaction exists.  Instead what you have is a single transaction and a theft (if products or services were delivered on the non-existent transaction).  You can refer to the rejected transaction as a failed double-spend attempt, or a rejected attempt to re-spend a spent input.

As much as I highly respect your input, I'm not really conviced this covers jack's interrogations.

"Double-spending" involves that your coins have been successfully used twice to pay 2 different recipients.
Successfully double-spending is a theft, which should be impossible, unless a systemic, critical flaw is abused.

Trying to double-cross another transaction for increased speed or any other reason might be legit.
If technically it's the same thing, the intent AND resolution differ.

- First case, we have an acutal, confirmed use of the same coins to pay 2 different recipients.
- Second case, we have opposing transactions, one of which ends up being discarded.

- First case is impossible, unless a huge fail from the core dev team, or a brilliant hacker work.
- Second case happens daily, and is not an issue.

I agree this needs some more precise vocabulary.


legendary
Activity: 3472
Merit: 4794
August 20, 2013, 04:47:23 PM
#10
According to the Bitcoin protocol, aren't broadcasted transactions basically meaningless? AFAIK they are just "random" bytes sent over the network, they don't have any existence in the protocol. Only the blockchain does.
What such merchants do isn't part of Bitcoin IMO so I wouldn't call such transactions "Bitcoin double-spends".

They must be more than just "random bytes send over the network", otherwise nodes wouldn't bother validating that those bytes meet any sort of rules and they wouldn't bother relaying them. 
legendary
Activity: 1176
Merit: 1260
May Bitcoin be touched by his Noodly Appendage
August 20, 2013, 04:42:15 PM
#9
That's the problem, sometimes people use double-spend even for unconfirmed transactions. That's exactly what I'm talking about here: I'm asking what word to use to describe the situation where there are two unconfirmed transactions using the same input.

How about {"competing", "jousting", "opposing", "rival", "wrestling", "dueling"} transactions? Grin
I actually like them!

As far as I'm concerned, while there are two valid transactions that both spend the same input it is a double-spend transaction.  It may not be a double-spend with confirmations, but the fact is that so long as the transaction is not in the blockchain some clients will see one transaction as valid while other clients will see the other transaction as valid.  That's a double-spend.  There are people and services that are willing to accept a bit of risk and deliver goods or services while a transaction has 0 confirmations.  Therefore the two transactions meet your requirements of "possible to spend a single digital token twice", since two separate vendors could theoretically both accept a transaction that pays them from the same input.


Once one of the transactions have been added to the blockchain and the other is dropped from the memory pools, you no longer have a double-spend since only one transaction exists.  Instead what you have is a single transaction and a theft (if products or services were delivered on the non-existent transaction).  You can refer to the rejected transaction as a failed double-spend attempt, or a rejected attempt to re-spend a spent input.
According to the Bitcoin protocol, aren't broadcasted transactions basically meaningless? AFAIK they are just "random" bytes sent over the network, they don't have any existence in the protocol. Only the blockchain does.
What such merchants do isn't part of Bitcoin IMO so I wouldn't call such transactions "Bitcoin double-spends".
legendary
Activity: 3472
Merit: 4794
August 20, 2013, 04:11:58 PM
#8
As far as I'm concerned, while there are two valid transactions that both spend the same input it is a double-spend transaction.  It may not be a double-spend with confirmations, but the fact is that so long as the transaction is not in the blockchain some clients will see one transaction as valid while other clients will see the other transaction as valid.  That's a double-spend.  There are people and services that are willing to accept a bit of risk and deliver goods or services while a transaction has 0 confirmations.  Therefore the two transactions meet your requirements of "possible to spend a single digital token twice", since two separate vendors could theoretically both accept a transaction that pays them from the same input.


Once one of the transactions have been added to the blockchain and the other is dropped from the memory pools, you no longer have a double-spend since only one transaction exists.  Instead what you have is a single transaction and a theft (if products or services were delivered on the non-existent transaction).  You can refer to the rejected transaction as a failed double-spend attempt, or a rejected attempt to re-spend a spent input.
sr. member
Activity: 336
Merit: 250
Cuddling, censored, unicorn-shaped troll.
August 20, 2013, 02:55:14 PM
#7
That's the problem, sometimes people use double-spend even for unconfirmed transactions. That's exactly what I'm talking about here: I'm asking what word to use to describe the situation where there are two unconfirmed transactions using the same input.

How about {"competing", "jousting", "opposing", "rival", "wrestling", "dueling"} transactions? Grin
legendary
Activity: 1176
Merit: 1260
May Bitcoin be touched by his Noodly Appendage
August 20, 2013, 02:21:32 PM
#6
Obviously 1. != 2. so I think we should use another word for describing 2.
I've never seen anybody using another word, did you?

A spend with Bitcoin is a "confirmed" transaction.   Most services do not credit a transaction as confirmed until there are six block that have confirmed the transaction. 
That's the problem, sometimes people use double-spend even for unconfirmed transactions. That's exactly what I'm talking about here: I'm asking what word to use to describe the situation where there are two unconfirmed transactions using the same input.

For example, this guy made a transaction that doesn't get accepted in the blockchain and need to pay a specific address with the same input before tomorrow.
The new tx he will made is what I'd like to name.


I'm not talking about these (which deserve their names) but rather about things like this: https://bitcointalksearch.org/topic/faq-all-about-unconfirmed-0-confirmation-transaction-fee-read-before-posting-232979 or https://bitcointalksearch.org/topic/guidedouble-spending-an-unconfirmed-transaction-made-with-a-third-party-client-231309 (ie rebroadcasting the same tx with more fees for example, nothing malicious)

But the term double spending is never used (as far as I've seen) when referring to "replace by fee" capability:
 - https://bitcointalksearch.org/topic/initial-replace-by-fee-implementation-is-now-available-on-testnet-199947
Indeed, I wasn't thinking about this feature, I just meant broadcasting a transaction that uses the same input than another unconfirmed transaction


PS: I'm very aware that my english is far from perfect and that this makes such technical talks difficult. Sorry for that!
legendary
Activity: 2506
Merit: 1010
August 20, 2013, 01:48:52 PM
#5
Obviously 1. != 2. so I think we should use another word for describing 2.
I've never seen anybody using another word, did you?

A spend with Bitcoin is a "confirmed" transaction.   Most services do not credit a transaction as confirmed until there are six block that have confirmed the transaction.  

So 1 == 2 in that context (with the exception of systemic failure like what happened with the March 2013 hard fork in which even a confirmed transaction got double spent).

I'm not talking about these (which deserve their names) but rather about things like this: https://bitcointalksearch.org/topic/faq-all-about-unconfirmed-0-confirmation-transaction-fee-read-before-posting-232979 or https://bitcointalksearch.org/topic/guidedouble-spending-an-unconfirmed-transaction-made-with-a-third-party-client-231309 (ie rebroadcasting the same tx with more fees for example, nothing malicious)

But the term double spending is never used (as far as I've seen) when referring to "replace by fee" capability:
 - https://bitcointalksearch.org/topic/initial-replace-by-fee-implementation-is-now-available-on-testnet-199947
legendary
Activity: 1176
Merit: 1260
May Bitcoin be touched by his Noodly Appendage
August 20, 2013, 01:42:31 PM
#4
1. single digital token
2.transactions that use the same input
The word you are looking for is "confused".

Double-spending is exactly how you would describe a successful reuse of a unique single input in two different outputs on two valid transactions.

While this has not "happened" in history if you consider the blockchain the official "version" of history, it actually happened during the great 0.8 database incident.

I'm not talking about these (which deserve their names) but rather about things like this: https://bitcointalksearch.org/topic/faq-all-about-unconfirmed-0-confirmation-transaction-fee-read-before-posting-232979 or https://bitcointalksearch.org/topic/guidedouble-spending-an-unconfirmed-transaction-made-with-a-third-party-client-231309 (ie rebroadcasting the same tx with more fees for example, nothing malicious)

2 should be "Double-spending attemptGrin
That's also not the kind of double-spending I had in mind but it's a good precision to add for this kind!

legendary
Activity: 1358
Merit: 1002
August 20, 2013, 01:33:11 PM
#3
2 should be "Double-spending attemptGrin
legendary
Activity: 1442
Merit: 1005
August 20, 2013, 01:31:08 PM
#2
1. single digital token
2.transactions that use the same input
The word you are looking for is "confused".

Double-spending is exactly how you would describe a successful reuse of a unique single input in two different outputs on two valid transactions.

While this has not "happened" in history if you consider the blockchain the official "version" of history, it actually happened during the great 0.8 database incident.
legendary
Activity: 1176
Merit: 1260
May Bitcoin be touched by his Noodly Appendage
August 20, 2013, 01:24:06 PM
#1
1.
According to Wikipedia:
Quote
Double-spending is a failure mode of digital cash schemes, when it is possible to spend a single digital token twice

2.
Bitcoin people sometimes use "double-spending" to talk about the fact of broadcasting two (or more) transactions that use the same input with only one being accepted in the blockchain

Obviously 1. != 2. so I think we should use another word for describing 2.
I've never seen anybody using another word, did you?
Jump to: