From 622e47722cd35514e96da37ae89f868e18d581e4 Mon Sep 17 00:00:00 2001 From: Matt Corallo <649246+TheBlueMatt@users.noreply.github.com> Date: Tue, 12 May 2026 23:06:55 +0000 Subject: [PATCH] Add BIP323: 24 nVersion bits for general purpose use (#2116) --- README.mediawiki | 7 ++++++ bip-0320.mediawiki | 1 + bip-0323.mediawiki | 61 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+) create mode 100644 bip-0323.mediawiki diff --git a/README.mediawiki b/README.mediawiki index cb043f2a..9806986f 100644 --- a/README.mediawiki +++ b/README.mediawiki @@ -1079,6 +1079,13 @@ users (see also: [https://en.bitcoin.it/wiki/Economic_majority economic majority | Karl-Johan Alm | Specification | Complete +|- +| [[bip-0323.mediawiki|323]] +| +| 24 nVersion bits for general purpose use +| Matt Corallo +| Specification +| Draft |- style="background-color: #cfffcf" | [[bip-0324.mediawiki|324]] | Peer Services diff --git a/bip-0320.mediawiki b/bip-0320.mediawiki index 49d592ad..120822f5 100644 --- a/bip-0320.mediawiki +++ b/bip-0320.mediawiki @@ -6,6 +6,7 @@ Type: Specification Assigned: 2018-03-01 License: BSD-3-Clause OR CC0-1.0 + Proposed-Replacement: 323 ==Abstract== diff --git a/bip-0323.mediawiki b/bip-0323.mediawiki new file mode 100644 index 00000000..7cbba721 --- /dev/null +++ b/bip-0323.mediawiki @@ -0,0 +1,61 @@ +
+  BIP: 323
+  Title: 24 nVersion bits for general purpose use
+  Authors: Matt Corallo 
+  Status: Draft
+  Type: Specification
+  Assigned: 2026-04-22
+  License: BSD-3-Clause OR CC0-1.0
+  Discussion: 2026-02-26: https://groups.google.com/g/bitcoindev/c/fCfbi8hy-AE/m/g85UXI4qAAAJ
+  Replaces: 320
+
+ +==Abstract== + +24 bits are reserved in the nVersion field as extra nonce space for miners, providing for additional +hashrate with header-only mining without relying on rolling nTime more often than once per second. + +==Motivation== + +BIP 320 defined 16 bits of nVersion as nonce space for additional nonce space. It turns out that +this isn't enough, as some devices have started using 7 bits from nTime for extra nonce space (see +https://github.com/stratum-mining/sv2-spec/discussions/187). Given there's limited utility in 16 +bits of nVersion space for signaling, instead here we offer 24 bits of nVersion space as extra +nonce space. + +==Specification== + +24 bits from the block header nVersion field, starting from 5 and ending at 28 inclusive +(0x1fffffe0), are reserved for nonce use and removed from BIP8 and BIP9 specifications. A mask of +0xe000001f should be applied to nVersion bits so bits 5-28 inclusive will be ignored for soft-fork +signalling and unknown soft-fork warnings. + +==Rationale== + +Headers-only mining avoids mining devices (either ASICs or the firmware) from having to concern +themselves with the vast space of consensus logic (handling transactions, merkle trees, etc). It is +widely deployed in ASICs, but requires a substantial number of jobs fed across an entire device, +keeping the ASIC controller busy. Providing additional nonce space for the ASICs to roll without +needing fresh work from the controller may simplify ASIC design somewhat, and has been apparently +adopted in some miners by using extra space in nTime as extra nonce space[1]. Doing so in nVersion +instead is preferable to using nTime. + +[1] See, eg, https://github.com/bitcoin/bitcoin/pull/34779#issuecomment-4026385773 and +https://github.com/bitaxeorg/ESP-Miner/pull/1553#issuecomment-3936223444 + +==Backwards Compatibility== + +Non-upgraded nodes will interpret the reserved bits of this proposal as signals for soft forks, and +may additionally activate the warning system for unknown soft forks. + +At the time of writing no soft forks that are being actively signaled for are using any of the 24 +bits reserved in this BIP. Future soft forks SHOULD NOT utilize those bits for activation signaling. + +==Acknowledgements== + +Timo Hanke and Sergio Lerner for originally proposing 15-bit extra nNonce2. Btc Drak for writing BIP +320. + +==Copyright== + +This document is dual licensed as BSD 3-clause, and Creative Commons CC0 1.0 Universal.