As you know, a few days ago, the Bitcoin payment network crashed with a split transaction chain. The failure occurred due to a completely minor error in the old version of Bitcoin 0.7 client software. This version is still used by many bitcoin miners, who simultaneously deal with the confirmation of transactions. Because of the bug, a parallel chain of transactions was generated, which Bitcoin 0.8 users generated.
If you look at the history not from a technical point of view, but from an economic criminal, then this small bug can be used to ... rob the exchange office! For several days, transactions were made in two chains separately, that is, you can spend bitcoins, first in one transaction chain, and then in another chain.
Such a "robbery" or "fraud" is possible with minimal effort, because provoking a double chain of transactions turned out to be quite simple. Apparently, the most important vulnerability in the Bitcoin payment system has been discovered: these are bugs in software, that is, in Bitcoin clients.
')
Robbery of the exchange office is not just a theoretical possibility. The day before yesterday, one of the users at the Bitcoin Forum told the real story how he managed to successfully spend his coins twice (https://bitcointalk.org/index.php?topic=152348)
Here is a brief chronology of events, the time is for the UTC +8: 00 time zone.
08:08 - Before the user learned about the bug, he transferred the bitcoins for $ 10,000 to the BTC-e exchanger via OKPAY, 211.9093 BTC was sent to the address 12z2n8YCJw1BEsJhhQPLCTuLqwH341nKnE with a commission of 0.0005 BTC.
09:30 - Transaction is included in the version 0.8 chain, block 225446.
10:08 - Deposit made, $ 9,800 transferred to BTC-e account.
12:53 - After examining the chain, the user found that the transaction was included in fork 0.8, but was not confirmed in fork 0.7, so he decided to experiment and sent the OKPAY command to carry out the transaction through the API, commission 0.001 BTC.
13:01 - The second transaction for the same bitcoins is included in fork 0.7, block 225446.
As you know, it was the fork 0.7 that was later decided to be made “real”, and the 0.8 was canceled.
Thus, the user twice exchanged his bitcoins for dollars, using two chains of transactions from clients from Bitcoin 0.7 and Bitcoin 0.8 branches. It is not surprising that with such bugs the BTC market rate at one point fell by 25%. Who can guarantee that, because of the new bug in the program, the chain will not be split again? And if so, how to guarantee the irreversibility of transactions while maintaining a high speed of payments?