Hoe werkt een blockchain?

Delen
Luister naar het artikel
00:00 / 00:00

Een centraal onderdeel van iedere blockchain is het mining-algoritme. Nemen we het algoritme van Bitcoin als voorbeeld, dan heet dit algoritme SHA-256 - kort voor 'Secure Hash Algorithm 256 bits'. Dit algoritme gebruikt een input, bijvoorbeeld tekst of nummers, en creëert aan de hand hiervan een output. Deze output wordt de 'hash' genoemd en heeft altijd een lengte van 256 bits.

Dezelfde input zal altijd dezelfde output genereren; zelfs de kleinste verandering in de input zal tot een compleet andere output leiden.

Dit is waarom het algoritme ook wel een 'eenrichtingsfunctie' wordt genoemd. Met alleen de output is het namelijk onmogelijk om te berekenen wat de input was. Probeer je de input te raden, dan is de kans dat dit lukt 1^256 of, met andere woorden, vrijwel onmogelijk. Het algoritme garandeert zo de veiligheid van Bitcoin.

Nu we weten wat het algoritme doet, kunnen we met een simpel voorbeeld van een transactie uitleggen hoe een blockchain werkt.

Alice en Bob hebben allebei een eigen Bitcoin-wallet. Stel nu dat Alice twee Bitcoin aan Bob is verschuldigd.

Om die twee Bitcoin naar Bob te verzenden, stuurt Alice een bericht naar alle miners in het netwerk met de melding dat ze deze transactie wil uitvoeren.

Het bericht van Alice aan de miners bevat het openbare wallet-adres van Bob, de hoeveelheid Bitcoin die ze wil sturen, een digitale handtekening en haar openbare sleutel. De handtekening wordt gecreëerd op basis van haar private sleutel of 'key' en vormt voor de miners het bewijs dat Alice de eigenaar is van de Bitcoins en dat zij deze transactie wil uitvoeren.

Zijn de miners er eenmaal zeker van dat de transactie geldig is, dan kunnen zij deze samen met een groot aantal andere transacties opnemen in een block en dit proberen te minen. Dit wordt gedaan door het block door het SHA-256 algoritme te laten hashen. De output moet met een bepaald aantal nullen beginnen om geldig te zijn; het precieze aantal nullen hangt af van de 'difficulty' of moeilijkheidsgraad van het algoritme. Deze difficulty is afhankelijk van de hoeveelheid rekenkracht die er op het netwerk beschikbaar is: hoe meer miners er zijn, hoe hoger de difficulty en vice versa.

Om een output hash te produceren die begint met het gewenste aantal nullen, voegen de miners een zogenaamd 'nonce nummer' aan het blok toe voordat het algoritme zijn werkt doet. Omdat een kleine verandering in de input zoals gezegd een compleet andere output produceert, proberen de miners willekeurige nonces uit tot ze uiteindelijk een geldige hash hebben gevonden.

Wanneer het block eenmaal is gemined, wordt het door de miner die de geldige hash heeft gevonden naar alle andere miners gestuurd. Vervolgens controleren zij of het block inderdaad geldig is, zodat zij het aan hun kopie van de blockchain kunnen toevoegen. De transactie is nu voltooid. Omdat het nieuwe block ook de output hash van het vorige block bevat, worden alle blocks als het ware aan elkaar geregen - en dat is precies waarom we over een blockchain, een ketting van blocks, spreken. De blockchain garandeert de juistheid van alle transacties en is essentieel voor het creëren van vertrouwen binnen het netwerk en tussen de netwerkdeelnemers.

Iedere miner maakt namelijk gebruik van een eigen kopie van de blockchain, welke gebaseerd is op de blockchain waar de meeste rekenkracht in is geïnvesteerd - dat wil zeggen, de 'langste ketting' van aaneengeregen blocks. Past een miner een transactie in een eerder block aan, dan verandert de output hash van dat block. Omdat alle volgende blocks nu ook andere inputs hebben, moet de miner ieder block opnieuw hashen om zo te bewijzen dat de aangepaste blockchain de enige juiste is. Concreet betekent dit dat een malafide miner minimaal 50% van de rekenkracht op het netwerk moet bezitten, iets dat in de meeste gevallen zeer onwaarschijnlijk is. Een dergelijke netwerkaanval wordt ook wel een 51% aanval genoemd.

Computers werk laten doen om blocks te genereren, wordt ook wel Proof of Work (PoW) genoemd. Er bestaan echter ook andere manieren om een blockchain te laten functioneren, zoals Proof of Stake (PoS) en Proof of Burn (PoB). Het idee achter deze alternatieven is dat die minder rekenkracht vereisen en beter schaalbaar zijn.

En dat is hoe een blockchain werkt!

Loading