Forgive me if this has been discussed to death and back, but lately I've been working on some Contracts transactions. The realization that malleability prevents some of these contracts from working (trustlessly and securely) is starting to sink in.
Dependent transactions just can't be built until they're included in the blockchain...
Does tx malleability basically mean that a number of advanced contracts are essentially broken?
1. Providing a deposit - Tx2 can't depend on Tx1 txid not changing. Step 2 sends the hash of Tx1 to the "website" to sign a refund tx.
2. P2P alt-chain trading - Tx2 can't refund Tx1 until it's in the blockchain, but you shouldn't fund Tx1 until Tx2 is signed.
3. Rapidly adjusted micropayments - (Does this hurt bitcoinj's security too?) Can't create refund T2 based on hash of T1.
I'm not interested in MtGox and their usage of transaction hashes, as that's just something they can fix. These advanced contracts, on the other hand, heavily depend on a transaction hash not changing.