I don't fully understand how version bits voting works, but I'm trying familiarize myself with the current options.

Are these the most popular for voting at the moment?

0x20000000 = Bitcoin Unlimited?
0x20000002 = Segwit?
0x20000007 = XT?
0x30000000 = 2MB Blocks?

Is there a list of them in one place anywhere?

Also, is it correct to say that each vote corresponds to a specific BIP?

up vote 4 down vote accepted

Most of what you ask about doesn't have anything to do with Version Bits actually. :)

Let's start from the top:

nVersion is a four byte (32 bit) field in the block header. The version field was first interpreted as an integer with the genesis block introducing version 1. Later the network was softforked to create blocks of version two. From that point on it was required that all blocks have a version number equal or bigger than two. Expressed in binary, two is 0010. Since the version field is little-endian, this meant that going forward it was thus required that the first three bits in the version field had to be 001.

BIP0009: Version Bits introduced the idea of interpreting the remaining 29 bits as flags instead of interpreting the whole field as one integer. It's also less of a vote but rather a signal of readiness for a softfork proposal. The readiness is expressed by setting the respective bit to 1 in the version field. (More rules for using Version Bits are specified in BIP0009.) It is thus possible to signal readiness for up to 29 softfork proposals at the same time. Therefore each Version Bits field corresponds to signaling about all softforks currently in deployment.

Out of the proposals you list, only SegWit uses Version Bits for deployment: List of version bit deployments. None of the other mentioned proposals is a softfork, and they don't make use of Version Bits for deployment. Instead, they communicate support by setting the Coinbase text.

  • 2
    They're not actually votes though. Any majority of miners can start enforcing a new rule - they don't need to indicate it in blocks, or even tell anyone about it. What version bits does is providing a way to signal readiness, so that a safe and coordinated transition point can be found. – Pieter Wuille Jan 1 '17 at 13:14
  • I know it has taken a while, but thanks to your help I was able to create a page that breaks the nVersion field down in to bits to show the different signals: learnmeabitcoin.com/browser/block/version/20000002. Hopefully anyone else reading this may find it useful. – inersha Aug 17 '17 at 11:57

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.