I’m currently looking into what values miners can adjust when hashing block headers. I’ve noticed that the version number is regularly changed to a random string of bits (which seems a bit strange if it’s for voting on suggestions).
What I’ve gathered so far:
- The first bit cannot be 1 (to avoid negative version numbers) and the minimum decimal conversion version number must be at least equal to 4 (previous question).
- From further reading (link) you also see that the first bit of every byte cannot be equal to 1? Is this correct?
- From what I understand, you need to set the first bit to 001 to signal the version bit. Is it still acceptable to change the different version bit numbers and set the first three bits to some other permutation that doesn’t set the first bit? Is it equal to 1 (e.g. 010, 011)?
Does this mean that all possible bit vectors that satisfy these constraints (if I understand them correctly) are valid? Ideally, someone could sketch out roughly how many bit vectors are allowed. I would appreciate some references with more details. thank you!