Nonce
Een nonce – kort voor "number used once" – is een waarde die in gegevens wordt opgenomen zodat die gegevens kunnen worden gevarieerd of geordend, en in blockchains komt hij op twee afzonderlijke plekken voor die beginners vaak door elkaar halen. Bij proof-of-work-mining is de nonce een veld in de blokheader dat miners steeds opnieuw veranderen, waarbij ze het blok telkens opnieuw hashen, totdat de resulterende hash onder het moeilijkheidsdoel valt. De nonce zelf is betekenisloos; hij bestaat puur om miners iets te geven om te variëren. Een Bitcoin-miner kan bijvoorbeeld miljarden nonce-waarden per seconde doorlopen, en wanneer de andere velden van de blokheader zijn uitgeput, past hij ook een extra nonce in de coinbase-transactie aan om te blijven zoeken.
Het tweede gebruik is de account-nonce op blockchains zoals Ethereum: een teller die aan elk account is gekoppeld en bij elke verzonden transactie oploopt. Hij garandeert dat transacties in volgorde worden uitgevoerd en voorkomt replay-aanvallen – zonder hem zou een ondertekend bericht "betaal 1 ETH aan Alice" opnieuw kunnen worden uitgezonden en herhaaldelijk uitgevoerd. Als je een transactie met nonce 7 verstuurt met een lage fee en die blijft hangen, wachten transacties 8 en 9 erachter, en daarom laten wallets je een vastgelopen transactie "vervangen" door nonce 7 opnieuw te versturen met een hogere fee.
Een veelvoorkomende misvatting is dat deze twee nonces hetzelfde mechanisme zijn; ze delen alleen een naam – de ene is een zoekvariabele bij mining, de andere een anti-replay-volgnummer.