Bitcoin en blockchaintechnologie uitgelegd

Bitcoin, en blockchaintechnologie in het algemeen, is een hot topic op het moment. De werking van Bitcoin is echter een ingewikkeld verhaal. Hashes, minen en blockchains zijn nou namelijk niet echt alledaagse termen. Juist dat maakt het ook interessant om er dieper in te duiken en toe te werken naar het antwoord op de vraag: wat is Bitcoin?

Bitcoin en blockchaintechnologie uitgelegd

Wat Bitcoin is, is een lastige vraag om te beantwoorden. Het probleem is dat er drie dingen zijn die ‘bitcoin’ genoemd worden. De term wordt vaak gebruikt als het over het complete systeem gaat. Dat wil zeggen, alle mensen en computers die er aan meewerken en alle transacties. In die zin is Bitcoin een beetje vergelijkbaar met het bancaire systeem.

Daarnaast wordt er in de technische omschrijving van Bitcoin (het systeem) gesproken over bitcoins. Daarmee bedoelt men een reeks transacties die met elkaar te maken hebben. Hier komen we straks nog op terug. Ten slotte kan het gaan over de waarde van ‘een bitcoin’, in die zin is het een valuta net als de Euro of de Dollar.

Transacties

Het doel van Bitcoin is om betalingen uit te voeren, transacties staan daarom centraal. Transacties in Bitcoin verlopen anders dan met gewoon geld. Als je met Euro’s betaalt, dan heb je te maken met een eenheid met een ‘vaste’ waarde, een Euro. Koop je iets, dan wisselen de euro’s van hand. Dat is hoe je het gewend bent.

Bij Bitcoin betaal je door aan te tonen dat je in een eerdere transactie geld ontvangen hebt. Het is een beetje te vergelijken met een normaal monetair systeem, maar dan zonder munt. Als je iets koopt, voeg je een regel toe aan een globaal grootboek. Die regel geeft aan waar het geld vandaan komt en waar het naartoe gaat. Uiteraard moet geld dat uitgegeven wordt eerst verkregen worden.

Het grootboek waar alle transacties te vinden zijn.

Dit globale grootboek is openbaar, iedereen kan zien wie welke transacties uitvoert en waar het geld vandaan komt. Je kunt op elk moment transacties toevoegen. Klinkt mooi, maar er zijn wel problemen mee. Het grootste probleem is dat je met alle deelnemers overeenstemming moet bereiken over welke versie van het grootboek de waarheid is. En dat, terwijl het goed mogelijk is dat toevoegingen niet direct uitgevoerd worden.

Als er geen manier is om de waarheid te bepalen, dan zou het mogelijk zijn om twee keer dezelfde bitcoin uit te geven. De gemakkelijkste manier om dit te voorkomen, is door ervoor te zorgen dat transacties niet achteraf aangepast kunnen worden én dat transacties op datum te sorteren zijn. Als we aan die twee eisen voldoen, dan kunnen we het met z’n allen eens worden over de correcte versie van het grootboek en is het dubbel uitgeven van bitcoins onmogelijk. Maar voordat we verder kunnen, moeten we eerst kijken naar een technisch aspect van Bitcoin: ‘hashing’.

Hashing

Een hashfunctie is een functie die een input van arbitraire lengte omzet in een output van een vast aantal bits. Denk aan een black box waar je data in kunt stoppen. Het maakt niet uit hoeveel, aan de andere kant van de black box komt er altijd iets uit van dezelfde lengte. Deze eigenschap is heel handig om een soort vingerafdruk van data te nemen, een hash.

Bitcoin gebruikt de hashfunctie SHA-256, met een outputlengte van 256 bits (32 bytes). SHA-256 heeft een aantal eigenschappen die heel handig zijn.

  • Deterministisch — Voor een gegeven input is de output altijd hetzelfde. Als wij allebei op onze eigen computer de SHA-256 hash van dit blog uitrekenen, dan krijgen we exact hetzelfde antwoord.
  • Pseudo-random — Er is geen manier om voor een gegeven input de output te voorspellen, behalve door de hash uit rekenen.
  • Chaotisch — Als er één enkele bit in de input verandert, dan zal de output compleet anders zijn.
  • Onomkeerbaar — Doordat SHA-256 pseudo-random en chaotisch is, is de output onomkeerbaar. Dus als je een hash hebt, is het onmogelijk om uit te rekenen welke data daarbij hoort.

Deze eigenschappen zorgen ervoor dat je dus niet terug kunt rekenen van hash naar input. Echter, als je input en een hash toegestuurd krijgt, dan kun je heel gemakkeljk controleren of die hash bij de data hoort.

Op volgorde van tijd

Terug naar Bitcoin. We zijn op zoek naar een manier om alle transacties in dat globale grootboek van Bitcoin op volgorde van tijd te zetten. Daarnaast willen we dat transacties niet aan te passen zijn.

In Bitcoin is dit opgelost door een ‘timestamp’. Met andere woorden, een tijdsindicatie. Transacties worden samengevoegd in blokken. De inhoud van het blok en de huidige datum en tijd worden samen gehasht. De blokken zijn vanaf dit moment niet meer aan te passen, elke aanpassing aan het blok zou een andere hash opleveren.

