Blockchain. Een buzzword dat steeds vaker is te horen op radio en tv en te lezen in kranten en op internet. In het kielzog van de moeder aller blockchains – Bitcoin – krijgt het langzaamaan de waardering en bekendheid die deze revolutionaire vinding verdient.

Omdat het concept simpel van opzet maar complex van constructie is, heeft nog lang niet iedereen blockchain technologie kunnen doorgronden, zélfs de mensen die de term zo graag in de mond nemen. Voor die mensen, en voor ieder ander met oprechte interesse, doe ik in dit artikel een poging om het zo eenvoudig mogelijk uit te leggen.

Dilbert on BlockchainDilbert on Blockchain
Dilbert on Blockchain

Wat is Blockchain niet

  • Bitcoin*
  • Een (efficiënte, bewerkbare) database
  • Een uitontwikkeld product
  • Dé oplossing voor wereldvrede
  • Gratis
  • Gehacked

* Bitcoin is een implementatie van een blockchain

Wat is Blockchain wel

  • Een alleen-schrijven logboek met aaneengeschakelde transactie-informatie: wie kreeg hoeveel, van wie en wanneer?
  • Gerepliceerd en gedistribueerd in een netwerk
  • Door iedereen raadpleegbaar
  • Een decentraal netwerk zonder single point of failure
  • Onafhankelijk van enige derde (regulerende) vertrouwde partij

Een blockchain is een gedecentraliseerde manier om robuust, veilig en transparant transacties en saldi bij te houden zonder tussenkomst van een derde partij. Het meest bekende – en oudste – voorbeeld hiervan is Bitcoin, maar er zijn inmiddels talloze andere implementaties. Waar de Bitcoin blockchain zich beperkt tot transacties van een munt (de Bitcoin), specialiseren andere blockchains zich in transacties van software en contracten: programmeerbaar geld. In dit artikel beperk ik me tot de basis; blockchain als ‘administratiesysteem’.


De 5 pilaren van Blockchain

Hoe blockchain ‘werkt’

BlockchainBlockchain
Blockchain (sterk versimpeld)

Blockchain combineert een aantal bestaande technologieën1 tot 5 basisconcepten:

  1. Hashing
  2. Blocks
  3. Chaining
  4. Distributie
  5. Consensus

Ik zal deze hieronder individueel toelichten; zonder deze bomen kun je het bos immers niet zien.


1. Hashing

Een hash is een vingerafdruk van digitale data en zorgt voor controleerbare authenticiteit.

Blockchain: hashingBlockchain: hashing
Blockchain: hashing
  • Een hash brengt data van iedere willekeurige vorm en grootte terug tot één enkele vaste reeks van cijfers & karakters.
  • Kleine wijzigingen in de data veranderen de hash volledig.
  • Een hash is een éénrichtings-methode die onmogelijk is om te keren (lees: uit het resultaat kun je de data niet terughalen).
  • Een hash is een makkelijke manier om in één oogopslag de integriteit van een set data te verifiëren4, 5.
HashingHashing
Hashing

2. Blocks

De informatie die een Blockchain bevat, wordt in containers samengevoegd; blocks.

Blockchain: blocksBlockchain: blocks
Blockchain: blocks (tx = transactie)
  • Blocks worden geïdentificeerd met een signature in de vorm van een hash van de transacties die het bevat (zie 1. Hashing).
  • Niet elke handtekening wordt zomaar geaccepteerd: een block wordt als geldig ondertekend (validly signed) gezien wanneer de handtekening voldoet aan een set basisregels. Deze hangen af van de gebruikte Blockchain-implementatie (bij Bitcoin is bijvoorbeeld een van de vereisten dat een geldige handtekening moet worden voorafgegaan door een aantal nullen). Deze regels zijn overigens variabel2.
  • Om een geldige handtekening te bereiken, zonder de informatie waarover de hash berekend wordt inhoudelijk te veranderen, wordt er een zogenoemde ‘nonce’ toegevoegd bij het berekenen van de hash. Een nonce is een willekeurige karakter- & cijferreeks, die net zo vaak veranderd wordt tot de resulterende hash voldoet aan de basisregels2.
  • Het vinden van de juiste ‘nonce’ is een proces wat ‘mining’ (delven), of proof of work wordt genoemd.
  • De moeite die in mining moet worden gestoken vormt een veiligheidslaag en zorgt voor regulatie in het netwerk: niet alles kan zomaar berekend worden; het kost tijd en moeite. Moeite die bij Bitcoin beloond wordt met, je raad het al; Bitcoins.
