I am currently trying to learn what values miners can adjust in the block headers when hashing them. I see that the version number is routinely changed to some random bit string (which seems a bit odd if its intended use is to vote for proposals).
What I have gathered so far:
- The first bit cannot be 1 (to avoid negative version numbers) and the minimum decimal-converted version number must at least be equal to 4 [prior question].
- From further reading [link] I also see that the first bit in every byte cannot be equal to 1? Is this correct?
- From what I understand, to signal the version bits you have to set the first bits to 001. Would it still be permissible to change the other version bit numbers and have the first three bits set to any other permutation that does not set the first bit equal to 1 (e.g. 010, 011)?
Does this mean all possible bit vectors that satisfy these constraints (if I understood them correctly) are valid? Ideally someone can sketch out the number of permissible bit vectors. Any references with further details are appreciated. Thanks!