Blame game: Embattled Mt. Gox points to flaws in bitcoin protocol, bitcoin community calls BS
Mt. Gox, the once largest bitcoin exchange, is in fight mode. Whether for its life, or for the life of the bitcoin crypto-currency, is less clear.
On Friday, Gox suspended bitcoin withdrawals in an effort to investigate what it called technological issues with its platform. Today, the company issued a statement indicating that the problem lies with the core bitcoin protocol – a potentially spurious, yet inflammatory claim. According to Mt. Gox, the protocol allows users to manipulate the digital signatures on bitcoin withdrawals and, as a result, withdraw the same coins twice. Gox claims the problem, known as transaction malleability, affects all the exchanges, not just its own.
If true, it’s a big problem for the future of bitcoin. If false, it could be the beginning of the end for the once storied Mt. Gox.
Bitcoin was designed to create a transaction system that enables trust between unrelated parties over the Internet. If Mt. Gox is to be believed, this trust is misplaced and the entire foundation of the bitcoin protocol must be called into question, and with it billions of dollars in systemic wealth. Not everyone agrees that this is the case, though. If Mt. Gox is wrong, then it may also be incompetent, or worse, deceptive, and this could hasten what has already been a steady decline in trust and trading activity on the exchange.
A quick fix is unlikely. Mt. Gox wants the global bitcoin network to agree upon and implement a software change, a process that in the past has taken 12 to 18 months, before it re-institutes bitcoin withdrawals. Gox asks that the bitcoin community embrace changes to the protocol that would add a second form of hash – numerical signing of transactions – solely for tracking purposes, in addition to the existing hash used to add transactions to the blockchain (global general ledger).
The Gox statement reads:
This new transaction hash will allow signing parties to keep track of any transaction they have signed and can easily be computed, even for past transactions. We have discussed this solution with the Bitcoin core developers and will allow bitcoin withdrawals again once it has been approved and standardized.
The bitcoin community has been quick to react, with most responses arguing that the problem lays with Gox’s custom wallet software and the way it identifies and tracks individual transactions. The malleability problem has been known since at least 2011 and the core development team has been gradually implementing measures to address it.
In an IRC Chat forum, bitcoin core developer Gregory Maxwell said yesterday, “It is exceptionally unlikely that malleability will be fixed in the year. We've been slowly moving towards improving it, v0.8 closed of many forms of it." Maxwell went on to say that the core development group doesn’t consider malleability to be among the Top 10 threats it’s focused on addressing. He didn’t elaborate as to what these more pressing threats would be. Maxwell also claims to have allerted Mt. Gox months ago to an issue with its exchange platform that would make it uniquely vulnerable to transaction malleability attacks, an alert that apparently went unheeded.
The consensus among bitcoin developers seems to be that transaction malleability is not the severe problem that Mt. Gox claims. Other exchanges with larger transaction volumes than Gox, including Bitstamp, BTC-e, and BTC China, have yet to experience similar transaction verification problems.
In response, Prominent Silicon Valley VC and BTC China investor Jeremy Liew of Lightbank Partners tweeted:
In what should be a surprise to no one, mtgox has suspended operations. We Need a licensed US #bitcoin exchange. http://t.co/ygAOViFiB0
— jeremy liew (@jeremysliew) February 7, 2014
A popular conspiracy theory circulating around bitcoin forums and message boards has Mt. Gox deliberately spreading FUD (fear, uncertainty, and doubt) to manipulate the global price of bitcoin and escape from internal insolvency issues created by last year’s seizure of $5 million in funds by the Department of Homeland Security. The theory goes that Gox would tank the price of bitcoin, buy up large sums of cheap coins, then later sell them once the price rebounds, thus making up for any shortfall.
There is no evidence to support this and it could very well be the overactive imagination of disgruntled bitcoin users. Nonetheless, whether they perceive the situation to be a result of technical incompetence on Mt. Gox’s part or calculated market manipulation, many users seem to have already made up their minds. Trust in Mt. Gox was low before Friday’s withdrawal suspension, but today’s blame game statement is bound to make things worse.
If the full extent were that Mt. Gox were treating its customers poorly and bitcoin users had the option of avoiding it in favor of using other exchanges, that would be one thing. After all, most sophisticated bitcoin users had long ago abandoned the exchange and were thus largely unaffected by its practices. But with Gox’s fear mongering affecting the global bitcoin community it’s no longer a problem they can ignore. As a result, some are beginning to advocate that Mt. Gox owner Mark Karpeles be removed from the Bitcoin Foundation.
Mt. Gox’s statement omitted key assurances that the exchange is financially solvent, there was no mention of responsibility or culpability on its part, nor any timeline under which it anticipates reinstating bitcoin withdrawals. It’s almost as if the statement was engineered to create maximum uncertainty, and history shows that markets don’t like uncertainty.
The impact of Mt. Gox’s latest statement on the global price of bitcoin was swift though short lived. The Coindesk Bitcoin Price Index, which measures the average price across all major global bitcoin exchanges, plummeted from $681.94 at 10:00 GMT to a low of $535.55 at 11:10 GMT. As I write this, the Index has rebounded to $667.00. The Index was trading in the $840 range prior to Mt. Gox’s first announcement suspending withdrawals on Friday. While the market has not yet recouped these losses, it appears that the panic-selling is over, at least for the time being.
The news has had another notable impact on pricing. For the last six months, Mt. Gox has traded at a premium of 10 percent or more to other major bitcoin exchanges. Many observers attributed this premium to a fear among users over lengthy delays in the ability to withdraw fiat currencies from the exchange. Nonetheless, with fiat currency withdrawals continuing to take several weeks and BTC withdrawals now suspended indefinitely, what was previously a 10 percent premium is now an 11 percent discount. Mt. Gox is currently trading at just $607.99.
Expect this to be a highly fluid situation over the coming days and weeks. If I had to speculate, I’d guess that the bitcoin development team, and perhaps the bitcoin foundation, will come out with a statement addressing the risks, or lack thereof, presented by transaction malleability. The sooner such a statement is made, and the more strongly it leans toward removing uncertainty – assuming that’s accurate – the quicker the markets will stabilize.
The last year has been brutal on Mt. Gox. The company was investigated by the US Department of Homeland Security, had $5 million of customer deposits seized, was sued by one of its partners for $75 million, was the target of multiple DDOS attacks, and has struggled to process withdrawals. Maybe it’s no surprise that the company has asked the bitcoin community for a breather. Mt. Gox is certainly wounded, but how severely remains to be seen.
Pundits have been predicting Mt. Gox’s demise for several months, never more loudly than in the last 72 hours. What was the first global bitcoin exchange, and once the largest, has now become a pariah. But there are still millions of dollars in bitcoin wealth on deposit at Mt. Gox, meaning the exchange won’t go quietly into the night.
Whether Karpeles and his team can survive will depend on how quickly they can resolve this and at what cost to its customers. Each day that passes without clarity and trust adds another nail to its proverbial coffin.
Read the full Mt. Gox statement below:
[Image via WikiCommons]
Dear MtGox Customers and Bitcoiners,
As you are aware, the MtGox team has been working hard to address an issue with the way that bitcoin withdrawals are processed. By "bitcoin withdrawal" we are referring to transactions from a MtGox bitcoin wallet to an external bitcoin address. Bitcoin transactions to any MtGox bitcoin address, and currency withdrawals (Yen, Euro, etc) are not affected by this issue.
The problem we have identified is not limited to MtGox, and affects all transactions where Bitcoins are being sent to a third party. We believe that the changes required for addressing this issue will be positive over the long term for the whole community. As a result we took the necessary action of suspending bitcoin withdrawals until this technical issue has been resolved.
Addressing Transaction Malleability
MtGox has detected unusual activity on its Bitcoin wallets and performed investigations during the past weeks. This confirmed the presence of transactions which need to be examined more closely.
A bug in the bitcoin software makes it possible for someone to use the Bitcoin network to alter transaction details to make it seem like a sending of bitcoins to a bitcoin wallet did not occur when in fact it did occur. Since the transaction appears as if it has not proceeded correctly, the bitcoins may be resent. MtGox is working with the Bitcoin core development team and others to mitigate this issue.
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.
The bitcoin api "sendtoaddress" broadly used to send bitcoins to a given bitcoin address will return a transaction hash as a way to track the transaction's insertion in 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.
This means that an individual could request bitcoins from an exchange or wallet service, alter the resulting transaction's hash before inclusion in the blockchain, then contact the issuing service while claiming the transaction did not proceed. If the alteration fails, the user can simply send the bitcoins back and try again until successful.
We believe this can be addressed by using a different hash for transaction tracking purposes. While the network will continue to use the current hash for the purpose of inclusion in each block's Merkle Tree, the new hash's purpose will be to track a given transaction and can be computed and indexed by hashing the exact signed string via SHA256 (in the same way transactions are currently hashed).
This new transaction hash will allow signing parties to keep track of any transaction they have signed and can easily be computed, even for past transactions.
We have discussed this solution with the Bitcoin core developers and will allow Bitcoin withdrawals again once it has been approved and standardized.
In the meantime, exchanges and wallet services - and any service sending coins directly to third parties - should be extremely careful with anyone claiming their transaction did not go through.
Note that this will also affect any other crypto-currency using the same transaction scheme as Bitcoin.
To put things in perspective, it's important to remember that Bitcoin is a very new technology and still very much in its early stages. What MtGox and the Bitcoin community have experienced in the past year has been an incredible and exciting challenge, and there is still much to do to further improve.
MtGox will resume bitcoin withdrawals to outside wallets once the issue outlined above has been properly addressed in a manner that will best serve our customers.
More information on the status of this issue will be released as soon as possible.
We thank you for taking the time to read this, and especially for your patience.
Best Regards,MtGox Team