Question is: how could a Joe like me that has 0 hash power be able to double spend even with 0 confirmation transactions that sooner or later will be identified?
What would happen if you and your wife had cloned wallets and visited two separate merchants who accepted bitcoin and made purchases using synchronized watches?
If:
- You both were connected to different peers
- You created the transaction so that both wallets spent the same unspent output
- You could time it so that both of your wallets transmitted your transaction at the exact same time
Then each merchant would have a 50% chance of seeing the unconfirmed transaction at all. In other words, each merchant would have a 50% chance of seeing a transaction with 0 confirmations that sent bitcoins to their address, and a 50% chance that they'd be sitting there waiting for you to pay them, because they don't see the transaction at all.
Eventually 1 of the transactions would be confirmed. At that time, the competing transaction would cease to exist. It would be dropped from the memory pools of all peers. The transaction that did get confirmed would be seen by the merchant that the payment was made to with 1 confirmation.
So, if you got lucky and both merchants saw their own unconfirmed transaction, and if the merchant allowed you to leave with the merchandise while there were 0 confirmations, then you would have committed "shoplifting" (since you left with merchandise that you didn't pay for) and they would call the police and report the theft. Then the police would review their security cameras, get a description of you from any witnesses, and the shop would be watching for you to return. If the shop is accepting transactions with 0 confirmations, and they aren't completely stupid, then they will require that you provide identifying information (such as a government issued photo ID, or a "frequent customer" card issued by the shop) along with the purchase that will have been recorded with the transaction. This identifying information will also be turned over to the police.
Additionally, any merchant that is willing to accept transactions with 0 confirmations really should be running custom software that will maintain connections to a very large number of peers. This custom software should alert them if it received conflicting transactions from different peers. This alert should occur within a second or so of you both sending your transactions. As such, both merchants will immediately know that you are attempting a scam, and that they should not allow you to leave with the merchandise until they see at least 1 confirmation on the transaction.
Essentially, a transaction with 0 confirmations is a lot like a personal check. If you have $20 in your bank account, and you and your wife in separate shops each write a check for $18, what will happen? Assuming that the bank doesn't allow you to overdraw your account, one check will "bounce". You'll have committed fraud, or theft, and the merchant can press charges in court if necessary. A merchant should treat a transaction with 0 confirmations with the same scrutiny that they treat a personal check. Of course, since all transactions in bitcoin are completely public, the merchant has extra tools available to them to reduce their risk with bitcoin transactions that they don't have with personal checks (such as monitoring peers for conflicting transactions, and the ability to know for certain that the funds being spent actually exist).