Mining-proces

Een van de belangrijkste elementen binnen de Bitcoin-blockchain is de moeilijkheidsgraad, die een cruciale rol speelt bij de beveiliging van het netwerk. Bitcoins worden gegenereerd door een mining-proces (delven). Daarbij worden de transacties verwerkt in digitale ‘blokken’. De eerste transactie in een blok is een speciale transactie. Deze transactie genereert een nieuwe coin, die eigendom is van de miner die het blok heeft gecreëerd. Deze Bitcoin wordt aan de miner gegeven als beloning voor het oplossen van een cryptografische puzzel. Door het oplossen van de puzzel draagt de miner bij aan de beveiliging van het blockchainnetwerk. Het eerste blok binnen het Bitcoin-netwerk – het Genesis blok – werd op 3 januari 2009 gedolven door Satoshi Nakamoto, de altijd onbekend gebleven ontwikkelaar van de populaire cryptocurrency.

 

Gelimiteerde voorraad Bitcoins

Oneerlijke nodes

De langste keten regel

Proof of Work

Beloning

Vertragingstijd

Snellere mining-hardware

Verandering van de moeilijkheidsgraad

Waarom wijzigt de moeilijkheidsgraad?

Centralisatie

Grote mining pools

Bug in de Bitcoin-code

Bitcoin miner

 

Bitcoin heeft een gelimiteerde voorraad

Om de moeilijkheidsgraad te kunnen begrijpen, moeten we eerst kijken naar het probleem dat blockchaintechnologie probeert op te lossen. Bitcoin heeft een gelimiteerde en eindige voorraad van 21 miljoen crypto-coins. Om de inflatie van Bitcoin tegen te gaan, bedacht Nakamoto een regel. Na het minen van iedere 210.000 blokken – ongeveer elke 4 jaar – wordt de beloning voor de miners gehalveerd. Bij de allereerste transactie in 2009 was de blokbeloning voor miners 50 BTC. In 2012 werd de beloning gehalveerd naar 25 BTC. In 2016 werd de beloning 12,5 BTC en sinds 2020 is de beloning 6,25 BTC. De volgende halvering zal waarschijnlijk plaatsvinden in 2024. In totaal zijn er op dit moment (februari 2022) ongeveer 18.925.137 Bitcoins in omloop.

 

Oneerlijke nodes

Binnen de Bitcoin-blockchain bevinden zich talloze computers of nodes (knooppunten) op internet. Samen moeten deze nodes consensus bereiken over de transacties die binnen het netwerk plaatsvinden. In het geval van cryptocurrency betekent dat, dat deze computers met elkaar overeenstemming moeten bereiken, over hoe individuele gebruikers hun crypto-coins hebben uitgegeven. Echter zijn deze computers niet altijd allemaal even eerlijk. Ze kunnen binnen het netwerk verschijnen en verdwijnen, wanneer ze dat willen. Als iemand wil participeren in de Bitcoin-blockchain dan gaat zijn of haar computer op het internet, op zoek naar andere computers die deel uitmaken van het netwerk. Maar hoe weet een computer nu precies welke andere computers hij kan vertrouwen? Elk van deze computers kan immers malafide intenties hebben. Deze malafide computers proberen meestal om de regels van een bepaald systeem in hun voordeel te misbruiken of te manipuleren. Satoshi Nakamoto had een oplossing voor dit probleem.

 

Blockchain, Bitcoin, moeilijkheidsgraad

 

De langste keten regel

Binnen het Bitcoin-netwerk bestaat de zogenaamde ‘langste keten regel’. De langste keten is de reeks transactie-blokken die door de individuele nodes wordt geaccepteerd, als de ‘geldige’ versie van de blockchain. De langste blokketen heeft immers meer moeite en energie gekost om te bouwen, dan een keten met minder blokken erin. De regel dat nodes de langste blokketen aannemen, stelt iedere node binnen de Bitcoin-blockchain in staat, om het eens te worden over de staat van het netwerk en de transactiegeschiedenis. De individuele zelfstandig werkende nodes bereiken gezamenlijk ‘consensus’.

 

Proof of Work

