Double spend detection to speed up transaction trust [combined summary]



Individual post summaries: Click here to read the original discussion on the bitcoin-dev mailing list

Published on: 2011-08-05T21:30:50+00:00


Summary:

In a 2011 email exchange between Bitcoin developers, the topic of detecting double spend transactions was discussed. Matt Corallo proposed adding a new message type, MSG_DOUBLESPEND, to the official client to address this issue. He argued that it would prevent chain forks and provide practical solutions for small businesses using Bitcoin. The proposal involved adding an enum to the inventory list, which would only be seen when necessary and would not add unnecessary network traffic. Although some developers objected to the idea, Corallo emphasized that Bitcoin was still an experiment and making changes like this could prevent potential financial losses.Another email exchange between Andy Parkins and Matt Corallo also focused on the issue of double-spending transactions. Parkins suggested adding MSG_DOUBLESPEND to the inventory list as a way to address this problem. However, Corallo argued against it, stating that it would introduce unnecessary network complexity and more messages for people to be aware of. The discussion continued with Parkins highlighting the possibility of double-spend transactions entering the network at two evenly connected points, causing each to only be seen by half the network. Corallo countered by emphasizing the importance of what miners believe and suggested that a Bitcoin backbone or collaboration between large miners and merchants could effectively prevent double spends. Parkins expressed his desire for practical answers for small businesses instead of relying on the current "0/unconfirmed" system, while Corallo acknowledged the experimental nature of Bitcoin and its uncertain future.The conversation between Corallo and Parkins centered around the potential addition of the MSG_DOUBLESPEND message to Bitcoin's inventory list. Corallo believed that it was unnecessary as the network already had mechanisms in place to prevent double-spends. Parkins argued that adding the message would benefit small vendors who cannot afford to wait for payment confirmations. He suggested collaborating with large miners and merchants to modify clients to keep both double-spent transactions in the memory pool until one confirms. Corallo maintained that small businesses could already use the client to prevent double-spends and adding MSG_DOUBLESPEND would unnecessarily complicate the network. Both parties agreed to disagree on the issue.The proposed solution aims to prevent double spending attempts on Bitcoin transactions by broadcasting a "MSG_DOUBLESPEND" message instead of silently dropping the transaction. This message would allow vendors to establish their own policies, such as waiting for more confirmations or involving law enforcement. Miners can also lower the priority of transactions flagged in this way. Currently, vendors wait for six confirmations before releasing goods, which is often too long. The Bitcoin network is considered honest, and if a blockchain fork occurs, orphaned transactions are added back to the pending transaction list. Eventually, a valid transaction will be included in the longest blockchain. New transactions propagate through the network and are dropped if they are invalid. In the case of a double spend attempt, one transaction reaches half the network while the other goes to the other half. The first transaction to reach a node is deemed valid, while the second is rejected. The proposed method prevents denial-of-service (DOS) attacks because the transaction must be internally valid to result in a MSG_DOUBLESPEND.


Updated on: 2023-08-01T02:13:56.707421+00:00