Double Spend Attacks on Exchanges

What is a Double-Spend?

This is an attempt to spend the same coins twice - for example, the attacker might send a deposit to an Exchange wallet, and then sending those same coins to another wallet of their own at the same time. This is normally resolved on a blockchain when transactions are added to blocks - when added to blocks, the transactions are put in an order. The payment which came first will be valid, and the transaction which came second will be ignored - even if the transactions were sent at the exact same time, the order of transactions in a block is clear. This way, the coins can only be sent to one place - either to the Exchange, or to the private wallet.

What is a 51% attack?

An attacker that controls more than 50% of the network’s computing power can, for the time that he is in control, exclude and modify the ordering of transactions.

Note that they cannot create transaction using other people’s coins - that would having other people’s private keys, which they do not have. But they can make transaction with their own coins, or they can exclude transactions from blocks.

This lets them manipulate the blockchain in certain ways:

  • Reverse transactions that they send while in control. This has the potential to double-spend transactions that previously had already been seen in the block chain.
  • Prevent some or all transactions from gaining any confirmations
  • Prevent some or all other miners from mining any valid blocks

The attacker can’t:

  • Reverse other people’s transactions without their cooperation
  • Prevent transactions from being sent at all (they’ll show as 0/unconfirmed)
  • Change the number of coins generated per block
  • Create coins out of thin air
  • Send coins that never belonged to them

Reference:
https://en.bitcoin.it/wiki/Weaknesses#Attacker_has_a_lot_of_computing_power

4 Likes