wiskundige puzzel blockchain

Wat houdt de 'wiskundige puzzel' van blockchain in?

Je hebt waarschijnlijk wel eens gehoord van de 'wiskundige puzzel' die miners moeten oplossen om een blok te kunnen valideren en toevoegen aan de blockchain. Echter wordt er eigenlijk nooit diep ingegaan op wat voor wiskundige puzzel dat nou is. En eigenlijk is het helemaal niet eens zo moeilijk om het te te begrijpen. Daarom gaan wij je hier uitleggen wat de wiskundige puzzel van blockchain is.

Wanneer je weet hoe de wiskundige puzzel werkt, ga je waarschijnlijk ook beter begrijpen waarom er mensen zijn die beweren dat er geen toekomst in Bitcoin zit, omdat het niet decentraal en schaalbaar genoeg zou zijn. Maar om dat te begrijpen, gaan we eerst kijken hoe zo'n blok er nu uit ziet wanneer miners deze gaan valideren.

Bekijk snel

Een blok vol transacties

In dit verhaal nemen we de Bitcoin blockchain als voorbeeld, om het simpel te houden. Het consensus algoritme van de Bitcoin blockchain is Proof of Work, en daarbij is de miner die de wiskundige puzzel als eerst oplost, de winnaar. De winnende miner krijgt dan Bitcoin als beloning.

Maar daarvoor moet de miner wel veel werk verrichten. Ongeveer iedere 10 minuten wordt er een nieuw blok aan het netwerk van Bitcoin toegevoegd, en hier zitten gemiddeld 2100 transacties in verwerkt. Het aantal transacties schommelt echter per blok, zoals je hieronder kunt zien.

Image
gemiddelde transacties per blok

Al deze transacties worden samengevoegd in één blok, en vervolgens wordt dit blok gehashed. De binaire vorm van de hash bestaat weer uit bits; dat zijn nullen en enen. 

De wiskundige puzzel oplossen

Elk blok is in feite een set van data die dus wordt gehashed. Maar in het geval van de Bitcoin blockchain, waar gebruik wordt gemaakt van Proof of Work, is de hash alleen niet genoeg. Een hash moet namelijk altijd starten met een bepaald aantal nullen of enen. In dit geval is het een 32-bits nummer. Meestal kijken we naar een hash als een hexadecimale tekenreeks, maar we kunnen er in dit geval beter naar kijken in de binaire vorm. Dat betekent dat het een lange reeks van enen en nullen is. Het zou er zo uit kunnen zien: 1 1 0 0 1 0 1 0 0 0 1 (maar dan nog veel langer).

Een goede hash zorgt ervoor dat, wat de data die wordt ingevoerd ook is, de uitkomst altijd in wezen willekeurig is. Natuurlijk zit er wel een bepaalde logica achter in de vorm van een algoritme, maar de uitkomst van een hash in binaire vorm komt heel erg in de buurt van totale willekeur. En dat is precies waar gebruik van wordt gemaakt in de moeilijke puzzel die miners moeten oplossen.

Op het moment dat miners de wiskundige Blockchain puzzel gaan oplossen, zullen ze heel snel willekeurige bits achter elkaar gaan zetten, totdat de combinatie van bits overeenkomt met de bits van het daadwerkelijke blok.

Stel nou dat de binaire hash van een blok er zo uit ziet:

0 0 1 0 1 1 0 1 0 1 1 0 1 1 0 1

Wanneer de hash die de miner heeft gemaakt al begint met een 1, heeft de miner pech. Zijn hash zal niet goedgekeurd worden door het netwerk. Hij zal dus opnieuw moeten beginnen, maar heeft in dat geval al vaak verloren omdat hij qua tijd een stuk achterloopt.

Mocht de hash van de miner beginnen met een 0, heeft hij geluk. Dan kan de miner door naar de volgende bit. Hier zal hij weer moeten gokken of de tweede bit een 0 of 1 is. Is het juist? Dan kan de miner door naar de volgende bit. Dit gaat maar door en door.

Bij de eerste poging zijn er dus twee kansen; het is een 1 of een 0. Om de tweede bit goed te hebben, zijn er al weer 4 kansen omdat de eerste poging ook wordt meegeteld. In totaal moet de hash van Bitcoin ongeveer 50 tot 60 enen en nullen vóór de daadwerkelijke hash hebben.

In feite is het dus een soort loterij. Er zit namelijk geen logica achter de keuze tussen een 0 of 1. Iedere miner moet gokken welke bit het is, en dat is dan in feite ook de daadwerkelijke puzzel waar mensen het altijd over hebben.

Het oplossen van de wiskundige Blockchain puzzel kost veel tijd

Eigenlijk is het niet per se moeilijk, maar het is moeilijk in de zin dat het erg lang duurt. Nu kun je jezelf afvragen waarom het zo lang moet duren, maar dat is zelfs expres zo gedaan.

Er zijn dus ontzettend veel pogingen nodig om erachter te komen wat de juiste hash is. Sterker nog, zelfs als de hele wereld aan het minen is, het nog steeds 10 minuten zou duren voordat de juiste hash is gevonden. Dat is namelijk ook precies waar het algoritme voor is gemaakt. De makers van de Bitcoin blockchain willen dat het gewoon ongeveer 10 minuten duurt voordat een blok gevalideerd wordt.

