bitcoin-dev

[BIP] Normalized transaction IDs

[BIP] Normalized transaction IDs

Original Postby Christian Decker

Posted on: October 19, 2015 14:01 UTC

Christian has reworked his proposal for normalized transaction ID and is now proposing it as a soft-fork.

The new proposal computes the normalized transaction ID by stripping signatures before hashing it, ensuring that any modifications to the transaction still remain valid. This also allows the use of template transactions. Unlike the previous proposal, this one redefines OP_NOP4 with an extensible and parameterized version of signature checking opcodes called OP_CHECKSIGEX. The parameters allow an output with an OP_CHECKSIGEX to be referenced by the normalized transaction ID that created it. However, the normalized transaction IDs are not used in network-level messages. The proposal is implemented by computing the normalized transaction ID when adding it to the UTXO and storing it along with the coin state. While OP_CHECKSIGEX mostly duplicates OP_CHECKSIG and OP_CHECKMULTISIG, Christian is hoping someone could help him refactor the common functionality into reusable blocks. He also finds the process of annotating incoming transactions with their normalized inputs cumbersome. Christian has provided links to the BIP pull request and implementation code. He hopes that this proposal addresses previous concerns regarding hard-forks and welcomes suggestions from the community.