Blockchain

Wat is blockchain?

12 oktober 2021 - 5 minuten leestijd
Artikel door Edwin Fennema & Leen Blom

Blockchain wordt in de media nog weleens ‘de grootste innovatie sinds het internet’ genoemd. Maar wat is blockchain nou precies?

Om op deze vraag een antwoord te vinden, moeten we de term eerst opdelen in twee delen: block en chain. Het laatste deel is in deze context het meest eenvoudig: een chain is een keten van schakels. Een block chain is dus een keten van blocks. Maar wat is een block? Om dat te begrijpen, is het handig eerst te weten wat een database is, dus we parkeren de uitleg van block even na de uitleg van database.

Database

Een database is een verzameling van gegevens, ingericht om deze gegevens flexibel te doorzoeken en gebruiken. Deze inrichting wordt gekenmerkt door het gebruik van zogenaamde records en columns. Vergelijk die voor het gemak met rijen en kolommen in Excel (trouwens geen database, maar een rekenprogramma).

Stel je bij een record nu een horizontale rij voor van meerdere aaneengesloten cellen, waarin je per cel iets kunt vastleggen. Als zo’n record bijvoorbeeld mij als persoon beschrijft, dan zie je in de eerste cel mijn naam, in de tweede cel (die ernaast staat) mijn leeftijd, in de derde cel die daar weer naast staat mijn BSN et cetera. Als je meerdere personen op die manier beschrijft, ontstaan naast records ook columns. In de eerste column staan dan alle namen, in de tweede de leeftijden en in de derde de BSN-nummers.

Een groep meerdere, gelijksoortige records en columns onder elkaar heet een dataset, database of datafile. Daarin kan van alles worden beschreven: personen (zoals in het voorbeeld), objecten, maar ook transacties of procesgegevens.

Block

En een block dan? Een block is ook zo’n dataset, database of datafile, maar dan met enkele bijzondere extra kenmerken, waaronder een hash. Een hash is de uitkomst van een wiskundige functie die de concrete inhoud(!) van alle records in een dataset, database of datafile bij elkaar heeft omgerekend naar één aaneengesloten code - de hash dus - met een vast aantal karakters, letters en/of cijfers.

Dit zou een hash kunnen zijn, bijvoorbeeld: 5a3243e20e2c6c58e885a65393e85c64f2e34223c813f9f954246d8ec244c54d

Als je van wiskunde houdt, is het aardige van zo’n hash dat het maar één richting op werkt: je kunt via die wiskundige functie van elke willekeurige combinatie van inhoud een hash laten uitrekenen, die bij diezelfde inhoud dus ook altijd hetzelfde is, maar je kunt nooit achterhalen welke inhoud dat was als je alleen die hash kent.

De hash weerspiegelt nu de gehele inhoud van alle records in een block. En als ik nu ook maar één stukje inhoud uit één cel uit één van die records verander, dan verandert de hash dus ook. Daarom is het bij een block eenvoudig via de hash vast te stellen of de inhoud ervan in de tijd gewijzigd is. Dat maakt blocks van nature geschikt voor datasets, databases of datafiles die we liever intact en voor altijd onveranderd willen houden.

Inhoud die je wilt bewaren en beschermen kun je voor extra veiligheid ook nog versleutelen (encrypten). Dat werkt dan trouwens wel twee kanten op. Wie de juiste sleutel heeft, kan de gegevens ook weer teruglezen. Hashes zijn er dus om er zeker van te zijn dat niemand de gegevens eenvoudig wijzigt en encryptie wordt gebruikt om gegevens alleen toegankelijk te maken voor hen die er de sleutel toe hebben.

Keten van blocks

Een blockchain is dus een keten van meerdere blocks. Als we die blocks (met elk een eigen hash) aan elkaar verbinden, dan gebeurt dit via deze hashes. Dit werkt als volgt.

Het eerste block heeft één eigen hash. Het tweede blok dat eraan gekoppeld wordt, heeft twee hashes: de eerste is een kopie van de hash uit het eerste blok en de tweede is de eigen hash van het tweede block. Voor het derde block in de chain werkt dat ook weer hetzelfde: de eerste hash van het derde block is een kopie van de eigen hash van het tweede block en de tweede is de eigen hash van het derde blok.

Confused? Hieronder een sterk versimpeld voorbeeld:

Versimpeld voorbeeld keten van blocks in Blockchain

En zo ziet een blockchain er dan feitelijk uit: een keten van blocks, die via hashes met elkaar verbonden zijn, waarbij de oude hash van de vorige bij de inhoud van de volgende hoort

Dus als ik iets in een van de blocks zou veranderen, dan veranderen alle hashes die erna komen ook en wordt deze inconsistentie over de gehele chain na het gewijzigde block zichtbaar. Op deze manier vormt een blockchain een min of meer samengestelde dataset, database of datafile, van een niet-muteerbare soort (ook wel een grootboek of ledger genoemd). Niet-muteerbaar, omdat wijzigingen bij voorkeur alleen plaatsvinden als dit de toevoeging van een nieuw block betreft en geen veranderingen in wat er al was.

Wantrouwen

Een blockchain blijft daarbij, hoe gek dit ook klinkt, het veiligst of het meest consistent als belanghebbenden met een tegengesteld belang er gebruik van maken. Ofwel, het wantrouwen in elkaar zorgt er van nature voor dat men er het grootst mogelijke vertrouwen in moet hebben dat de inhoud in de chained blocks kloppen en blijven kloppen. Dat maakt blockchain ook zo aantrekkelijk voor toepassingen waarin vertrouwen (of eigenlijk wantrouwen) een cruciale rol speelt: crypto currency met een bepaalde waarde, contracten met bepaalde kenmerken, transacties met een bepaalde inhoud, of bindende eenheden als stemmen bij een referendum.

Gerelateerde artikelen
De blockchain: waar blijft Europa?
Blockchain
China en de Verenigde Staten zijn koplopers als het gaat om blockchaintechnologie. Zo heeft de Chinese me ...
Transparantie door blockchain: een kans of bedreiging voor de overheid?
Blockchain Public
In 2020 publiceerde accountants- en adviesorganisatie BDO een onderzoeksrapport (uitgevoerd door Publicum ...
Blockchain en registratie ongeboren vrucht: een veelbelovende combinatie
Blockchain Public
Blockchain kan worden ingezet om gemeenten te helpen data rondom de registratie ongeboren vrucht met elka ...