Dialogic Blockchain Series #1

Hoe werkt een blockchain? Deel 1: vingerafdruk

Je zult het misschien niet verwachten, maar de fundamentele bouwsteen van een blockchain lijkt sterk op iets waar we allemaal over beschikken: een vingerafdruk. Digitale vingerafdrukken zorgen ervoor dat niet één partij de controle kan overnemen over een blockchain. Maar hoe werkt dat precies? Tijd voor wat wiskunde…

Een vingerafdruk is uniek. Heb je de vingerafdruk van een persoon, dan kun je eenvoudig controleren of deze vingerafdruk bij een bepaalde persoon hoort. Heb je alleen een vingerafdruk, dan is het (zonder eerder verzamelde lijst met vingerafdrukken) praktisch onmogelijk om de persoon daarbij te vinden zonder de vingerafdrukken van alle personen langs te lopen. Wiskundig gezien kun je ook de vingerafdruk bepalen van een stuk informatie.

Hash

Zo’n digitale vingerafdruk, ook wel hash genoemd, vormt de basis van een blockchain. Om te kunnen begrijpen waarom digitale vingerafdrukken zo belangrijk zijn, is het belangrijk om eerst te begrijpen hoe ze werken.

Iedereen kan de digitale vingerafdruk van een stuk informatie bepalen door een (ingewikkelde) wiskundige som uit te rekenen. Het maakt daarbij niet uit hoe lang de informatie is (net als dat vingerafdrukken van mensen niet specifiek afhankelijk zijn van hun lengte!). Heb je de informatie en de vingerafdruk, dan kun je eenvoudig controleren of beiden bij elkaar horen.

Bij Bitcoin, een blockchain voor financiële transacties, wordt de zogenaamde ‘SHA-256’-hashmethode gebruikt. Zelf de SHA-256-vingerafdruk uitrekenen van een stuk tekst kan bijvoorbeeld hier. De hash van de tekst “Tommy” is bijvoorbeeld:

5bee7cef227fe327178bd04bb7cc75ba9a36f1b8867ba1025430761a226539e9.

Nu gaan we de hoofdletter veranderen in een kleine letter: wat is de hash van “tommy”?

044f4b3501cd8e8131d40c057893f4fdff66bf4032ecae159e0c892a28cf6c8e

Hoewel er maar één letter afwijkt is de vingerafdruk compleet anders! Niet onlogisch: de vingerafdruk van jou en je broer of zus zullen, ook al lijken jullie erg op elkaar, ook compleet anders zijn.

Als ik je alleen de hash “044f4b..” van hierboven zou geven, dan is de enige methode om erachter te komen bij welke tekst deze hoort het aflopen van alle mogelijke teksten. Pas na heel veel proberen zou je erachter komen dat de vingerafdruk bij de tekst “tommy” hoort. Wiskundigen noemen de vingerafdrukmethode daarom one-way: de vingerafdruk uitrekenen van informatie is eenvoudig, maar de informatie vinden bij een vingerafdruk is nagenoeg onmogelijk.

Proof of work

De willekeurigheid van de hashes maakt het mogelijk ze voor een interessante toepassing te gebruiken. Zoals je hierboven zag, zijn de letters en cijfers in de vingerafdruk zeer willekeurig. Wiskundig gezien is de kans dat een vingerafdruk van een bepaald stuk tekst met een ‘0’ begint 1 op 16. Als ik je vraag een stuk tekst te zoeken waarvan de hash begint met een ‘0’, dan zul je gemiddeld zestien teksten moeten proberen (en als je pech hebt meer!). Zou ik vragen om een hash die begint met twéé nullen, dan kost je dat gemiddeld 16 x 16 = 256 pogingen; immers, als het eerste getal een ‘0’ is, is er slechts een kans van 1/16e dat het tweede getal nul is.

Het aantal nullen waarmee een hash begint zegt dus iets over het aantal teksten dat je (gemiddeld) hebt moeten proberen voordat je uitkwam op deze hash. Zo’n hash kan dus worden gebruikt als een soort ‘bewijs van inzet’ (proof of work). Als je mij een tekst laat zien waarvan de hash begint met twee nullen, dan weet ik dat je bij benadering 256 keer een hash hebt moeten uitrekenen.

Nu terug naar de blockchain: wat hebben we aan die vingerafdrukken? In de blockchain worden alleen nieuwe blokken geaccepteerd wanneer je hebt aangetoond dat je een bepaalde hoeveelheid rekenwerk hebt gedaan. Dat voorkomt dat iedereen zomaar blokken kan toevoegen: rekenkracht kost geld en het rekenen zelf kost tijd. Omdat het zeer kostbaar is om altijd méér rekenkracht te hebben dan de andere deelnemers, is het zo praktisch onmogelijk om als enige de controle over een blockchain te verkrijgen!

Lees DBS #2 >

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.