0

Let's say you have a 15 second block time, and after your first transaction, your wallet's send button is frozen, and you have to wait for 2.5 minutes before you can send another transaction.

Would this prevent somebody from doublespending?

BTW: in case you want to ask how this could be enforced on the send button: Hmmmm maybe with something like scrypt which is timebased.

  • oleksii I admit that I'm asking the same questions, but is it correct that enforcing a 2,5 minute transaction limit could stop doublespending in this scenario? – AlCohol Jan 10 '14 at 12:53
  • 1
    No, because the potential double-spender could hack the client to stop "enforcing" this time limit. In fact, he could porgram his own client to not enforce it. – pyramids Jan 11 '14 at 9:25
10

Double-spending has nothing to do with double clicking the send button.

It involves a malicious user, who will not use the standard client. It will hack one to avoid any client-side limits, sending two transactions to a different side of a blockchain fork, so both sides don't know about the transaction sent to the counterpart and includes the transaction in their forked version.

If you manage to do so while using both transactions to pay for something and are accepted, after the reorganization (the process by which forks are resolved) only one side of the fork will be mantained, so the blockchain will be OK as only one transaction will be kept, but you got both payments effectively using the same coins to pay two different merchants and one of them will lose what you paid.

As you can see, it is not an usual scenario. Forks are more or less common but not really deep as they typically get resolved within a single block. That's why it is recommended to accept a transaction only after six confirmations, as a fork of six blocks is almost impossible to appear under normal circumstances. But do note that even this has happened, when a bug between software versions kept some miners from agreeing to mine on what would otherwise have been the consensus branch.

  • Thanks for your crystal clear answer frisco... It's probably not as simple and possible for the standard-client to refuse everything that is NOT the standard-client... I mean this from the perspective of a new coin, because what is already out there is out there.. – AlCohol Jan 10 '14 at 17:00
  • 1
    No, you never can control the other side of a connection, as long as it follows the stablished protocol you can not be sure if it is a standard client or one guy sending the bits one by one. – frisco Jan 10 '14 at 17:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.