bitcoin-dev

[BIP] Normalized transaction IDs

[BIP] Normalized transaction IDs

Original Postby Gregory Maxwell

Posted on: October 21, 2015 07:48 UTC

A proposal was implemented to compute the normalized transaction ID when adding them to the UTXO and storing them along with the coin state.

However, it still doesn't completely close malleability, which should be documented in the BIP. The implementation of fully malleability-proof wallets could be done by specifying flags upfront in the UTXO-creating transaction, specifying which parts the signature will cover. Additionally, there is a flag to control whether the opcode behaves as VERIFY or not, but non-VERIFY is not possible as a softfork since it can be negated. Flagability cannot work recursively which is necessary for any improvement to be useful for multi-phase protocols. One still wants sighash flags, but they're going to inherently result in malleability. Uniform segregated witness is hard to deploy, adding another id to every utxo set won't be a nice cost. The only real application of this class of improvement is third party mutation prevention by enforced canonical encodings.