5

I'm confused by double-spend linked below, in which both transactions ended up in blocks mined by different miners. Specifically, I'm wondering if there's any way to tell what exactly happened based on the available information.

https://blockchain.info/tx-index/95574751

Based on my limited understanding of bitcoin, I'm assuming this could have happened in one of the following three ways. If I'm wrong, or if I'm missing other possibilities, could someone please let me know?

1) The double-spender broadcast the first transaction to the network, and then mined his own block containing a transaction using the same output. He ultimately wasn't able to "outrun" the honest blockchain, but he managed to mine his block quickly enough that some nodes in the network received it before receiving the longer blockchain. So both blocks were briefly accepted by parts of the network, and one was eventually "orphaned" (so its transactions are unconfirmed).

2) Same situation, but the double-spender's blockchain prevailed and the block containing the first transaction broadcast to the network was orphaned.

3) The double-spender didn't mine anything, he just tried a normal double-spend against someone who doesn't require confirmations. Both transactions happened to be included in blocks that were mined simultaneously by different miners in the network, and one was orphaned.

  • Very interested to know if this gets resolved! – user5107 Jan 2 '14 at 3:09
1

Nothing malicious. Two blocks were mined at the same time by different miners (Block 267647). Both blocks included the transaction and both were broadcast to the network. Both blocks show up in the block chain because you don't know who actually won until additional blocks are mined and added to one chain or the other. The chain with the greatest amount of work done on it becomes the main chain and the other one gets orphaned.

This is why you need to wait for several confirmations before spending an output. If you spent it as soon as you saw one of the blocks, your transaction could get rejected later on if the other block ended up winning.

You can tell this is what happened because the transaction ID is the same in both blocks. In a double-spend, you would have two separate transactions attempting to spend the same transaction output.

  • But it looks like it was two different transactions sending the same outputs to different addresses -- unless I'm reading something wrong? blockchain.info/tx-index/95574751 and blockchain.info/tx-index/95568245 – craw Jan 2 '14 at 3:59
  • They indeed dod not have the same txid. But any of your three scenarios are possible and no one will ever know which one happened. It doesn't matter either. – Steven Roose Jan 2 '14 at 11:28
  • 1
    You're right - I must have gotten turned around following links. But they are still the same block number and one block was orphaned. Could be the sender was impatient because his transaction wasn't getting confirmed and resubmitted it. MultiBit, for example, allows you to reset the transaction so you can try again. – ScripterRon Jan 2 '14 at 12:32

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.