mirror of
https://github.com/bitcoin/bips.git
synced 2026-05-18 16:59:30 +00:00
Add BIP323: 24 nVersion bits for general purpose use (#2116)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
Type: Specification
|
||||
Assigned: 2018-03-01
|
||||
License: BSD-3-Clause OR CC0-1.0
|
||||
Proposed-Replacement: 323
|
||||
</pre>
|
||||
|
||||
==Abstract==
|
||||
|
||||
61
bip-0323.mediawiki
Normal file
61
bip-0323.mediawiki
Normal file
@@ -0,0 +1,61 @@
|
||||
<pre>
|
||||
BIP: 323
|
||||
Title: 24 nVersion bits for general purpose use
|
||||
Authors: Matt Corallo <bips@bluematt.me>
|
||||
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
|
||||
</pre>
|
||||
|
||||
==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.
|
||||
Reference in New Issue
Block a user