bitcoin-dev

[BIP] Normalized transaction IDs

[BIP] Normalized transaction IDs

Original Postby Gregory Maxwell

Posted on: October 21, 2015 19:27 UTC

In an email discussion on Bitcoin-dev, Danny Thorpe raises concerns about malicious third parties modifying transactions in the mempool by twiddling opcodes in the signature scripts.

However, canonical encoding enforcement has been deployed as a standardness rule to prevent such malleability completely on ordinary transactions. This is an immediate solution that will only allow miners to malleable ordinary payments once they have updated to 0.11.1 or 0.10.3 (or equivalent). The proposal being discussed does not provide an immediate benefit against third party manipulation of transactions in the mempool, but rather addresses multistep contracts and other cases. It does not prevent third party mutation until people change their public keys to a new scheme, which cannot be done until a soft fork is made and settled in the network for which the code has not yet been written. The current timeframe for a soft fork is around a year according to CLTV. Canonical encoding is both sufficient for preventing third party malleability on ordinary transactions and the only option for having an actually immediate benefit. Therefore, it's important to not mix up third party malleability with this work which is important in its own right.