Achtergrond

Onder de motorkap van bitcoin en de blockchain

Bitcoin zal de euro niet meteen vervangen, maar de blockchain kan de economie van morgen ook op andere manieren aandrijven. We ontleden de briljante technologie achter de ketting.

Waarom zou je in godsnaam met bitcoin betalen? Is het zelfs een goed idee om de digitale munt aan te schaffen? En wat is dat nu precies, een digitale virtuele munt? We ontleden bitcoin en andere cryptocurrency maar focussen ons ook op de achterliggende technologie. De blockchain zelf heeft immers veel meer toepassingen dan een virtuele munt alleen. We spreiden onze analyse van de blockchain en bitcoin over vier artikelen. In dit eerste hoofdstuk onderzoeken we de blockchaintechnologie.


Bitcoin en de blockchain zijn een digitale munt en een digitaal transactieboek. De digitale munt is uitgevonden door één of meerdere programmeurs. De werkelijke identiteit van de geestelijke vader van de bitcoin is tot vandaag niet met zekerheid gekend. De man, vrouw of groep, die schuil gaat achter de naam Satoshi Nakamoto, introduceerde bitcoin aan het internet in de herfst van 2008 en maakte de technologie er achter gratis en voor iedereen beschikbaar in 2009. Bitcoin is een volledig digitale munt, die dus alleen op computers bestaat en waarvan niets analoog wordt bijgehouden.

Peer-to-peer

De munt werkt, in tegenstelling tot klassiek geld, met een peer-to-peer-systeem. Dat kan je perfect vergelijken met de manier waarop bijvoorbeeld torrents werken. Om een bestand zonder torrents beschikbaar te zetten voor een download, moet je het uploaden naar een server. Wie het wil downloaden, kan daar dan via de server aan. Bij torrents wordt die server er van tussen gehaald, en download je een bestand rechtstreeks van de partijen die het beschikbaar hebben.

Bitcoin is een ingenieus systeem waarbij twee onbekenden die elkaar niet vertrouwen toch op een vertrouwelijke manier transacties kunnen uitvoeren.

Bitcoin maakt gebruik van datzelfde principe: actoren in een transactie praten rechtstreeks met elkaar, zonder middenman. Dat staat in schril contrast met de manier waarop we met klassiek geld omgaan. Schijf je geld over naar een vriend, dan gaat dat via één of twee banken. Dat is omslachtig maar ook nodig: de bank biedt het nodige vertrouwen dat afwezig is wanneer twee onbekende actoren met elkaar handel drijven. Zonder de bank als tussenpersoon moet je uitgaan van de eerlijkheid van je handelspartner.

Wiskundige problemen

Bitcoin is een ingenieus systeem waarbij twee onbekenden die elkaar niet vertrouwen toch op een vertrouwelijke manier transacties kunnen uitvoeren. De zo belangrijke vertrouwensfactor zit niet bij een derde, maar in de werking van de zogenaamde blockchain. Het hele systeem is gebaseerd op wiskundige encryptie. Vandaar de naam: cryptocurrency.

De blockchain is de fundering van het bitcoin-betaalsysteem. “Er zijn twee soorten wiskundige problemen”, vertelt professor doctor in de toegepaste wiskunde Wim Vanroose. “Voor sommige problemen kan je aan de hand van de nodige gegevens een oplossing vinden.” Vanroose denkt dan aan onder andere de klassieke vraagstukken uit je schoolopleiding, waarbij je kan uitrekenen wanneer een trein die aan een bepaalde snelheid in Brussel vertrekt een andere trein die vanuit Amsterdam komt en aan een lagere snelheid rijdt zal tegenkomen. Dergelijke problemen kan je uitschrijven in wiskundige vergelijkingen die je via allerhande systemen kan oplossen.

Hash als fundering

