A Secure Currency

Bitcoin is impossible to counterfeit, and has no flaw in the way it is processed. MtGox has not observed proper security protocols, and their internal transactions have been compromised.

MtGox is the largest and most well known Bitcoin exchange in the world – or at least, historically, they were. In actuality, they have made some catastrophic mistakes in how they manage their systems, which some speculate has resulted in massive losses that as yet haven’t been disclosed to the public. Some, myself included, believe that this has been an ongoing problem that they’ve only recently realized, which neatly explains why they have been so difficult to process transactions through, even before their latest misstep. Sadly, it’s a problem they are unfortunately very unlikely to be able to correct. Here’s the scoop.

As some of you may be aware, in early February, Bitcoin values dropped from a relatively stable $850 down to $100, before coming back up to then $600 range (up to the minute Bitcoin aggregate exchange rate). While there are a number of variables that contribute to this, and no one is claiming that Bitcoin isn’t a new or somewhat risky and speculative currency or investment, the actual source code of Bitcoin is secure, and without any real flaw. Think about that for a moment. It’s secure, and has no flaw.

A number of people who understand just how secure Bitcoin is are wondering why MtGox made their recent statement on the topic, blaming the Bitcoin source code. Sadly, MtGox is just putting spin on their mistake. The link is here, but the relevant excerpt is italicized below:



Bitcoin transactions are subject to a design issue that has been largely ignored, while known to at least a part of the Bitcoin core developers and mentioned on the BitcoinTalk forums. This defect, known as “transaction malleability” makes it possible for a third party to alter the hash of any freshly issued transaction without invalidating the signature, hence resulting in a similar transaction under a different hash. Of course only one of the two transactions can be validated. However, if the party who altered the transaction is fast enough, for example with a direct connection to different mining pools, or has even a small amount of mining power, it can easily cause the transaction hash alteration to be committed to the blockchain…

Most wallet and exchange services will keep a record of this said hash in order to be able to respond to users should they inquire about their transaction. It is likely that these services will assume the transaction was not sent if it doesn’t appear in the blockchain with the original hash and have currently no means to recognize the alternative transactions as theirs in an efficient way.

In other words, the MtGox exchange is blaming the problem on the Bitcoin source, but that is factually incorrect. It’s a problem with how poorly run exchanges like MtGox identify unique transactions, which is actually mentioned in the full explanation MtGox provided – despite their not drawing attention to it. They have no efficient means of recognizing alternative transactions.

In simple terms, exchanges like MtGox use the transaction identifier (tx-id) to identify unique transactions. An attacker can change the tx-id without modifying the actual transaction, which creates two identical transactions, each with a unique tx-id. In the event the altered transaction is accepted into the Blockchain, the attacker receives their Bitcoins, and then complains to the exchange that they did not receive them.

The exchange then checks their database, looks up the correct tx-id, checks the Blockchain, which does not have a record of that tx-id, and concludes that it failed. The exchange then credits the user account with the missing Bitcoins.

The problem with this approach is that it’s reckless and insecure. Exchanges that aren’t susceptible to this are those using additional information to track what goes in and out, such as the amount, address, and time stamp, for example. In those cases, if a user were to complain, support would need to do a little more legwork, but could easily identify the transaction and user as fraudulent.

In a perfect world, the tx-id would not be malleable, but blaming the current problems MtGox is experiencing on a flaw in the protocol is quite a stretch.

In summary, there is an ongoing flaw with the way some of the less professional Bitcoin exchanges manage and handle their transactions. This flaw has almost certainly resulted in some of those transactions being compromised, or ‘double dipped’ – meaning that double the amount of Bitcoins a person had could have been withdrawn or transferred. This clearly explains the ongoing problems MtGox has had with Bitcoins.

It should also reinforce the obvious – don’t use MtGox. Use a company with a more reliable method of processing transactions; otherwise you’re risking your Bitcoins.

Think of it like this. A fiat currency exchange has said that their machines for scanning currency are not working properly, resulting in the acceptance and dissemination of counterfeit currency from their exchange. Despite admitting that their processes for identifying counterfeit currency are flawed, the exchange is blaming the currency issuer for what is clearly a flaw with the exchange.

In other words, MtGox and a number of other exchanges that aren’t observing proper security protocols have been flying by the seat of their pants, and in the process risking the assets of those who processed transactions through them. This is just one of the reasons MtGox has nosedived from their height of processing 80% of all Bitcoin transactions to their current low of 25%. Whether they will survive the fallout of their mismanagement of Bitcoins remains to be seen.

For the developer position on the issue with Bitcoin, you can read the update here. For a list places you can spend Bitcoins, and some countries where they are legal, have a look at 8 Ways to Spend Bitcoins.

Additional Sources: Rannasha, Bitcoin Talk