Submenu

Hoe werkt Blockchain

Een block bestaat uit twee onderdelen: een blockheader en een inhoud.[2] In blocks staan de eigenlijke bij te houden data en blockheaders bevestigen wanneer en in welke volgorde blocks geregistreerd zijn (tijdstempels om dubbele uitgaven en conflicten te vermijden). In een blockheader is ook een verwijzing naar het vorige block verwerkt. Dit verbindt de blokken als schakels in de keten.

Als aan een keten van blokken een nieuw blok wordt toegevoegd, dan is dit nieuwe blok gebaseerd op het vorige blok, op nieuwe data, en op een met veel rekenkracht gevonden bitreeks in het nieuwe blok (cryptografische nonce) waarbij de hash van het blok met een vereist aantal nulbits begint (cryptohashing). Het rekenwerk om de keten te verlengen kan dus pas beginnen als het vorige blok vaststaat.

Een block wordt dus gekoppeld door middel van een verwijzing naar een vorig block. Deze verwijzing is eigenlijk een cryptohash van de header van het vorige block.[3] Bij een blockchain kan er worden gekozen om een extra moeilijkheid aan te brengen in het berekenen van deze verwijzing. Dit gebeurt door eisen te stellen aan de hash die wordt berekend. Er wordt gezocht naar een hash die begint met een aantal nullen. Hoe hoger het aantal geƫiste nullen, hoe moeilijker het is om een hash te vinden. Deze methode is voor het eerst gebruikt om spam op e-mailadressen tegen te gaan.

Omdat een hash een zogenaamde “one-way function” is, kan van een hash niet worden afgeleid hoe de gegevens eruitzien. Ook is het de bedoeling dat een hash uniek is. Als er een bit of teken verandert in een stuk code of document, zal de hash in zijn geheel veranderen. Elke wijziging is dus waarneembaar.

Blocks zijn dus met elkaar verbonden via een hash. Deze hash wordt opgeslagen in de header, en deze zal gebruikt worden voor het maken van de hash van dat block. Dit betekent dat bij een wijziging in een block, alle blokken die daarna komen ook gewijzigd moeten worden.

Stel dat er een block 1 is. Na block 1 komt er een block 2, 3 en 4. Als block 1 wordt aangepast, klopt de verwijzing in (de header van) block 2 niet meer (omdat de hash erin opnieuw berekend moet worden). Block 2 moet hierdoor ook aangepast worden. De verwijzing in block 3 klopt niet meer, dus block 3 moet worden aangepast, etc.

Omdat er meerdere nodes zijn, kan dit soort problemen worden gedetecteerd en opgelost (door de aanpassingen stop te zetten of de node die deze gegevens verzendt te negeren). Dit systeem zorgt voor de integriteit die blockchains biedt.

Mining

Binnen een blockchain kan er worden gekozen om de integriteit nog sterker te maken. Dit kan worden gedaan door miners toe te voegen aan het proces. Miners berekenen hashes. Zij gebruiken speciale systemen die voor deze doelen bedoeld zijn. Miners worden in veel gevallen beloond (zoals bij bitcoins).

Doordat er miners zijn, en dus meer rekenkracht, kunnen er moeilijkere hashes berekend worden. De kracht die nodig is om hashes te berekenen zorgt voor meer integriteit binnen een systeem, omdat om te vervalsen een nieuwe berekening van een hash nodig is. De kans dat er een hash goed wordt gegokt blijft altijd aanwezig, maar deze kans is erg klein.

Bij het bezitten van een hoeveelheid rekenkracht binnen een miningnetwerk, dat groter is dan 50% van de totale rekenkracht binnen het mining netwerk, is het mogelijk om gegevens in een blockchain aan te passen. Dit is ook de reden dat sommige bedrijven kiezen voor een blockchainnetwerk zonder miners.