Wie verwenden Miner die Nonce?
Ein Miner erstellt einen Block-Header, setzt die Nonce auf 0 und berechnet den Hash. Liegt der Hash über dem Zielwert, setzt er die Nonce auf 1 und versucht es erneut, dann mit 2 und so weiter. Der Name steht kurz für „einmal verwendete Zahl“.
Keine Nonce ist besser als eine andere. Der Hash lässt sich nicht vorhersagen, daher hat jeder Versuch dieselbe winzige Gewinnchance. Das macht Mining fair: Mehr Versuche pro Sekunde bedeuten mehr Chancen, und nichts anderes hilft.
Was passiert, wenn die Nonce ausgeschöpft ist?
Vier Bytes können nur 4.294.967.296 Werte darstellen. Ein modernes Gerät durchläuft sie alle in deutlich weniger als einer Tausendstelsekunde. Deshalb ändern Miner etwas anderes im Block und setzen die Nonce zurück.
Die Schleife des Miners
- 01
Probiere jede Nonce
0, 1, 2 und weiter bis 4.294.967.295. Das sind alle Werte, die 4 Bytes fassen können.
- 02
Schnell aufgebraucht
Eine einzelne 100-TH/s-Maschine schafft sie alle in etwa 43 Millionstelsekunden.
- 03
Ändere die zusätzliche Nonce
Der Miner bearbeitet ein freies Feld in seiner eigenen Belohnungstransaktion (der Coinbase).
- 04
Neuer Merkle-Root
Diese Transaktion hat sich geändert, daher ändert sich der Merkle-Root, und jede Nonce liefert wieder frische Hashes.
Üblicherweise verwenden Miner die Extra-Nonce, ein zusätzliches Feld in der Coinbase-Transaktion. Wenn sie dieses Feld ändern, ändert sich die Merkle-Root. Dadurch entsteht eine ganz neue Reihe von Block-Headern, die sie ausprobieren können. Miner können auch den Zeitstempel leicht anpassen und bei vielen heutigen Geräten ein paar Bits des Versionsfelds verändern.
Quellen
- Nonce · Bitcoin-Wiki
- Block-Hashing-Algorithmus · Bitcoin-Wiki
- Referenz zur Blockchain: Header, Merkle-Bäume, Zielwert · Bitcoin-Entwicklerdokumentation
Die Live-Daten auf dieser Seite stammen von der CloudMineCrypto-API und aus öffentlichen Blockchain-Daten. Sie werden regelmäßig aktualisiert und sind an den jeweiligen Stellen gekennzeichnet. Nur zu Bildungszwecken, keine Finanzberatung.