Post
Topic
Board Bitcoin Discussion
Re: Is my layman's understanding of transaction malleability correct?
by
Maged
on 18/02/2014, 00:19:47 UTC
Here's where I'm a little unclear. Transaction malleability isn't a problem after a transaction has at least one confirmation, right?
Practically, yes. Theoretically, if there is a reorganization of the block-chain (where a longer chain of blocks overtakes the chain that you currently believe to be correct), transaction malleability can still be a problem for some time after the first confirmation. This is, of course, the same situation with a standard double-spend, which is why it is always recommended to wait for 6 or more confirmations.

Once a transaction has at least one confirmation, any other identical transactions (identical except for the signature, that is) won't be verified by miners, I don't think.
Exactly. Miners will see these identical transactions in the exact same light as they see standard double-spends.

The issue arises if a bitcoin processor/exchange allows someone to spend coins they withdrew before waiting for at least one confirmation?
Depends on the "issue" you are referring to. You see, in the past week, the three major stories you've heard in the media (MtGox, SR 2.0, DDoS) were all unrelated.

For the MtGox issue:
The issue arises if a bitcoin processor/exchange is refunding what appears to be a failed withdrawal back to a user's account. If they look in the blockchain for the transaction ID that corresponds to the withdrawal transaction they issued, they won't find it because their transaction's hash was changed prior to entering the blockchain. This is fundamentally the wrong way to deal with this issue. Once you issue a transaction, you're supposed to always assume that the transaction WILL go through unless you double-spend at least one input to the transaction and wait for that new transaction to confirm. Under no circumstance should you just issue a completely new transaction like MtGox did. That is how they lost some bitcoins.

For the Bitcoin-Qt issue:
The issue arises if you are spending "change" from a transaction you just made that is still unconfirmed. If that original transaction gets mutated and confirmed with that mutation, the transaction that you made using change from the unmutated transaction can no longer go through.

For the Silk Road issue:
They just ran with the money and used the malleability issue as a cover. Don't think too much into their statements.

This means that it's not possible for both transactions to be in the blockchain, so people/organizations affected by this won't have to go through the blockchain to find people who double-withdrew, right?
Yes. Only one can ultimately exist in the blockchain.