Changing the transaction version number to be varint



Summary:

On January 20th, 2017, Tom Zander proposed introducing a new transaction format for Bitcoin. He suggested that from a certain block height, bytes 2, 3, and 4 of the current transaction format be labeled as unused. From that same block height, the interpretation of the first byte would be as varint. Additionally, only transactions that do not lie about their version number (version 1) would be valid. However, some issues were raised with this proposal. Firstly, it would require a hardfork, as existing nodes would not be able to deserialize the transaction. Secondly, using non-version 1 transactions is permitted since v0.1, and version 2 transactions are already used due to BIP68. Finally, if the proposal only affects network transfer, it would be considered a p2p protocol upgrade and not a softfork nor a hardfork. The three ways to introduce new transaction formats include: through a softfork, which makes old clients blind to the new format; through a hardfork, which forgets the old clients and requires new clients to understand the new format; or p2p only, which won't affect consensus. Regardless of the method chosen, one could introduce whatever new format they want.


Updated on: 2023-05-20T00:35:08.254192+00:00