Requesting BIP assignment; Flexible Transactions.



Summary:

A member of the bitcoin-dev mailing list, Tom, requested a BIP number for his FT (Flexible Transactions) specification. He was advised by Luke Dashjr to open a pull request on the bitcoin/bips repository after further discussion. The new version of 'script' (version 2) changes the data that is signed to be equivalent to the transaction-id, which is a major simplification and the only change between version 1 and version 2. However, some functionality is lost, leading to questions about what will replace SIGHASH_SINGLE and SIGHASH_ANYONECANPAY? It was suggested that it would be nice to add the ability to use only a hash of the prevout's scriptPubKey in the input. The token ScriptVersion is currently not allowed, and putting ScriptVersion=1 in a transaction makes it invalid. Block-malleability is addressed by extending the merkle tree to include the hash of v4 transactions alone, with the hash taken over a data-blob that is built up from the txids. It was questioned how nodes would know where in the merkle-tree the txids end and the v4hashes begin; however, since the txid based ones are not going away, the number of transactions in the block can be used to determine when the pure tx-id segment stops and when the v4 hashes begin. The client then rebuilds the tree from that list based on the larger input set to get the same root-node.


Updated on: 2023-06-11T20:01:21.155805+00:00