“Andere vraagstukken zijn niet zomaar oplosbaar”, aldus Vanroose. “Een hashfunctie is bijvoorbeeld erg eenvoudig om te maken, maar het is heel moeilijk om omgekeerd te werk te gaan en uit te dokteren welke gegevens een gekende hash-functie als resultaat geven. Hoe de hash precies berekend wordt, laten we voor dit dossier in het midden. Het belangrijkste is dat data  door een berekening van een algoritme omgezet wordt naar een hash, maar dat het extreem moeilijk is om die hash opnieuw om te zetten naar de data. De hash zelf is een sequentie van hexadecimalen. De resulterende sequentie van cijfers en letters is in principe uniek voor de data die als bron diende. 

Trouwregister

Omdat één set gegevens resulteert in één hash, en je niet zomaar omgekeerd te werk kan gaan, is het systeem een ideale fraudebestrijder. Vanroose legt het principe van de blockchain uit aan de hand van een digitaal trouwregister. In de plaats van door de gemeentelijke administratie bewaard te worden, gaan trouwcertificaten in dit voorbeeld een blockchain in.

De blockchain is een digitale versie van een grootboek, waaraan dankzij slimme wiskunde niet geprutst kan worden.

Als Dries met Nina trouwt wordt het document met de details van de heuglijke gebeurtenis, de datum en alle andere relevante info door een algoritme omgezet in een hash (een 256 bit-string van hexadecimale tekens). Die hash wordt vervolgens publiek bewaard en geldt als startpunt voor onze trouwregisterblockchain. Een week later is het opnieuw feest: Jens en Karen stappen in het huwelijksbootje. Opnieuw berekent het systeem een hash, maar deze keer niet enkel van het trouwcertificaat. Het algoritme berekent de nieuwe hash met de hulp van het nieuwe certificaat én de vorige hash. Als een week later ook Cédric en Dorien trouwen, wordt de nieuwe hash opnieuw berekend met de hulp van hun certificaat en de vorige hash. Het resultaat is een ketting van hashfuncties waarbij nieuwe informatie telkens gecombineerd wordt met de laatst berekende hash.

Fraudebestendig

Dat maakt fraude onmogelijk. Wanneer één van de gegevens in de blockchain wordt aangepast, valt de hele ketting uit elkaar. De blockchain maakt het mogelijk om rechtsgeldige certificaten op te stellen zonder dat daar een ingewikkelde procedure of een notaris bij komt kijken. Een versleten papiertje met de juiste info op volstaat. Je kan aan de hand van de blockchain immers te allen tijde nagaan of de info op het papier wel klopt. Wil iemand de datum op het certificaat van Jens en Karen aanpassen, dan resulteert dat in een hash die niet gelijk is aan de originele en valt de ketting uit elkaar. De blockchain is dus een mechanisme waarmee informatie, in dit geval certificaten, gecontroleerd kan worden op authenticiteit.

Transactielogboek

Bitcoin gebruikt exact hetzelfde principe, alleen gaat het hier niet om trouwfeesten maar om geldtransacties. In het geval van de bitcoinblockchain worden geldtransacties gegroepeerd in een blok. Dat blok wordt, net als in bovenstaand voorbeeld, aan de ketting toegevoegd door een hash te nemen van de nieuwe informatie gecombineerd met de laatste hash uit de ketting. Zodra de transacties aan de ketting geklikt zijn, kan niemand ontkennen dat ze hebben plaatsgevonden. Als Dries Cédric enkele bitcoins betaalt in ruil voor een een papieren kopie van zijn favoriete TechPulse-artikels, hoeft hij Cédric niet te vertrouwen. Wanneer die later ontkent dat hij het geld goed heeft ontvangen, kan Dries aan de hand van de blockchain ontegensprekelijk bewijzen dat hij wel degelijk recht heeft op zijn TechPulse-boek. Iedereen die interesse heeft, kan vervolgens een kopietje van de blockchain bijhouden. Beslist één eigenaar om toch wat te prutsen aan zijn ketting, dan komt die niet meer overeen met wat de meerderheid op z’n computer heeft, en valt hij door de mand.

Proof of work

