Binnen de Bitcoin parlance kom je vaker wel eens de term Bitcoin difficulty adjument tegen. Het is een uiterst belangrijk concept om te begrijpen aangezien het een essentiële rol vervult binnen het Bitcoin netwerk. Het gaat om een algoritme die Bitcoin’s Proof of Work moeilijkheidsgraad bepaalt voor het vinden van een nieuwe transactieblok die de Bitcoin miners trachten te vinden en toe te voegen aan de blokketen. Satoshi Nakamoto geeft in zijn whitepaper een generieke beschrijving van dit algoritme:

To compensate for increasing hardware speed and varying interest in running nodes over time, the proof-of-work difficulty is determined by a moving average targeting an average number of blocks per hour. If they’re generated too fast, the difficulty increases.

Satoshi’s generieke beschrijving laat een aantal belangrijke technische zaken en details onbelicht die in de code zitten. Deze hier zullen uitwerken.

Bitcoin’s difficulty adjustment – uitgebreidere uitleg:

De moeilijkheidsgraad of -doelwit (difficulty) voor een miner bestaat uit een 256-bit getal die moet worden gevonden. Deze wordt na elke reeks van 2016 blokken automatisch aangepast. Dus, na ongeveer twee weken wordt de moeilijkheidsgraad aangepast op basis van de tijd het nam om de eerdere 2016 transactieblokken toe te voegen aan de blockchain. Door dit algoritme krijgt Bitcoin een vast en voorspelbaar ritme in de productie van nieuwe blokken. Elke 10 minuten moet er een nieuwe transactieblok worden toegevoegd. Gaat dit proces wat te snel, dan zal het de volgende keer moeilijker worden voor de miners om een nieuwe blok te vinden (the difficulty increases). Gaat dit proces wat te langzaam, dan zal de moeilijkheidsgraad automatisch naar beneden worden bijgesteld.

Alle blokken in de blokketen van Bitcoin verwijzen naar elkaar door steeds te verwijzen naar de hash van de voorafgaande blok. Deze wordt in de block header aangegeven in de transactieblok. De block header is gewoon de koptekst van de nieuwe transactieblok met informatie van de geldige hash (PoW) van de vorige blok. De Bitcoin Miners deelnemen in een loterij voor het kunnen toevoegen van een nieuwe blok door het oplossen van een rekenpuzzel waarbij ze als een bewijs van arbeid (PoW) de correcte SHA-256 hash, in de vorm van een 256-bit getal, moeten vinden die wordt toegevoegd aan de nieuwe koptekst van de nieuwe transactieblok. Deze hashwaarde moet lager of gelijk zijn aan de moeilijkheidsgraad. Deze hashwaarde zelf wordt de ‘nonce’ genoemd. De hashwaarde wordt door concurrerende miners steeds groter totdat de nieuwe koptekst met de corresponderende hashwaarde en de geldige nonce wordt gevonden. Deze is gelijk aan of lager dan het doelwit en is het bewijs van geleverde arbeid in de vorm van rekenkracht. De geldige blok wordt via een loting toegekend aan die miner die de puzzel had opgelost door het leveren van de geldige hashwaarde (nonce) die verder weer wordt gebruikt als referentie in koptekst van de volgende blok.

Bitcoin’s difficulty adjustment is verder gecorreleerd aan de hashing power van het netwerk. Zolang deze hashrate toeneemt, doordat steeds meer nieuwe miners actief worden, hoe meer de moeilijkheidsgraad toeneemt. Op deze manier worden nieuwe transactieblokken op een voorspelbaar ritme toegevoegd en is de productie en distributie van nieuwe bitcoins constant. Hieronder in de grafiek kun je zien hoe exponentieel de moeilijkheidsgraad is vergroot doordat steeds meer miners zijn toegevoegd aan het netwerk.

Bitcoin's Difficulty adjustment

De toegenomen hashrate die verzamelde Bitcoin mining industrie nu inzet om bitcoins te delven verklaard nu deze zeer hoge moeilijkheidsgraad om mee te kunnen doen aan de loterij voor het toegekend kunnen krijgen van een nieuwe blok bij het vinden van de geldige nonce (hashwaarde):

Wat is het belang van Bitcoin’s mining moeilijkheidsgraad?

De moeilijkheidsgraad aanpassing zorgt ervoor dat Bicoin miners steeds meer investeren in betere hardware en het vinden van goedkope elektriciteitsbronnen om proberen meer bitcoins te kunnen delven ten opzichte van de concurrentie. Hiermee maken ze het netwerk van Bitcoin extreem veilig en krijgen ze hiervoor bitcoins als beloning terug.

Deze bitcoins komen door dit algoritme op een voorspelbare manier in omloop. Wanneer de Bitcoin koers stijgt zal dit meer investeringen uitlokken van bestaande en nieuwe Bitcoin mining bedrijven en nieuwe mining nodes. Het netwerk wordt telkens robuuster met een steeds grotere hashing power.

Stel je voor dat er geen Bitcoin difficulty adjustment mechanisme was geïmplementeerd. In dat geval zouden de blokken steeds sneller worden aangemaakt en de bitcoins op een steeds sneller in omloop worden gebracht. Het maakt Bitcoin onvoorspelbaar. Ongeacht het aantal miners die actief zijn of er uit stappen, zorgt dit algoritme ervoor dat er altijd om de 10 minuten een nieuwe blok wordt gevonden en nieuwe bitcoins in omloop worden gebracht. Het zorgt ervoor dat Bitcoin een betrouwbare meeteenheid is van waarde en tijd waar iedereen binnen het netwerk vanuit kan gaan.

De Bitcoin monetaire politiek is hierdoor ook voorspelbaar en inzichtelijk met als gevolg dat de stock-to-flow ratio van Bitcoin stabiel is. Bitcoins kunnen bijvoorbeeld niet tijdelijk versneld in omloop worden gebracht doordat bij een snel stijgende koers, veel meer miners zich aansluiten aan het netwerk om met de beste nieuwe hardware zoveel mogelijk bitcoins te delven. Bitcoin difficulty adjustment algoritme maakt dit onmogelijk en zorgt ervoor dat ongeveer na elke 10 minuten een nieuwe blok wordt aangemaakt en een x aantal bitcoins in omloop worden gebracht.

Deze voorspelbaarheid is ook belangrijk voor de miners aangezien deze zich kunnen voorbereiden op zowel goede en slechte tijden. Voor slechte tijden wanneer de Bitcoin koers in een beren markt terechtkomt kan een aparte Bitcoin mining strategie worden opgesteld om de concurrentie te slim af te zijn en daardoor meer bitcoins te kunnen delven.

Conclusie over Bitcoin difficulty adjustment algo:

Het is een geniale greep geweest van Satoshi Nakamoto om de moeilijkheidsgraad van het Proof-of-Work algoritme automatisch te laten aanpassen aan het aantal Bitcoin miners die actief zijn en de algehele hashing power van het Bitcoin netwerk. Op deze manier krijgt in feite Bitcoin een betrouwbare hartslag op basis waarvan een betrouwbare Bitcoin economie mogelijk is en er in feite op Bitcoin gebouwd kan worden. Verder kan Bitcoin als een rekeneenheid fungeren voor het meten en verplaatsen van waarde binnen een objectieve Bitcoin standaard. Het is zeer waarschijnlijk dat Bitcoin als project volledig zou zijn mislukt als Satoshi vergeten zou zijn om de difficulty adjustment algo te implementeren in Bitcoin’s protocol.

Voor meer informatie met meer details:

Leer alles over Bitcoin!

Koop Bitcoin bij Bitvavo in Amsterdam!