bitcoin-dev

[BIP] Normalized transaction IDs

[BIP] Normalized transaction IDs

Original Postby Gregory Maxwell

Posted on: October 21, 2015 10:14 UTC

In a discussion on October 21, 2015, Christian Decker proposed using the scriptSig to transport signatures internally to transactions and stripping them when it comes time to sign and check them.

This process wouldn't alter the wire format or transportation of transactions, allowing old clients to continue processing them as before, but they wouldn't be able to verify the TX. Blocks would still reference the instance, but verification would use the stripped TX with the signatures on the side. Another method proposed was utilizing sighash normalization; however, this technique comes with certain limitations. It doesn't allow for creating a utxo set or scanning the blockchain while transferring only about a third of the data. Additionally, it requires rewriting txin IDs when the witness changes on a parent transaction, hashing each transaction multiple times, and storing two IDs for every transaction in the UTXO set. While not infinitely easier than the previous proposal, it is easier to deploy.