De blockchain verklaart hoe bitcoin als munt kan werken zonder de centrale administratie, maar is niet gelijk aan de munt zelf. De ketting is niets meer dan een controlemechanisme, al zijn bitcoins zelf er nauw mee verbonden. Bitcoins zijn virtuele munten waarvan het bestaan en de verdeling wordt bijgehouden in het digitale transactielogboek dat de blockchain is. Nieuwe munten ontstaan door de ketting te onderhouden. Dat wil concreet zeggen dat je bitcoins kan verdienen door het aan elkaar naaien van nieuwe blokken in de bitcoinblockchain, gecombineerd met het afleveren van een ‘proof of work’. De proof of work is de oplossing van een ingewikkeld mathematisch vraagstuk dat veel tijd in beslag neemt om uit te rekenen, maar waarvan de echtheid van het eindresultaat bliksemsnel door iedereen gecontroleerd kan worden. De aandachtige lezer raadt het al: er zijn opnieuw hashfuncties mee gemoeid.

Er is geen manier om vooraf te voorspellen wie eerst de proof of work zal afleveren.

De miners

Blokken worden aan de blockchain genaaid door de miners. Om een blok met nieuwe transacties aan de blockchain te naaien, heeft een miner die proof of work nodig. De proof of work is concreet een set gegevens die als resultaat een hash heeft die lager is dan een vooraf afgesproken maximum. Een hash is immers een erg groot hexadecimaal getal, en kan dus hoger of lager zijn dan een vooraf afgesproken getal. Denk concreet aan een hash die begint met een heleboel nullen vooraan (zoals 0000000000000756af69e2ffbdb930261873cd71).

Giswerk

Meerdere computers zijn tegelijk bezig om een nieuw blok aan de blockchain te naaien. Terwijl moeten ze zoeken naar een hashfunctie die aan de vereisten voldoet. Zoals gezegd is er geen formule om omgekeerd te werk te gaan, en de originele data terug uit een hash te distilleren. De miner moet dus met trial en error werken. Hij probeert combinaties van gegevens en hoopt een hash te bekomen die aan de vereisten voldoet. Gemiddeld heeft er iedere tien minuten wel één miner prijs. Wie als eerste de loterij wint, mag het nieuwste blok aan de ketting naaien. Er is geen manier om vooraf te voorspellen wie eerst de proof of work zal afleveren. Dat belet malafide individuen om moedwillig eigen blokken achteraan de ketting te naaien.

Loterij

De miner die de loterij wint, heeft daar heel wat computerkracht ingestoken. Om zijn werk te belonen, krijgt hij bitcoins van het systeem. Zo komen er op een gecontroleerde, maar ook willekeurige manier nieuwe munten in omloop. Hoe krachtiger de computer waarover een miner beschikt, hoe meer hashes hij kan berekenen en hoe groter de kans dat hij op een proof of work stuit die de rest van het bitcoinnetwerk zal aanvaarden. Er bestaat dus een financiële motivatie om steeds krachtigere systemen in te zetten om steeds sneller blokken te naaien, en steeds meer bitcoins te verdienen. Het bitcoinsysteem zelf is uitgerust met een correctiemechanisme dat wildgroei aan extra computerkracht moet inperken. Iedere twee weken kijkt het systeem naar de gemiddelde tijd die het gekost heeft om de proof of work van een blok te berekenen. Wijkt die te veel af van de vooropgestelde tien minuten, dan sleutelt het systeem automatisch aan de target. Door de maximumwaarde waaronder de proof of work moet zitten op te krikken, wordt de kans groter dat een miner geluk heeft en gaat het toevoegen van blokken sneller, door de maximumwaarde omlaag te halen zijn er minder hashes die tellen als proof of work, is de kans kleiner, en duurt het dus langer om de blockhain uit te breiden.

Allesomvattend systeem

De blockchain zelf houdt samengevat bitcointransacties bij in versleutelde blokken. Die blokken worden door een gelukkige miner na gemiddeld tien minuten toegevoegd aan de ketting. Wie als eerste een proof of work aflevert, mag het blok toevoegen en krijgt in ruil een financiële compensatie. Zo komt er nieuw geld in omloop, dat weer van handen kan wisselen. Die transactie moet opnieuw aan de ketting worden toegevoegd, en zo blijft het systeem op een veilige manier draaien.

 

Gerelateerde artikelen

Volg ons

69% korting + 3 maanden gratis

69% korting + 3 maanden gratis

Bezoek NordVPN

Business