Live prices are currently unavailable — the exchange feed could not be reached and no recent cached reading is held.

Protocol History

Version bits and soft-fork signalling

A soft fork needs the network to adopt it, and adoption has to be measurable before it can be relied on. Version bits signalling uses the block header's version field as a ballot: miners set a bit to indicate readiness, and the change activates once enough blocks in a difficulty period have signalled. The mechanism is simple, and its failure modes are the interesting part.

Protocol referenceSource: BIP 9 and BIP 8Thresholds and state transitions are quoted from the cited BIPs.

The coordination problem

A soft fork is a rule that some nodes enforce and others do not, and the network is only following the new rule once a majority of mining power enforces it. Before that point, a miner producing a block that violates the new rule would have it accepted by the nodes that have not upgraded and rejected by those that have, which is a chain split in miniature. Activation is the process of getting past that point without causing one.

The earliest soft forks used a flag day: a block height was announced in advance, and the change took effect when the chain reached it. That works when the change is uncontroversial and the upgrade window is long enough for everyone to act. It does not work when a meaningful part of the network does not intend to follow, because there is no way to find that out before the deadline.

Version bits signalling replaced the deadline with a measurement. The block header has a version field, and BIP 9 redefined it as a set of bits that miners can set to indicate support for a specific proposal. The network can then observe how much support exists before the change takes effect, and the change activates only if the support crosses a threshold.

How BIP 9 works

Each proposal is assigned a bit in the version field. A miner that has upgraded and is ready for the change sets that bit in the blocks it produces. The network counts the blocks in each difficulty adjustment period — 2,016 blocks, roughly two weeks — and compares the count against a threshold. BIP 9 sets that threshold at 95% of the blocks in the period.

The mechanism moves through defined states. It begins in Defined, where the bit is reserved but not yet counted. It moves to Started at a specified time, when signalling begins to be counted. If a period ends with at least 95% of its blocks signalling, the proposal moves to LockedIn, and the new rules take effect one period later. If the timeout is reached without the threshold being met, the proposal moves to Failed, and the bit is no longer counted.

The delay between LockedIn and activation is deliberate. It gives nodes that have not yet upgraded a final window to do so before the new rules are enforced, which reduces the chance that a non-upgraded node is surprised by a block it cannot validate. The whole sequence is designed so that the point at which the rules change is known in advance and is the same for everyone.

The failure modes

The first failure mode is that the threshold is never reached. A proposal that does not attract 95% support simply expires, and the network is left with the rules it already had. That is a safe outcome in the sense that nothing breaks, but it is an unsatisfying one: a change that a large majority supports but not a supermajority cannot be deployed, and there is no defined point at which the attempt is abandoned in favour of something else.

The second failure mode is subtler. Because the threshold is measured in blocks rather than in economic weight, a minority of mining power can block a change that most users want, and a majority of mining power can activate a change that most users do not. The mechanism measures what miners signal, and miners are not the same set as the people who hold and transact in bitcoin. That gap is the reason the question of who decides is never fully settled by a signalling mechanism.

The third is that a proposal can be deployed by a mechanism that bypasses the threshold entirely. BIP 8 was written as an alternative that includes a fallback: if the threshold is not reached by a specified time, the change activates anyway, on the theory that a change with broad support should not be blocked indefinitely by a minority of miners. That is a different answer to the same question, and the choice between the two mechanisms is itself contentious.

How it was used

Segregated Witness was the first change deployed through version-bits signalling, and its activation in August 2017 was the resolution of the block size argument described on the block size debate page. The signalling period was contentious, and the fact that the threshold was eventually met did not end the disagreement about whether the mechanism was the right one.

Taproot was deployed in 2021 using a variant of BIP 8 implemented in Bitcoin Core as Speedy Trial, which shortened the signalling window and set a defined timeout. It activated without the controversy that had surrounded SegWit, which is the outcome the mechanism is designed to produce when a change has broad agreement. Both deployments are listed on the major protocol upgrades page.

The mechanism is not a decision procedure. It is a way of measuring whether a decision has already been made, and of making the point of change predictable. When the network agrees, it works quietly. When it does not, the mechanism cannot manufacture agreement, and the disagreement moves to the question of which activation rule should apply — which is where it has stayed.

Sources