Wat is een nonce in crypto?

Wat is een nonce?
Een nonce in crypto is een afkorting van “number used once”, een getal dat binnen crypto maar één keer wordt gebruikt. Dit unieke cijfer zorgt ervoor dat de uitkomst van berekeningen of verificaties telkens opnieuw verandert. Nonces worden gebruikt als hulpmiddel binnen blockchains om fraude te voorkomen, transacties te beveiligen en consensus in een netwerk mogelijk te maken.
In de praktijk heeft een nonce binnen crypto twee hoofdrollen:
- Bij mining in Proof-of-Work-blockchains
- Bij transacties en beveiligingsmechanismen
Hoewel deze twee toepassingen veel op elkaar lijken, verschilt de rol van de nonce per context.
Korte samenvatting
- Een nonce is een uniek getal (“number used once”) dat wordt gebruikt om herhaling en manipulatie binnen blockchains te voorkomen.
- In Proof-of-Work-netwerken passen miners continu de nonce aan om een geldige hash te vinden.
- Bij Bitcoin is de nonce beperkt tot 32 bits, waardoor miners extra variatie gebruiken zoals een extra nonce en timestamps.
- De nonce draagt bij aan veiligheid doordat het aanpassen of vervalsen van blokken extreem kostbaar maakt.
- Bij Ethereum fungeert de nonce als transactievolgnummer per account en staat deze los van consensus.
Wat is de nonce bij Proof of Work (zoals Bitcoin)?
Bij Proof-of-Work (PoW)-blockchains moeten miners laten zien dat zij rekenwerk hebben verricht voordat ze een nieuw blok mogen toevoegen. Dit bewijs leveren zij door een geldige hash te vinden.
Een hash is de uitkomst van een cryptografische hashfunctie. Dit is een wiskundige functie die invoergegevens omzet in een vaste reeks tekens. Deze hashfunctie (vaak SHA-256) is eenzijdig. Dat wil zeggen dat je vanuit de hash niet kunt terugrekenen naar de oorspronkelijke invoer. Hierdoor is er maar één manier om een geldige hash te vinden: het uitvoeren van heel veel berekeningen.
De nonce is hierbij het variabele getal dat miners aanpassen om telkens een andere hash te genereren. Deze staat in de block header. Door de nonce te wijzigen kan een miner steeds een nieuwe hash proberen. Miners blijven de nonce aanpassen totdat zij een hash vinden die geldig is. Daarnaast moet de hash voldoen aan de moeilijkheidsregel van het netwerk, bijvoorbeeld dat de hash onder een bepaalde grens ligt.
Waarom blijven miners de nonce veranderen?
Het cryptonetwerk stelt de moeilijkheidsgraad zo in dat het gemiddeld een vaste block time kost om een nieuw blok te vinden (bijvoorbeeld ongeveer 10 minuten bij Bitcoin). Miners proberen daarom constant een andere hash te genereren door de nonce aan te passen. Dit proces kan miljoenen tot miljarden pogingen per seconde omvatten.
In de beginjaren van Bitcoin was dit relatief gezien veel eenvoudiger en hoefden miners veel minder pogingen te doen. Toen kon je zelfs nog Bitcoin minen op een laptop, terwijl dat tegenwoordig vrijwel onmogelijk is en er vooral gespecialiseerde ASIC-computers worden gebruikt.
Zodra een miner een hash vindt die aan de moeilijkheidsregel voldoet, wordt het blok gedeeld met het netwerk. Andere nodes controleren vervolgens of het blok geldig is en voegen het daarna toe aan de blockchain. Vervolgens begint hetzelfde proces opnieuw voor het volgende blok.
Wat is de limiet van de nonce en extra variatie bij Bitcoin?
Bij Bitcoin is de nonce beperkt tot 32 bits, wat neerkomt op iets meer dan 4 miljard mogelijke waarden. Moderne miners kunnen deze ruimte zeer snel doorlopen en gebruiken daarom extra manieren om de invoer te blijven veranderen. Zo voegen zij een extra nonce toe in de coinbase-transactie (een extra variabele binnen de beloning van de miner) en passen zij de timestamp aan, het tijdstip waarop het blok wordt vastgelegd. Het doel blijft hetzelfde: het genereren van nieuwe hash-uitkomsten.
Hoe draagt een nonce bij aan veiligheid?
De nonce maakt Proof-of-Work praktisch en veilig:
Het maakt het vervalsen van blokken extreem duur. Om een blok te vervalsen zou iemand opnieuw een geldige hash moeten vinden. Daarvoor is doorgaans minstens evenveel rekenkracht nodig als die van de rest van het netwerk samen (een zogenoemde 51%-aanval), waardoor fraude praktisch onhaalbaar wordt.
- Iedereen kan eenvoudig controleren of een blok geldig is. Andere nodes hoeven alleen te verifiëren of de hash van het blok aan de regels voldoet. Dit kost nauwelijks tijd of energie en is daardoor zeer efficiënt.
- Het zorgt voor eerlijke concurrentie tussen miners. Omdat alle miners dezelfde regels volgen en alleen kunnen winnen door daadwerkelijk rekenwerk te verrichten, ontstaat er een open en transparante competitie.
- Hoe groter de blockchain wordt, hoe moeilijker het wordt om oude blokken te manipuleren. Als iemand een oud blok zou willen aanpassen, moet hij dat blok én alle daaropvolgende blokken opnieuw minen, wat extreem veel tijd en energie zou kosten.
Hoe werkt een nonce bij Ethereum en andere altcoins?
Een nonce werkt anders bij Ethereum en andere altcoins dan bij Bitcoin-mining. Bij Ethereum, dat gebruikmaakt van Proof-of-Stake (PoS), fungeert een nonce als een oplopend volgnummer per account. Elke transactie krijgt een nonce, waardoor transacties altijd in de juiste volgorde worden verwerkt en dezelfde transactie niet opnieuw kan worden uitgevoerd. Bij Ethereum is de nonce een transactie-mechanisme en geen hulpmiddel dat wordt gebruikt om consensus te bereiken.
Wat zijn de nadelen van nonces?
Nonces zelf zijn geen nadeel, maar de manier waarop zij binnen Proof-of-Work-netwerken worden gebruikt brengt wel nadelen met zich mee:
- Het voortdurend aanpassen van de nonce om een geldige hash te vinden vereist intensief rekenwerk en zorgt voor een hoog energieverbruik.
- Naarmate het netwerk groeit en meer miners deelnemen, neemt de moeilijkheidsgraad toe en zijn steeds meer berekeningen nodig.
- De schaalvoordelen van gespecialiseerde hardware en goedkope energie kunnen een voordeel opleveren voor grote miningpools.
Deze nadelen spelen een belangrijke rol in de afweging tussen Proof of Work en Proof of Stake.
Conclusie
Een nonce is een essentieel technisch hulpmiddel binnen blockchaintechnologie dat zorgt voor uniciteit, veiligheid en betrouwbaarheid. In Proof-of-Work-netwerken vormt de nonce een cruciaal onderdeel van het miningproces en de beveiliging van de blockchain, terwijl hij bij blockchains zoals Ethereum vooral wordt gebruikt om transacties correct te ordenen en dubbele uitvoering te voorkomen. Hoewel nonces zelf geen nadelen hebben, leidt hun gebruik binnen Proof-of-Work tot hoge energiekosten en schaalvoordelen voor grote miners, wat een belangrijke reden is waarom steeds meer netwerken kiezen voor alternatieve consensusmechanismen zoals Proof of Stake.