Maar alleen het kiezen van de langste blokketen is niet genoeg, om de blockchain te beschermen tegen malafide computers. Een aanvaller kan namelijk een lange blokketen creëren met allemaal valse transacties en iedereen zal vervolgens denken dat het de geldige (valide) keten betreft. Om dit probleem om te lossen vertraagde Nakamoto het proces van blokcreatie. Daarvoor introduceerde hij het Proof of Work algoritme. (PoW). Proof of Work kun je beschouwen als een soort loterij, waarbij een computer een heleboel willekeurige berekeningen uitvoert, om een cryptografische puzzel (de zogenaamde hash) op te lossen. Ook de andere computers binnen het netwerk voeren deze berekeningen uit. Allemaal willen ze de loterij graag winnen en de eerste zijn die de puzzel oplost. De kans dat een computer de loterij wint – en dus de cryptografische puzzel oplost – is erg klein.

 

 

Beloning

De computers binnen de blockchain (de zogenaamde mining rigs) worden aangeduid als ‘miners’. Je zou de blockchain kunnen zien als een netwerk met daarin talloze ‘cijfersloten’ met allemaal unieke complexe cijfercombinaties. Alle miners op het netwerk proberen hetzelfde complexe slot te ontgrendelen. De miners proberen allerlei combinaties uit, maar uiteindelijk kan er maar één miner zijn, die het slot als eerste ontgrendelt. Deze miner heeft als het ware de loterij gewonnen. Een miner die de loterij gewonnen heeft krijgt een prijs. Deze prijs bestaat uit een beloning met Bitcoins. Na de ontgrendeling van het slot begint de hele loterij weer opnieuw, om het volgend slot te ontgrendelen. Gemiddeld genomen duurt het binnen het Bitcoin-netwerk ongeveer 10 minuten, voordat het een miner lukt om een slot te ontgrendelen. Met andere woorden: de cryptografische puzzel op te lossen.

 

Vertragingstijd

Deze ‘sloten’ zijn eigenlijk digitale transactie-blokken binnen een virtuele keten. En iedere keer wanneer er een slot wordt ontgrendeld, dan wordt dat desbetreffende blok aan de keten toegevoegd. Nadat het blok aan de keten is toegevoegd, duurt het ongeveer 10 minuten voordat het volgende blok aan de keten wordt gekoppeld. Deze vertragingstijd van 10 minuten tussen de transactie-blokken, voorkomt dat een aanvaller een ‘kunstmatige’ lange blokketen met valse transacties kan produceren. De kans dat een miner het slot kan ontgrendelen – dus de cryptografische puzzel kan oplossen binnen die 10 minuten – is zeer onwaarschijnlijk. Daarvoor zijn heel erg veel mensen nodig, die talloze willekeurige combinaties uitproberen. Maar daarmee is het probleem nog niet opgelost.

 

 

Snellere Mining-hardware

Ieder jaar worden onze computers sneller en sneller. Dat betekent dat nieuwe mining-hardware veel sneller kan rekenen en de cryptografische puzzels veel sneller kan oplossen. Met andere woorden: nieuw transactie-blokken zullen steeds vaker binnen die 10 minuten worden gecreëerd. Een aanvaller kan namelijk een heleboel supersnelle computers aanschaffen en daarmee de andere computers de loef afsteken. Maar gelukkig vond Satoshi Nakamoto ook een oplossing voor dit probleem: de moeilijkheidsgraad. De moeilijkheidsgraad is een maatstaf die bepaalt hoe moeilijk het is, om een slot binnen het blockchainnetwerk te ontgrendelen (oftewel hoe lastig het is om een blok te minen en aan te blokketen toe te voegen). Deze maatstaf geeft in feite aan hoe hard een computer moet ‘werken’, om een nieuw blok te genereren.

 

Verandering van de moeilijkheidsgraad

De moeilijkheidsgraad is geen vaststaand getal, maar wordt steeds zo gekozen dat er door de miners gemiddeld één blok per 10 minuten binnen het netwerk wordt gevonden. Deze 10 minuten worden aangeduid als de ‘bloktijd’. In de praktijk betekent dat, dat de moeilijkheidsgraad na iedere 2016 blokken automatisch verandert. Voor het bepalen van de moeilijkheidsgraad kijkt het blockchainnetwerk naar hoe snel deze blokken werden gecreëerd. Normaal gesproken zou dat onder de eerder genoemde condities 2 weken duren. Als er binnen die 2 weken echter méér dan 2016 blokken werden gecreëerd, dan neemt de moeilijkheidsgraad automatisch toe. Het kan ook voorkomen dat er in die 2 weken minder dan 2016 blokken werden gecreëerd. In dat geval wordt de moeilijkheidsgraad verlaagd.

 

