Hoe gebruiken miners de nonce?
Een miner bouwt een blockheader, zet de nonce op 0 en berekent de hash. Is de hash hoger dan de target, dan zet die de nonce op 1 en probeert het opnieuw, daarna met 2, enzovoort. De naam is een afkorting van ‘number used once’ (eenmalig gebruikt nummer).
De ene nonce is niet beter dan de andere. Je kunt de hash niet voorspellen, dus elke poging heeft evenveel kans om te winnen, al is die kans heel klein. Zo blijft mining eerlijk: meer pogingen per seconde betekent meer kans. Verder helpt niets.
Wat gebeurt er als de nonce op is?
Vier bytes kunnen maar 4.294.967.296 waarden bevatten. Een moderne machine probeert ze allemaal in ruim minder dan een duizendste seconde. Daarom veranderen miners iets anders in het blok en beginnen ze opnieuw met de nonce.
De loop van de miner
- 01
Probeer elke nonce
0, 1, 2 en zo door tot 4.294.967.295. Dat zijn alle waarden die 4 bytes kunnen bevatten.
- 02
Snel op, snel
Eén machine van 100 TH/s werkt ze allemaal af in ongeveer 43 miljoenste van een seconde.
- 03
Verander de extra nonce
De miner past een vrij veld aan in z’n eigen beloningstransactie (de coinbase).
- 04
Nieuwe merkle root
Die transactie is veranderd, dus de merkle root verandert en elke nonce levert weer nieuwe hashes op.
Meestal gebruiken miners de extra nonce, een extra veld in de coinbase-transactie. Als ze die veranderen, verandert ook de Merkle-root. Daardoor krijgen ze een hele nieuwe reeks headers om te proberen. Miners kunnen ook de tijdstempel aanpassen en op veel machines tegenwoordig een paar bits van het versienummer veranderen.
Bronnen
- Nonce · Bitcoin Wiki
- Hashalgoritme voor blokken · Bitcoin Wiki
- Naslag over de blockchain: headers, Merkle-bomen, doelwaarde · Bitcoin developer-documentatie
De live cijfers op deze pagina komen van de CloudMineCrypto API en openbare blockchaingegevens. Ze worden regelmatig bijgewerkt en waar nodig van een label voorzien. Alleen bedoeld ter informatie, geen financieel advies.