Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Developer Glossary Definition: Double Spend #1248

Closed
VincentPiper opened this Issue Feb 27, 2016 · 3 comments

Comments

Projects
None yet
3 participants
Contributor

VincentPiper commented Feb 27, 2016

Currently, Bitcoin.org's double-spend definition states: "A transaction that spends the same input as spent in another transaction.".

The original meaning before Bitcoin existed was something to the effect of: "a failure mode of digital cash schemes, when it is possible to spend a single digital token twice." (https://en.wikipedia.org/wiki/Double-spending) (In the Whitepaper, Satoshi refers in this meaning of double-spend). Ultimately, the creation of the blockchain made double-spending by this definition, impossible. Yet, the community still uses this term but in the new defined way.

The important term in both definitions is the word "spend" or "spent", but they are used in different meanings. In Bitcoin's Double-Spend Definition, it seems to refer to and in theory is interchangeable with just a "push" or a "broadcast" and does not seem to convey whether it is in a block or not. It actually seems to convey a state of limbo, like pending in the mempool. But before Bitcoin, double-spend's definition seems to refer to an actual finalized pay out or disbursement and the doubling of that coin. (In addition, the terms are also used in the context of being recorded in the blockchain, like when a block explorer shows outputs that are "spent" or are "unspent".) There seems to be no single definition of "spend" or "spent", when it is to be used, and for what purpose. The reader is left to interpret the intended meaning.

I request that we change the name of the term of double-spend, to something else. I would propose something like a "double-push" or a "double-cast", so to differentiate from the original meaning. (I would prefer this option and would vote for "double-cast".)

But I also understand that it may not be possible since everyone is most likely set in their ways of Bitcoin terminology. (In addition, I believe I am filing this request in the proper venue, since Developers and Users would defer to the Bitcoin.org’s definitions as official or more official than others.) In that case, I request that the Developers Glossary Definition of Double Spend be made more specific so that it would say something as to the following:

Double Spend: "The transaction that used the same input as an already broadcasted transaction. This attempt of duplication[1], deceit[2], or conversion[3], will be adjudicated when only one of the transactions is included in the blockchain."

[1] duplication, as in regards to double spend's original definition, as used in the Whitepaper.
[2] deceit, as in regards to a double spend against merchants or citizens.
[3] conversion, is my made up term for legitimate double spending, like in Opt-In-RBF cases.

Thank you for your consideration.

Contributor

MarcoFalke commented Feb 29, 2016

But I also understand that it may not be possible since everyone is most likely set in their ways of Bitcoin terminology. (In addition, I believe I am filing this request in the proper venue, since Developers and Users would defer to the Bitcoin.org’s definitions as official or more official than others.) In that case, I request that the Developers Glossary Definition of Double Spend be made more specific so that it would say something as to the following:

Makes sense. I think it is easiest if you create a pull request.

Contributor

VincentPiper commented Feb 29, 2016

Makes sense. I think it is easiest if you create a pull request.

Thank you for your comment and direction.
I have created a pull request and revised the definition more.
I am new to this, so hopefully I did it correctly.

@wbnns wbnns self-assigned this Dec 9, 2016

Contributor

wbnns commented Dec 18, 2016

Closing this now that #1251 has been merged.

@wbnns wbnns closed this Dec 18, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment