226 / 691XNONCE

Extranonce

Zusätzliche veränderliche Daten für das Mining

Extranonce erweitert den Suchraum durch Änderungen an Coinbase und deren Bindung im Header. Es ist kein weiteres eigenständiges Header-Feld, und der Pool erlaubt nicht jedem Miner, alle Bytes frei zu ändern.

Extranonce sind veränderliche Daten, die üblicherweise in den Eingang der Coinbase-Transaktion eingefügt werden. Eine Änderung liefert neue Daten für Merkle-Root und Header-Hashing, ohne das 32-Bit-Nonce-Feld des Headers zu vergrößern.

Das Nonce-Feld hat 32 Bits und bietet bei sonst gleichem Header 2^32 Werte. Extranonce erweitert dieses Feld nicht. Es verändert andere Daten, damit Miner einen weiteren Header erstellen und erneut Nonce-Werte ausprobieren können. [Bitcoin Developer Guide — Mining and nonce space]

Eine Änderung der Coinbase-Extranonce verändert Serialisierung und TXID; der entsprechende Merkle-Baum-Zweig und die Merkle-Root im Header werden neu berechnet. Andere Transaktionen müssen nicht verändert werden. Die alte Merkle-Root darf nicht einfach ohne Neuberechnung bleiben. [Bitcoin Developer Guide — Mining and nonce space]

Zwei völlig freie Bytes erlauben 2^16 Varianten. Mit einer 32-Bit-Nonce und sonst festen Daten ergibt das im Modell 2^48 Eingabekombinationen. Das ist ein Raum verschiedener Versuche, keine Anzahl gefundener Blöcke und keine Erfolgsgarantie nach vollständiger Suche. [Bitcoin Developer Guide — Mining and nonce space]

BIP 34 verlangt die korrekt kodierte Blockhöhe am Anfang des Coinbase-scriptSig. Die Grenze von 100 Bytes gilt für das gesamte Coinbase-scriptSig, nicht nur Extranonce. Der freie Bereich darf weder die Höhe überschreiben noch das Transaktionsformat verletzen. [BIP 34 — Height in coinbase] [Bitcoin Developer Reference — Coinbase input]

Stratum V2 teilt die Extended Extranonce in festes Upstream-Präfix, lokal reservierten Teil und Downstream-Bereich. Das vermeidet unnötig überlappende Suche. Ein zugewiesenes extranonce_prefix ist nicht automatisch ein Bereich, den der End-Miner frei ändern darf. [Stratum V2 — Extended extranonce and jobs]

Für SubmitSharesExtended wird Coinbase aus coinbase_tx_prefix, extranonce_prefix, extranonce und coinbase_tx_suffix in dieser Reihenfolge zusammengesetzt. Eingereichte Extranonce-Bytes müssen die vereinbarte Länge haben. Dieselbe Zahl mit weniger Bytes muss nicht dieselbe Transaktion ergeben. [Stratum V2 — Extended extranonce and jobs]

Ein Standard Job in Stratum V2 verwendet eine feste Merkle-Root; nur erlaubte Teile von version, nonce und nTime ändern sich. Das Standardgerät reicht daher selbst keine Extranonce wie ein Extended-Kanal ein. Ein übergeordneter Knoten kann Coinbase beim Erstellen eines neuen Auftrags ändern. [Stratum V2 — Extended extranonce and jobs]

SetExtranoncePrefix in Stratum V2 gilt für Aufträge, die nach der Nachricht auf diesem Kanal gesendet werden. Ein Ergebnis muss mit der richtigen job_id und dem zugewiesenen Raum verbunden bleiben. Das neueste Präfix ersetzt keine Aufzeichnung des Ursprungsauftrags eines älteren Ergebnisses. [Stratum V2 — Extended extranonce and jobs]

Für ein möglichst vollständiges Bild lies diesen Eintrag zusammen mit Nonce, Merkle-Baum, Mining Share, Block Template. Auf diesen Eintrag verweisen außerdem Block Template, getblocktemplate.

DOC · 001Bitcoin Developer Guide — Mining and nonce spaceDokumentationDOC · 002Stratum V2 — Extended extranonce and jobsSpezifikationDOC · 003BIP 34 — Height in coinbaseSpezifikationDOC · 004Bitcoin Developer Reference — Coinbase inputDokumentation
Quellenbasiert · Keine Anlageberatung