TECHNICAL_DOC // BLOCK / VERSION
VERSION
The block version field is a 4-byte signed integer in the block header
originally indicating the protocol version. Since BIP 9, the upper 3 bits signal version-bit
fork/">soft fork readiness, while bits 0–28 act as a version bits mask allowing
miners to simultaneously signal support for up to 29 concurrent soft fork proposals.
VERSION_HISTORY
BLOCK VERSION EVOLUTION
Version 1: 0x00000001
Original protocol version. Used from genesis to block 227,930.
Version 2: 0x00000002 (BIP 34)
Required coinbase to encode block height in scriptSig.
Activated at block 227,931.
Version 3: 0x00000003 (BIP 66)
Enforced strict DER encoding for ECDSA signatures.
Activated at block 363,725.
Version 4: 0x00000004 (BIP 65)
Enabled OP_CHECKLOCKTIMEVERIFY (CLTV).
Activated at block 388,381.
BIP 9 era (version bits): 0x20000000 and above
Upper 3 bits = 001 → enables version bit signaling
Bits 0–28 = soft fork signal bits
Taproot signaling (BIP 341):
Version = 0x20000000 | (1 << 2) = 0x20000004
Locked in at block 687,284 (June 2021)
BIP 9 — Version Bits Signaling
SOFT FORK ACTIVATION
BIP 9 defines a state machine for soft fork activation using individual bits in the version field, allowing multiple upgrades to be signaled simultaneously.
Version field bit layout (BIP 9):
Bit 31-29: must be 001 (identifies BIP9 block)
Bit 28-0: individual signal bits
Signal bit N set: miner signals readiness for proposal N
Example: 0x20000004 = bit 2 set = Taproot signal
Activation states per bit per difficulty period:
DEFINED → proposal exists, not yet started
STARTED → signaling window open
LOCKED_IN → 95% of blocks in window signaled
ACTIVE → soft fork rules enforced
FAILED → 95% threshold not met in time
Speedy Trial (BIP 8, used for Taproot):
Lower threshold, shorter window, min activation height
Miners signaling a version bit does not mean they enforce the new rules — it only indicates readiness. Full nodes enforce soft forks regardless of miner signaling once active.
TERMINOLOGY_INDEX
Block Version
4-byte field in block header. Originally protocol version, repurposed by BIP 9 for soft fork signaling.
BIP 9
Version bits proposal for concurrent soft fork signaling and activation via miner threshold voting.
Version Bits
Bits 0–28 of the block version field used by BIP 9 to signal readiness for specific soft fork proposals.
Speedy Trial
A BIP 8 variant with shorter windows and lower thresholds, used to activate Taproot.