MiningMining
Mining (blauw: masker waaraan hash moet voldoen: de difficulty)

3. Chaining

Blockchain: chainBlockchain: chain
Blockchain: chain

Een Blockchain vormt een chain (ketting) van blocks die met elkaar gelinkt zijn doordat ieder block refereert aan de handtekening (hash) van het voorgaande block (behalve het eerste, ‘genesis’, block).

  • Als de transacties in een blok worden veranderd, verandert ook de handtekening (hash) van dat blok. De referenties die de blokken onderling naar elkaar hebben klopt dan vanaf daar niet meer: de ketting breekt. Dit principe maakt een blockchain append-only.
  • Om een gebroken ketting te repareren moet het gewijzigde blok, plus alle opvolgende blokken opnieuw gehashed (ge-mined) worden.
  • Hoe verder in het verleden een blok wordt gewijzigd, hoe moeilijker het dus wordt om de ketting te repareren (lees: geldig te maken).

4. Distributie

De blockchain wordt gedistribueerd onder alle deelnemers binnen het p2p decentrale blockchain-netwerk. Hierdoor heeft iedereen altijd een kopie van de huidige staat van de blockchain.

Blockchain: distributieBlockchain: distributie
Blockchain: distributie

Fundamenteel om te begrijpen is dat blockchain is gestoeld op een decentraal netwerk van nodes (deelnemers; computers), verspreid over (liefst) de hele wereld. Hoe meer nodes, hoe beter een blockchain zal werken, en hoe veiliger deze wordt. Je kunt dus in feite niet zeggen ‘we gaan een blockchain bouwen’, tenzij je al de beschikking hebt over duizenden nodes. Een blockchain netwerk opbouwen tussen een handjevol servers is een zinloze exercitie7.

Centraal vs decentraal vs gedistribueerdCentraal vs decentraal vs gedistribueerd
Centraal vs decentraal vs gedistribueerd

5. Consensus

Als iedere deelnemer een kopie heeft van de blockchain, moet een deelnemer ook in staat zijn om de authenticiteit van zijn kopie te verifiëren. Dit proces, waarin de juiste staat van een blockchain (‘de waarheid’) wordt bepaald, wordt het consensus mechanisme genoemd.

Blockchain: consensusBlockchain: consensus
Blockchain: consensus
  • Door een kopie van de blockchain te vergelijken met die van andere deelnemers, kan een enkele deelnemer bepalen of een blockchain identiek is, en dus ‘klopt’.
  • Deze vergelijking kan snel gedaan worden door de handtekening (hash) van enkel het laatste blok in de blockchain te controleren.
  • Als een kopie van de blockchain niet overeenkomt met de kopieën van de meerderheid (50%+) van de deelnemers, is de betreffende kopie niet geldig.
  • Een consensus mechanisme draagt zorg voor veilige updates van de waarheid (‘single source of truth’) binnen een gedistribueerde omgeving waarin de deelnemers niet weten of ze elkaar kunnen vertrouwen6.
  • Een consensus mechanisme zorgt ervoor dat dit kan gebeuren zonder tussenkomst van een derde, regulerende, vertrouwde partij (denk aan een bank).
  • Er zijn verschillende consensus mechanismen, allemaal met eigen voor- en nadelen wanneer het aankomt op prestaties, beveiliging, controle, foutgevoeligheid, etc.

