By whom and when can transaction malleability be applied?

3

Once I create a transaction and relay it to the network, who can alter the transaction id? Can the transaction id change at any time or only when the transaction is confirmed or unconfirmed?

Doug Peters

Posted 2014-07-21T12:03:28.453

Reputation: 1 326

Answers

2

The underlying data cannot be changed, only the signature thus id can. It can be altered by anyone with knowledge of how to alter digital signatures while not invalidating them.

If it's a valid transaction, either the altered or unaltered version can be included in the blockchain.

Once it's cemented into the blockchain, the signature thus id cannot be changed.

user5107

Posted 2014-07-21T12:03:28.453

Reputation:

So once it gets like 6 confirmations or so its tx id cannot be altered, right?Doug Peters 2014-07-21T15:29:42.663

@DougPeters It's more like miners can see two versions of the same transaction because of the possibility of two different signatures/transaction ids (nearly the same thing). Some miners will mine one version while some miners will mine others mostly depending upon what they receive first. No one will try to add the two different versions to the same chain because of the double-spend check since the underlying data cannot be changed thus is identical. It all depends on whether the altered version makes it to the successful chain or the unaltered version does. – None – 2014-07-21T15:38:22.587

Thanks for the info! So from the point that any of these tx versions gets included into a block (1 conf) its tx id cannot be changed, without the attacker having to mine all blocks from that point on, right?Doug Peters 2014-07-21T15:43:57.060

1@DougPeters No prob! No, a malleated txid & transaction properly added to a proper blockchain can never be changed by a protocol obeying node. An attacker can try to disobey the rules but will be quickly found out and blacklisted for 24 hours. By the rules, an added transaction can never be changed, including its txid. The attacker would have to somehow get everyone to agree on the chain with a specific txid, practicably impossible. In short, nothing changes once a transaction's deep in the chain: 6 blocks & 60 minutes. – None – 2014-07-21T16:01:38.843