Ze willen namelijk niet dat wanneer je twee keer zoveel computers hebt, je een blok ook twee keer zo snel kunt valideren. Of als je tien computers hebt, een blok tien keer zo snel gevalideerd wordt.

Difficulty adjustment

Om ervoor te zorgen dat het altijd 10 minuten duurt voordat een blok gevalideerd wordt, is er de zogenaamde difficulty adjustment.

Een blok valideren kan misschien wel honderdduizenden pogingen kosten wanneer je het met één computer doet. Maar wanneer je het met twee computers doet, heb je nog maar de helft van de tijd nodig. Het gaat dan een stuk sneller. Maar na een tijdje zal het algoritme zichzelf gaan aanpassen aan de snelheid waarmee blokken gevalideerd worden. Dan duurt het dus met twee computers even lang als in het begin met één computer. Iemand die nog steeds van één computer gebruikt maakt, doet er dan zelfs 20 minuten over. En dat is veel te lang om nog mee te kunnen doen.

Dit leid er toe dat mensen zijn gaan samenwerken in zogenoemde mining pools. In een mining pool combineren miners hun computerkracht om zo mee te kunnen doen en niet onder te doen aan de snelheid waarop blokken gevalideerd moeten worden. Dat kost ontzettend veel energie. Er zijn namelijk tig, al dan wel niet honderden of duizenden computers nodig om een blok te kunnen valideren. Er ontstaan dan ook heuse mining farms. Dit zijn grote serverruimtes die alleen maar worden gebruikt om blokken te valideren. 

Een ander groot nadeel is dat dit fenomeen ervoor zorgt dat blockchain minder decentraal wordt. Blockchain is bedacht om als decentraal platform te dienen.

De centralisatie van Bitcoin

De difficulty adjustment van Bitcoin zorgt  ervoor dat deze blockchain helemaal niet meer zo decentraal is. En het is ook niet meer zo schaalbaar als het ooit was. Er zijn dan ook genoeg mensen die om die reden geen toekomst in Bitcoin zien. Eigenlijk is dat ook wel te begrijpen wanneer je weet waarom Bitcoin een stuk centraler wordt door de difficulty adjustment.

Door de difficulty adjustment ontstaan er dus grote mining pools. Deze mining pools zijn zó groot, dat het niet mogelijk is om hier als individu nog tussen te komen. Je zult jezelf moeten aansluiten bij een grote mining pool mocht je willen meedoen aan de Bitcoin blockchain. En dat terwijl blockchain er juist voor iedereen is. Het zou voor iedereen mogelijk moeten zijn om deel te nemen aan een blockchain netwerk. De schaalbaarheid valt dus helemaal weg door de techniek die door Bitcoin wordt gebruikt.

Daarbij krijgen de mining pools te veel macht. Er zijn maar een aantal mining pools die de blokken valideren. Voor de rest worden de blokken niet door anderen gevalideerd. Het is namelijk simpelweg onmogelijk voor anderen om nog blokken te kunnen valideren, omdat ze gewoon niet genoeg computerkracht hebben om dit te kunnen doen.

Uiteindelijk zorgt dit er voor dat er een stuk miner aparte partijen zijn die meedoen aan de blockchain. Hoe decentraal is Bitcoin nog als er maar 10 mining pools zijn die alle blokken valideren?

Conclusie

De wiskundige puzzel die miners moeten oplossen om een blok te valideren, is dus eigenlijk helemaal niet zo lastig te begrijpen. Het is ook niet lastig voor miners om de puzzel op te lossen. 

Om de wiskundige puzzel op te lossen moeten miners de juiste combinatie van nullen en enen vinden, die matched met de binaire hash van het nieuwe blok. Omdat miners in de afgelopen jaren steeds meer computerkracht gingen gebruiken om de juiste hash te vinden, konden ze dat steeds sneller gaan doen. Dat was ook precies de reden dat de makers van het Bitcoin netwerk difficulty adjustment hadden bedacht, waarmee ze er voor wilden zorgen dat het altijd gemiddeld 10 minuten zou duren voordat een blok toegevoegd kon worden aan de blockchain.

De moeilijkheid zit hem dan namelijk vooral in de tijd die nodig is om de puzzel op te lossen. Én in de computerkracht die hiervoor nodig is, wanneer het over de Bitcoin blockchain gaat. Dat is dan ook precies de reden dat veel mensen vinden dan Bitcoin niet schaalbaar en decentraal genoeg is om er een toekomst in te kunnen zien.

Veel andere blockchains besloten daarom om gebruik te maken van andere technieken om zo de schaalbaarheid en decentralisatie die mensen voor ogen hebben te kunnen bieden. Dit doen ze onder andere door een ander consensus algoritme te gebruiken. Denk bijvoorbeeld aan Proof of Stake, of Proof of Participation.

Bron grafiek: www.blockchain.com


Starten met crypto en geen idee waar je moet beginnen?

Kom dan naar onze gratis online crypto training!

Bekijk hier wat je gaat leren!

Image
Online Bitcoin Training van allesovercrypto