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
|
| Karl-Johan Alm
|
||||||
| Specification
|
| Specification
|
||||||
| Complete
|
| Complete
|
||||||
|
|-
|
||||||
|
| [[bip-0323.mediawiki|323]]
|
||||||
|
|
|
||||||
|
| 24 nVersion bits for general purpose use
|
||||||
|
| Matt Corallo
|
||||||
|
| Specification
|
||||||
|
| Draft
|
||||||
|- style="background-color: #cfffcf"
|
|- style="background-color: #cfffcf"
|
||||||
| [[bip-0324.mediawiki|324]]
|
| [[bip-0324.mediawiki|324]]
|
||||||
| Peer Services
|
| Peer Services
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
Type: Specification
|
Type: Specification
|
||||||
Assigned: 2018-03-01
|
Assigned: 2018-03-01
|
||||||
License: BSD-3-Clause OR CC0-1.0
|
License: BSD-3-Clause OR CC0-1.0
|
||||||
|
Proposed-Replacement: 323
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
==Abstract==
|
==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