Transaction malleability is *potentially* an issue for everyone in that even if you do proper accounting and don't rely on TxID, if someone rebroadcasts a mutant transaction, for a while there will be two versions of the transaction kicking around the network. This is merely an inconvenience, not a threat, unless you are as incompetent as Gox was. There are at least two reasons why hackers/spambots rebroadcasting mutated transactions is unlikely to be a problem:
- The first and most important is that since we know that TXIDs are malleable and thus tell us nothing about whether BTC was sent or no, we cannot rely on TXID for our accounting. Mt Gox did so, and it allowed people to withdraw their balance multiple times from Gox.
- The other important reason is that the first (ie the true) transaction broadcast has the greatest chance of being accepted into the blockchain as it has a headstart in propogation. So even if you mutate and rebroadcast a transaction, it is the original that will make it into the blockchain, so all that is required to be safe is to wait for 1 confirmation. You can even rely on TXID (but definitely shouldn't!) if your transactions are able to win the propogation race 100% of the time. MtGox managed to fuck this one up as well, because they use non-standard padding that ends up creating transactions that are seens as invalid by the vanilla bitcoind client as of late last year. So [some of] their transactions get rejected by miners, and the mutant transactions are the ones that end up in the blockchain!
It really took this double-whammy of incompetence on the part of Gox to turn this minor issue/design decision in the Bitcoin protocol (that's been known about since 2011 and that every other wallet software has handled) into a big problem.
Stamp delaying withdrawals seems like a fairly responsible move, they may want to double check that their implementation is not affected by tx malleability - it sounded like their bitcoind is being confused by the multiple TXes, but that logic is not the logic for monitoring customer account balances so I doubt they suffer the same problem as gox. Though as Mike Caldwell rightly points out, there is no excuses for halting withdrawals for more than a couple of days, or for paying them any less than daily, as even a manual process would suffice.
Good clear summary, thanks.
It's been an exciting week