A Small Modification to Segwit


One of the interesting aspects of Gregory Maxwell’s proposal is that it only precludes the covert version of ASICBoost. He specifically left the overt version alone.

Overt ASICBoost requires grinding on the version bits of the Block header instead of the Merkle Root. This is likely more efficient than the Merkle Root grinding (aka covert ASICBoost) and requires way less resources (much less RAM, SHA256 calculations, no tx shuffling, etc).

If we combine Gregory Maxwell’s proposal with BIP-141 (Segwit) and add a slight modification, this should, in theory, make ASICBoost a lot more useful to miners and appeal to their financial interests.

The Modification

Currently, the version bits (currently 4 bytes, or 32 bits) in the header are used for BIP9 signaling. We reserve 8 of the version bits (from bit 16 to bit 23) to a nonce-space so the miners can use it for overt ASICBoost (edit: I changed this part after some feedback from Adam Back). Bits 16 to 23 are no longer usable for BIP9 signaling. The witness commitment becomes required as per Gregory Maxwell’s proposal.


First, this brings ASICBoost out into the open. Covert ASICBoost becomes much more costly and overt ASICBoost is now encouraged.

Second, we can make this change relatively quickly. Most of the Segwit testing stays valid and this change can be deployed relatively quickly.

(Edit: I’ve changed this proposal per feedback from Adam Back)