Alles bijeengebracht in een voorbeeld

Klopt; hij praat wat snel

Geen video? Bekijk op YouTube

En hier nog een video, met een interactief practicum.


Resumerend

  • Een blockchain is een alleen-schrijven logboek waarin de transacties in aaneengeschakelde blokken wordt bewaard. Deze blokken worden beveiligd middels een hash signature (handtekening). Het berekenen van deze hash (of liever: de juiste ‘nonce’) is een proces wat ‘mining‘ wordt genoemd.
  • De blokken vormen een ‘chain‘ (ketting) door aan elkaar te refereren. Als een individueel blok wijzigt, breekt de ketting en moet het blok, plus alle blokken erna, opnieuw worden ge-mined.
  • De blockchain wordt gedistribueerd aan alle deelnemers in het netwerk. De deelnemers controleren het laatste blok en vergelijken het met anderen. Als de kopie identiek is, is de blockchain geldig. Het controleren en verifieren van de blockchain wordt ‘consensus‘ genoemd en zorgt ervoor dat er geen vertrouwde derde partij nodig is.
Why you can't cheat at bitcoin (en dus blockchain)Why you can't cheat at bitcoin (en dus blockchain)
Why you can't cheat at bitcoin (en dus blockchain)

Notities

  1. Ledgers (624), Timestamping (1660), Virtual machines (1960), PKI (1976), Hashing (1978), Merkle Trees (1979), P2P Networks (1979), Consensus algorithms (1982)
  2. De basisregels bepalen de moeite die gedaan moet worden om de juiste hash (block signature) te berekenen. Deze regels staan niet vast, bij Bitcoin bijvoorbeeld vinden er geregeld zogenoemde ‘difficulty adjustments‘ plaats om het minen te vereenvoudigen of moeilijker te maken, zodat het netwerk in balans blijft.
  3. Waarom het extreem moeilijk is om gedane transacties in een blockchain te falsificeren/veranderen wordt perfect uitgelegd door Bits on blocks, hier. (kop ‘CHANGING A BLOCKCHAIN MID-FLIGHT’)
  4. Hashing voorbeeld (1): Met hashing kun je een map met duizenden documenten, van wellicht enkele gigabytes in grootte, terugbrengen tot (bijvoorbeeld) één enkele reeks van 64 karakters. Als je dan één letter verandert in een van de documenten, en vervolgens de hash opnieuw uitrekent, krijg je een compleet andere reeks. Het ongedaan maken van die aanpassing zal zelfs niet zorgen dat de vorige hash terugkomt, aangezien er ‘onder water’ ook wijzigingen hebben plaatsgevonden zoals bijv. de wijzigingsdatum van het bestand. Door het verschil tussen de hashes kun je dus bijna zonder aanwijsbare verschillen betrouwbaar zien dat de data toch wél is gewijzigd.
  5. Hashing Voorbeeld (2): Hashing wordt ook vaak gebruikt om downloads te beveiligen; bij de downloadlink staat dan vaak een (MD5) hash. Als je het gedownloade bestand vervolgens zelf zou (MD5) hashen, moet je op dezelfde tekenreeks uitkomen. Dan weet je 100% zeker dat je het bedoelde bestand hebt gedownload en geen gemuteerd (virus) bestand.
  6. In het geval van een nieuw blok (want de blockchain blijft natuurlijk groeien) zijn er verschillende scenario’s mogelijk, afhankelijk van het gekozen consensus systeem (PoW, PoS, etc). In het geval van PoW (Proof of Work) hanteren alle deelnemers het ‘longest chain’ principe, iets dat hier veel beter wordt uitgelegd dan ik het ooit kan doen.3
  7. Er zijn publieke blockchains waar je op kan bouwen. De bekendste hiervan is Ethereum, dat hierom ook wel een wereldwijde supercomputer wordt genoemd.

Bronnen