From reddit:
My view on the latest events at MtGox (self.Bitcoin)
poslano prije 51 minuta*, poslao il--ya
This is my picture of events around so-called Technical Issue in bitcoin protocol, which MtGox uses as a pretext for their ongoing BTC withdrawal block. Just for those who is not aware yet, this is a classical FUD. And already refuted by some core developers and Bitcoin Foundation.
So it started in 2011.
On 24 April 2011 the protocol specification was updated to specify that ASN1/DER encoding should be used for the transaction signature:
https://en.bitcoin.it/wiki/Protocol_specification#SignaturesOn May 15, 2011, there were some concerns raised, confirmed as a known low-priority issue by Gavin Andresen:
https://bitcointalksearch.org/topic/new-attack-vector-8392Much later this known transaction malleability issue was published in wiki on 21 January 2013:
https://en.bitcoin.it/wiki/Transaction_MalleabilityThere is also a bit of interesting background from GMaxwell:
http://www.reddit.com/r/Bitcoin/comments/1x93tf/some_irc_chatter_about_what_is_going_on_at_mtgox/cf99yacMalleability patches were released in 2012 and 2013: Dec 22, 2012:
https://github.com/bitcoin/bitcoin/commit/bffc744444c19e25c60c8df999beb83192f96a8a Aug 15, 2013:
https://github.com/bitcoin/bitcoin/commit/a81cd96805ce6b65cca3a40ebbd3b2eb428abb7b Sep 21, 2012:
https://github.com/bitcoin/bitcoin/commit/58bc86e37fda1aec270bccb3df6c20fbd2a6591c and probably other other.
If you are familiar with C, look in particular at the lines with text "Non-canonical signature: R value excessively padded" message and "Non-canonical signature: S value excessively padded" - that's the ASN.1/DER encoding deviations which were present in MtGox signatures and reason why some of their transactions were rejected by nodes when format rules in reference clients were tightened.
In spite of all this development activity, as of the end of January, MtGox developers still had no clue what this "Excessive padding" error is about.
This sloppy signature format implementation was the actual reason why it was so easy to exploit this (otherwise mostly hypothetical) vulnerability with MtGox exchange, but not with other exchanges. Other exchanges implement signatures properly, so it would take a lot of luck and/or resources for the hacker to intercept the transaction, modify it and propagate throughout the network faster than the original transaction. In the latest version of the reference client, malformed transactions are rejected, and only properly formed transactions are propagated through the network. So for the hacker to pull the trick, it would indeed require to "alter the transaction fast enough, for example with a direct connection to different mining pools"; but that would be not as easy to "cause the transaction hash alteration to be committed to the blockchain" as MtGox claims in their mendacious statement. It was indeed easy in their case, because the hacker had all the time he needed to replay transaction.
Also, despite false MtGox claim: "It is likely that these services will assume.. have currently no means to recognize the alternative transactions as theirs in an efficient way", other exchanges very likely don't assume, but just follow reference client and use other (efficient enough) ways to track transactions and spent outputs. MtGox assumes here that everybody else is as incompetent as they are, which is beyond my imagination.
To my knowledge (I analized
https://data.mtgox.com/api/0/bitcoin_tx.php - list of "stuck" transactions published by MtGox) the oldes spent transactions which they try to re-use go as far back as 10 November 2013 (at least).
So basically since 10 of November their exchange was exploited, and they didn't even notice that. The only "flaw" in bitcoin protocols in this case are humans beings: incompetent, ignorant, complacent and dishonest.
And after all that, they decided to publish their filthy statement, blaming everybody except themselves for their own faults, and not even caring to apologise. They also want to portray themselves as heroes, who save Bitcoin from fatal flaws. Latest rumour was, that they donated 10000BTC to bitcoin foundation to push[might have misinterpreted that] pushing through a completely unnecessary patch into reference client implementation, just to prove their point.
Shame on you, MtGox.
Edit: spelling.