Naast de transacties, de huidige datum en tijd wordt er in de hash van een blok nog iets anders meegenomen, namelijk de hash van het vorige blok.

Een Bitcoin-blok.

Zo ontstaat er een gesorteerde ketting van niet aanpasbare blokken, een blockchain. We moeten nu alleen nog zien te zorgen dat we het met z’n allen eens zijn over welke blockchain de waarheid is.

Proof-of-Work

Het bereiken van consensus in een globaal systeem is erg moeilijk, maar Bitcoin heeft hier een mooie oplossing voor. Om te bewijzen dat een blok legitiem is, moet voor elk blok een zekere hoeveelheid rekenwerk worden verricht. Dat werkt als volgt.

Sommige computers in het Bitcoinnetwerk zijn ‘miners’. Deze miners voegen een aantal transacties samen in een blok, zoals hierboven beschreven. Daarnaast doen ze nog iets extra’s, ze voegen een willekeurig getal toe aan het blok. Dit getal wordt een ‘nonce’ genoemd (number used once). Vervolgens wordt de hash uitgerekend.

Een Bitcoin-blok met nonce.

Echter, de miner blijft deze stap herhalen, elke keer met een andere nonce. Omdat de nonce verandert, verandert ook de hash van het blok. De miner stopt met minen zodra er een hash gevonden wordt die begint met een aantal nullen. Wat dat aantal precies is, is afhankelijk van de toestand van het Bitcoinnetwerk. Vervolgens stuurt de miner het blok door naar alle andere deelnemers in het netwerk.

Hash controleren

Elke deelnemer in het netwerk kan de hash van het blok eenvoudig controleren. Alle benodigde informatie zit in het blok. Echter, men kan niet zomaar een blok aanpassen. Er zou dan namelijk opnieuw gezocht moeten worden naar de nonce die aan de eisen voldoet. Sterker nog, om een blok aan te passen dat verder terug in de ketting zit, moet voor alle blokken daarna opnieuw het werk gedaan worden. Ofwel, hoe langer een blok in de blockchain zit, hoe moeilijker het is aan te passen.

Nu hebben we een manier om te bepalen welke blockchain de waarheid bevat, namelijk de langste. De langste blockchain is die blockchain waar het meeste werk op verricht is. Welke blockchain dat is, is potentieel onderhevig aan verandering. Niet alle deelnemers hoeven het altijd eens te zijn, maar uiteindelijk is er telkens één langste blockchain.

Beloning

De miners spelen een integrale rol in het Bitcoinsysteem. Dit is echter niet gratis. Er moet veel rekenwerk verricht worden en dat kost energie. Daarom worden miners beloond voor het werk dat ze verzetten. Elk blok dat een miner bouwt, bevat een transactie die een vast aantal bitcoin toewijst aan de miner. Hoeveel dat er zijn, hangt af van de toestand van het netwerk. Bij elke 200.000 blokken die afgeleverd worden, wordt de beloning gehalveerd. Momenteel is de beloning 12.5 bitcoin per blok.

Minen wordt beloond.

Dit is echter onderhevig aan dezelfde voorwaarden als hierboven genoemd werden. De miner voegt de transactie, waarin 12.5 bitcoin aan zichzelf toegekend wordt, toe aan het blok en voert vervolgens het werk uit. Als het blok klaar is, wordt het gepubliceerd en alle andere deelnemers kunnen controleren dat het goed is gegaan. Omdat meerdere miners tegelijkertijd een blok kunnen afleveren, kan het zijn dat er meerdere blockchains tegelijk bestaan. Uiteindelijk wordt er ééntje verkozen als waarheid en de andere verdwijnt. Dat betekent ook dat die miner zijn beloning kwijt is.

Zolang de voorraad strekt

De beloning die miners ontvangen, wordt om de 200.000 blokken gehalveerd. Dat betekent dat er uiteindelijk steeds minder bitcoins geproduceerd worden via het mining-process. Met andere woorden, er komt een moment waarop er geen bitcoins meer gemaakt worden.

Het minen van bitcoins.

Sterker nog, mensen raken hun bitcoins wel eens kwijt, het is immers niets meer dan een bestandje op je computer. Na verloop van tijd zal het aantal bitcoins (in omloop) dus beginnen af te nemen. Dat is een interessante en unieke eigenschap die we niet bij andere munten zien.

Dus, wat is Bitcoin?

Bitcoin is een betaalsysteem. In tegenstelling tot andere systemen zijn alle transacties in Bitcoin openbaar. Iedereen heeft inzicht in alle transacties én kan alle transacties controleren. Nieuwe bitcoins worden gemaakt door miners, ze ontvangen de bitcoins als beloning voor het werk dat ze verzetten om het controleren van transacties mogelijk te maken.

P.S. Wil je op de hoogte blijven van alle artikelen, updates, tips en trucs die verschijnen op ons blog? Dat kan! Rechts bovenin via RSS, e-mail, het liken op Facebook, het +1’en op Google+ of het volgen op Twitter.

Deel Deel Deel Deel

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *