Dialogic Blockchain Series #2

Hoe werkt een blockchain? Deel 2: blokken

Een blockchain bestaat, zoals de naam doet vermoeden, uit elkaar opvolgende blokken met informatie. In het vorige deel hebben we gezien hoe met proof of work kan worden voorkomen dat iedereen zomaar informatie mag toevoegen aan een blockchain. Maar hoe werkt dat precies?

Eigenlijk valt een blockchain het beste te begrijpen als een soort spreadsheet die online (‘in the cloud’) staat. Het wordt met meerdere mensen gedeeld, mensen kunnen er tegelijkertijd in werken en alle wijzigingen zijn voor iedereen zichtbaar. Dat geldt ook voor de blockchain, waarbij ook nog eens geldt dat je alleen informatie ‘onderaan’ mag toevoegen. Je kan dus wel dingen wijzigingen, maar het verleden blijft altijd bestaan. Een blockchain is daarmee heel transparant.

Maar laten we beginnen bij het begin: hoe ziet een ‘blok’ er eigenlijk uit? Een blok bevat bepaalde nuttige informatie, zoals een digitale transactie, of een afspraak tussen twee partijen.

Om te zorgen dat de blockchain jouw blok accepteert, moet de hash (ofwel de digitale vingerafdruk, zie het vorige artikel in deze serie) van het blok beginnen met een vooraf afgesproken aantal ‘nullen’. Zoals in het vorige artikel uitgelegd ‘bewijs’ je daarmee dat je een bepaalde hoeveelheid rekenwerk hebt verzet toen je het blok maakte. Dat voorkomt, zoals we vorige keer zagen, dat één persoon de controle over een blockchain volledig kan overnemen.

Om de vingerafdruk te laten beginnen met het voorgeschreven aantal nullen, zullen we voor een groot aantal varianten van het blok moeten ‘proberen’ of de vingerafdruk aan de eis voldoet. Aan de inhoud van het blok voegen we, om dat te kunnen doen, een (verder ongebruikt) getal toe: de nonce. De nonce varieer je net zo lang totdat de vingerafdruk van het blok begint met het voorgeschreven aantal nullen.

De ‘double spend’

De blockchain is een ketting van blokken – de ketting kan steeds maar met één blok worden verlengd. Het is natuurlijk mogelijk dat iemand tegelijk met iemand anders een nieuw blok heeft weten uit te rekenen. Die blokken zouden elkaar kunnen tegenspreken: de ene bevat bijvoorbeeld een transactie waarin geld wordt uitgegeven aan persoon A, en het andere blok kan een transactie bevatten waarin geld wordt uitgegeven aan persoon B. Uiteraard kan maar één van beide transacties behouden blijven. Hoe lost de blockchain dit op?

In een blockchain ‘wint’ uiteindelijk de langste keten. Lukt het je dus om als eerste een blok te maken dat volgt op een ander blok, dan is de kans groter dat dat blok uiteindelijk deel wordt van ‘de langste’ keten. Onderstaand voorbeeld laat dat zien. Het blok 006406 en 006274 worden tegelijk gemaakt. Omdat meer blokken volgen op blok 006406, wordt dit blok uiteindelijk deel van de langste ketting.

Dit principe helpt ook bij het voorkomen van wijzigingen in oude blokken. Wanneer de blokken geldtransacties bevatten wil je natuurlijk niet dat eenmaal uitgegeven geld toch weer wordt teruggetrokken!

Stel dat ik de transactie in blok ‘006406’ wil wijzigen, wat moet ik dan doen? Het wijzigen van de transactie zorgt ervoor dat het blok verandert, en daarmee ook de vingerafdruk van het blok (en zoals eerder gezien is het onmogelijk het blok zó aan te passen dat deze exact dezelfde vingerafdruk heeft als het oude blok). Wat wel kan, is het blok opnieuw proberen toe te voegen, en als een gek ook de opvolgende vier blokken opnieuw uit te rekenen, waardoor een langere keten ontstaat dan de huidige keten.

Om (in totaal) vijf blokken te minen, moet er vijf keer een goede vingerafdruk worden gevonden. Hoe langer de keten, hoe moeilijker dat dus wordt. Vergelijk met het Russische Matroska-poppetjes: wil je de binnenste vervangen, dan zal je ze allemaal één voor één uit elkaar moeten halen en weer één voor één in elkaar moeten zetten.

Ondertussen zijn de andere deelnemers natuurlijk nog steeds bezig de langste keten (waar de ongewenste transactie onderdeel van uitmaakt) te verlengen. Om sneller te zijn dan de rest, heb je significant meer rekenkracht nodig (om precies te zijn heb je een ‘meerderheid’ van >50% van de totale rekenkracht van het netwerk nodig!).

Dankzij de blockchain is historische informatie dus niet te wijzigen, en is geld maar één keer uit te geven, vanwege de benodigde meerderheid in rekenkracht. Slim bedacht!

< Lees DBS #1    Lees DBS #3 >

Benieuwd naar meer?

Dialogic helpt publieke organisaties met beleidsvorming met en rondom nieuwe technologieën. In de Dialogic Blockchain Series leggen we uit wat blockchain kan betekenen voor overheden en behandelen we elke twee weken een ander onderwerp. Meld je dus nu aan en blijf op de hoogte!

[contact-form-7 id=”4210″ title=”Inschrijven blockchain series”]

Heb je vragen of ben je benieuwd wat blockchain voor jou kan betekenen? Neem contact op met Tommy van der Vorst.