Value for Value ⚡️
Night Mate
Episode Summary
Block Version Number in BitcoinThe block version number in Bitcoin serves as an indicator of which set of consensus rules a block follows. It's also used to signal miners' readiness or support for upcoming protocol upgrades. Over time, block version numbers have evolved from simple sequential numbers (like versions 1 through 4) to a more complex bit-field system, which allows for multiple upgrades to be signaled at once.From last time you badgered me I made some notes. Evolution of Block VersionsEarly Versions (1-4):These were straightforward indicators of protocol changes. For example:Version 1 was used from the Genesis block until March 2013.Version 2 came with BIP 34, authored by Gavin Andresen, it added the block height to the coinbase transaction and was activated at Block 227,931 on March 27, 2013.Version 3 enforced stricter signature validation with BIP 66, authored by Pieter Wuille, it ensured correct DER encoding of signatures. It activated at Block 363,725 on July 4, 2015.Version 4 enabled CheckLockTimeVerify (CLTV) with BIP 65, also authored by Pieter Wuille, it allowed for time-locked transactions and activated at Block 388,381 on December 11, 2015.Then come the Version Bits format:Bitcoin upgrades were becoming increasingly complex, the block version system transitioned to the Version Bits signaling mechanism, which allows multiple protocol changes to be signaled at once using specific bits in the block version field, allowing miners to signal support for up to 29 features simultaneously, each represented by a specific bit in the 32-bit version field.When Segregated Witness (SegWit) was introduced, Bitcoin transitioned from simple block versions to the complex numbers seen today.Special Note: before we review the important key version bits, I have to make something clear. These version numbers are more than just sequential; they signal specific changes using bitsI am going to call out version numbers like 536 870 912, which is is the decimal representation of the hexadecimal value 0x20000000The full number 536870912 in binary is 00100000000000000000000000000000.“536" doesn't have standalone significance. It’s just a part of the decimal value when the binary representation of 0x20000000 is converted into base 10 (which equals 536870912).The important part lies in the bitwise representation, where the leading bits "001" in the binary form, are reserved for signaling purposes, indicating that version bits are being used.But for the purpose of conveying version numbers to a human (this human being you Max) we will use the decimal representation instead of 0x2 nd a bunch of zeros or 001 and 29 more zeros.Now to the bit version section…Version 536 870 912 indicated readiness for SegWit, introduced through BIP 141 (authored by Pieter Wuille). SegWit was activated on August 24, 2017, at Block 481,824.Version 536 870 913 was used to signal support for BIP 91 and authored by James Hilliard. BIP 91 lowered the threshold required for SegWit’s activation. It was locked in at Block 477,120 on July 20, 2017.Version 536 870 914 and 536 870 916 continued signaling for SegWit deployment through various BIPs.How It Works TodayToday, miners use the Version Bits system to signal support for new upgrades, and they must keep their block vers