Bei der Nonce im Blockheader handelt es sich um die öffentlichen uint32-Koordinaten des Suchraums, nicht um eine geheime oder kryptografische Signatur-Nonce. Es gibt nur 2^32 Werte für einen festen Header, sodass modernen ASICs dieser Platz sehr schnell ausgeht. Die Mining-Software ändert daher auch die Extranonce in der Coinbase-Transaktion, den Merkle Root, nTime und manchmal auch die erlaubten Versionsbits.
Der Bitcoin-Block-Header hat 80 Bytes: Version, Hash des vorherigen Blocks, Merkle-Root, Zeit, nBits und eine Vier-Byte-Nonce. Eine Nonce ist eine vorzeichenlose 32-Bit-Ganzzahl. Durch die Änderung wird der serialisierte Header und damit das Double-SHA-256 geändert, ohne die Transaktionsliste selbst zu ändern.
SHA-256 gibt keine sinnvolle Richtung für eine kleine Änderung der Eingabe vor. Eine um eins erhöhte Nonce erzeugt einen praktisch unabhängigen 256-Bit-Hash, sodass jeder Versuch ein weiterer probabilistischer Versuch ist. Der Gewinnwert kann nicht durch einen Gradienten erhöht werden.
Eine Vier-Byte-Nonce bietet genau 4.294.967.296 Möglichkeiten für einen einzelnen festen Header. Aktuelle ASICs durchlaufen diesen Bereich viele Male pro Sekunde, sodass die Header-Nonce allein für modernes Mining nicht ausreicht.
Pools und Mining-Software nutzen Extranonce innerhalb einer Coinbase-Transaktion. Trotz des Namens handelt es sich nicht um ein weiteres Block-Header-Feld. Durch Ändern der Extranonce wird die Coinbase-TXID und dann die Merkle-Wurzel geändert. Dadurch wird ein völlig neuer Header mit einem neuen Bereich von 2^32 Nonce-Werten erstellt.
Eine Coinbase-Transaktion ist ein Merkle-Baumblatt. Sobald seine txid geändert wird, wird die Änderung durch den Baum an die Merkle-Wurzel im Header weitergegeben. Der Miner erhält somit einen neuen Header mit demselben Hash des vorherigen Blocks und nahezu demselben Blockinhalt.
Zusätzlicher Speicherplatz kann durch Ändern von nTime innerhalb der zulässigen Grenzen und Rollieren der zulässigen Versionsbits erhalten werden. BIP320 beschreibt die allgemeine Verwendung ausgewählter nVersion-Bits. Nichts davon ändert den Konsens: Der resultierende Header-Hash muss immer noch das Ziel erreichen.
Beim Pool-Mining weist der Pool- oder Jobverhandler den Mitarbeitern eine eindeutige Coinbase/Extranonce und andere Parameter zu, damit die Geräte nicht dasselbe hashen. BIP23 funktioniert auch mit Nonce-Bereichen; Stratum-Protokolle verteilen den Suchraum effizienter auf eine große Anzahl von ASICs.
Der numerische Wert der Nonce selbst ist weder gut noch schlecht. Der vollständige Knoten hasht den gesamten spezifischen Header und vergleicht das Ergebnis mit dem von nBits abgeleiteten Ziel. Eine niedrige Nonce beweist nichts; Der Arbeitsnachweis ist lediglich ein ausreichend niedriger Hash des gesamten Headers.
Das Wort Nonce wird auch in Signaturen verwendet, wo es ein geheimer einmaliger Skalar sein kann und seine Wiederholung den privaten Schlüssel gefährden kann. Mining-Nonce hingegen sind öffentliche Informationen im Blockheader und bedürfen keiner Geheimhaltung. Diese beiden Bedeutungen dürfen nicht verwechselt werden.
Bitcoin Core gibt über getblockheader unter anderem Nonce, Bits und Zeit für den Block zurück. Zur unabhängigen Überprüfung kann man den 80-Byte-Header präzise serialisieren, ein Double-SHA-256 durchführen und überprüfen, ob der resultierende numerische Wert dem Ziel entspricht.
Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit Block-Header, Mining, Proof of Work, Mining Target, Coinbase-Transaktion, Bitcoin. Auf diesen Eintrag verweisen außerdem Block-Header, Coinbase-Transaktion, Mining Target, Extranonce.