As with many design decisions for the original Bitcoin protocol, the answer is simply “because it seemed like a good idea to Satoshi”. The raw transaction format includes both variable-length numbers (called “CompactSize”, used for input and output counts and script sizes) and fixed-length numbers, both 4-byte (version, sequence, prevout index, locktime) and 8-byte (output amount), so in this sense the version field doesn’t really stand out. Also note blocks too have a 4-byte version field.