Waarom wijzigt de moeilijkheidsgraad?

De wijziging van de moeilijkheidsgraad heeft te maken met het gegeven, dat het blockchainnetwerk het aantal actieve miners moet compenseren. Als er meer miners binnen de blockchain aan het delven zijn, dan is de kans groter dat iemand de cryptografische puzzel in minder dan 10 minuten oplost. Om het aantal gegenereerde blokken stabiel te houden, gaat de moeilijkheidsgraad automatisch omhoog. Vervolgens wordt het voor de voor miners weer lastiger om nieuwe blokken te vinden. Andersom geldt hetzelfde. Als een heleboel mensen tegelijkertijd stoppen met minen, dan zal het ook langer duren voordat er nieuwe blokken worden gegenereerd. Om dat te compenseren gaat de moeilijkheidsgraad omlaag. Door de automatische aanpassing van de moeilijkheidsgraad, blijft de gemiddelde tijd waarin een blok aan de keten wordt toegevoegd in principe altijd 10 minuten. Ongeacht de snelheid van computers en ongeacht hoeveel mensen er binnen de blockchain aan het minen zijn.

 

 

Centralisatie

Het proces waarbij de moeilijkheidsgraad automatisch wordt aangepast op de situatie binnen de blockchain, heeft ook een keerzijde. Het neigt namelijk naar ‘centralisatie’, van het gedistribueerde Bitcoin-netwerk. De voornaamste reden waarom mensen Bitcoins minen is vanwege de beloning die ze krijgen, na de validatie van een nieuw blok. Zolang de mining-apparatuur van de miners winstgevend is, dan zullen ze enthousiast doorgaan met delven. Wanneer de moeilijkheidsgraad wordt verhoogd, dan zullen de miners meer rekenwerk moeten verrichten. Daarvoor is meer computerkracht nodig en dat betekent dat het elektriciteitsverbruik omhoog gaat. Op een bepaald moment kunnen de kosten voor het energieverbruik, niet meer in evenwicht zijn met de blokbeloning. Met andere woorden: de beloning (momenteel 6,25 BTC) weegt dan niet meer op, tegen de kosten en de inspanningen van het minen.

 

Grote mining pools

Het logische gevolg is dat de minder vermogende miners – die niet kunnen beschikken over dure mining rigs – worden gedwongen om hun activiteiten staken. De grote mining pools met dure geavanceerde mining rigs kunnen op grote schaal opereren en krijgen dan het monopolie binnen de blockchain. Deze situatie zorgt ervoor dat een technologie – die in essentie werd ontwikkeld als een volledig gedecentraliseerd ecosyteem voor digitale transacties – wordt beheerst door een aantal grote groepen miners. Daarnaast wordt de blockchain kwetsbaarder voor aanvallen door ‘mining farms’. Dit zijn grote datacentra die ellenlange rijen met mining rigs hebben opgesteld, in enorme loodsen en fabriekshallen.

 

Bug in de Bitcoin-code

De aanpassing van de moeilijkheidsgraad houdt de Bitcoin-blockchain veilig en stabiel. Desondanks zit er een kleine bug in de Bitcoin-code. Zoals eerder gezegd wordt de moeilijkheidsgraad herberekend na 2016 blokken, maar de Bitcoin-code kijkt alleen naar de eerste 2015 blokken. Dus als het minen van alle blokken precies 10 minuten heeft geduurd en het laatste blok duurde 100 dagen om te worden gedolven, dan zou dat geen effect hebben op de moeilijkheidsgraad binnen de blockchain.

 

Terug naar boven ↑

 

Op de hoogte blijven van de ontwikkelingen op het gebied van blockchaintechnologie? Meld je dan nu aan voor de blogpost!

 

Meld je aan voor de blogpost!
Ik ga ermee akkoord dat mijn naam en e-mailadres worden gedeeld met Mailchimp.
Met de blogpost van Uitleg Blockchain blijf je automatisch op de hoogte van de nieuwste ontwikkelingen omtrent de blockchain technologie.
We hebben een hekel aan spam. Uw e-mailadres zal niet worden verkocht of gedeeld met anderen (afgezien van het marketing automation platform dat wij gebruiken voor onze e-maillijst).