Een nummer dat één keer gebruikt kan worden, ofwel ‘number once’ en bij proof-of-work-systemen belangrijk om de invoer van de cryptografische hash-functie te variëren.
De nonce is een belangrijk onderdeel bij het vinden van een specifieke waarde bij de uitvoer van een hashingalgoritme, bij bitcoin het sha256-algoritme. De gevraagde uitvoer wordt bij bitcoin bepaald door de moeilijkheidsgraad (zie ook: difficulty adjustment).
De nonce staat genoemd in de blockheader.
Bij proof-of-work-systemen wordt de moeilijkheid of difficulty steeds aangepast, zodat blokken gemiddeld eens in de zoveel tijd gevonden worden. Dit kan betekenen dat de moeilijkheid (tijdelijk) groter of kleiner wordt.
Dit nummer wordt gevonden door een combinatie van een input-string en een nonce te moeten vinden, in de regel een hash van een nummer. Stel de input-string is ‘ensie’ (zonder aanhalingstekens) en de output moet een nummer zijn dat begint met één ‘0’. Daar wordt een sha256-hashingalgoritme op losgelaten. Dus de input-string (ensie) + nonce (1, 2, 3, etc.) = ensie1, ensie2, tot het eerste getal gehast wordt met een ‘0’ als eerste cijfer. Dat is dus bij ‘ensie6’; de sha256-hash is dan:
0e8ecbc38ab9faa42b7e02e62b8c3b8171462521f866ddc6db47afb
19c5fbaee
Dit is vrij makkelijk. Hoe meer nullen aan het begin moeten staan, hoe moeilijker het wordt. Inmiddels moet het getal bij bitcoinmining met 19 nullen beginnen... (d.d. 20 oktober 2021), zoals blok 705854 laat zien:
0000000000000000000c8543cdcadba9023fl346034ballfl7 97297dlel75860
Heel simpel na te rekenen, maar extreem lastig om te raden.