BIP: MalFix Title: Malleability fix Author: Tomas van der Wansem <email@example.com> Status: Draft Created: 2016-12-14
Table of Contents
This document proposes a change in the protocol, that allows the creation of non-malleable transactions.
The advantages of creating non-malleable transactions are well known and discussed elsewhere 
Immutable Transaction ID: The double SHA256 taken from a transaction after stripping it of all input scripts including their length prefixes.
UTXID - Unspent Transaction ID: Either the Immutable Transaction ID of a transaction with version 3 or higher, or the Transaction ID of a transaction with verion 1 or 2.
The previous-tx field of every output of every transaction which currently contains the TXID of the transaction being spend is replaced by a UTXID of the transaction being spend.
The TXID is still used in for construction of the merkle root and passed in INV messages.
This BIP will be deployed by "version bits" BIP9, using bit 5. Start date TBD.
- SegWit BIP 141  also fixes malleability. It has the drawback that it fixes many things at once, which may make it difficult to reach consensus. For example, it introduces new limits that are difficult to reconcile with the Unlimited variants.
- Flexible Transactions  also fixes malleability. It has the drawback of introducing a new serialization format, which means that every software will need to support two very different formats indefinitely. This may be a high price to pay.