Stay informed!
Maar als je vraagt hoe dat precies werkt, dan blijft het stil. Veel te technisch, toch? Laten we daarom eens proberen te beschrijven hoe een blockchain zou kunnen werken in het pre-computertijdperk. We gaan honderd jaar terug in de tijd en introduceren een nieuwe munteenheid, de “Bladcoin”. Die analogie maakt blockchain begrijpelijk en maakt meteen de voor- en nadelen inzichtelijk.
Vroeger werden financiële transacties op papier bijgehouden. Zo ook onze Bladcoin. De betalende partij schrijft daarom zijn transactie inclusief eindsaldo op een briefje en stopt dat in een gemeenschappelijk geldkistje waarin alle transacties terecht komen. Uit die administratie is altijd voor alle deelnemers aan het experiment te herleiden wat hun actuele saldo is. Maar als alle deelnemers al hun transacties op papier zetten, raakt het geldkistje snel vol en wordt het lastig de recentste briefjes te vinden. Dat willen we niet.
Daarom mogen er maximaal honderd briefjes in een geldkistje. Als het vol is, gaat het kistje met de sleutel permanent op slot. Volgende briefjes gaan in een nieuw geldkistje tot ook dat vol is. De sleutel van het eerste kistje stoppen we onderin het tweede kistje; als dat vol is stoppen we de sleutel daarvan onderin het derde kistje enz, enz. Na verloop van tijd hebben we misschien wel tachtig geldkistjes. Hiermee hebben we de basis van onze blockchain gerealiseerd! Elk geldkistje is een “block”, en door de sleutels onderin te leggen hebben we een “chain”, een keten, van blocks gekregen.
Het is niet eenvoudig om een transactie in het eerste geldkistje te bekijken. Om dat kistje te openen heb je immers de sleutel nodig, en om die uit het tweede kistje te halen heb je ook daarvan de sleutel nodig, en om die … enz. enz. Maar als we aannemen dat de kistjes alleen met de juiste sleutel geopend kunnen worden, dan hoeven we alleen het laatste, nog geopende kistje te bewaken. Als de sleutel daar veilig is, zijn alle transacties in alle kistjes veilig. Sterker nog, we kunnen die geldkistjes zelfs weggooien! We weten dan niet meer welke transacties in het verleden gedaan zijn, maar wel dat er niet mee gesjoemeld is en de eindsaldi daarom correct zijn. Immers, de sleutel tot het verleden ligt veilig in het laatste geldkistje.
De vraag is wie die geldkistjes mag beheren. Als we dat aan één persoon toevertrouwen dan fungeert die persoon als een echte bank. Dat kan prima werken, maar stel nu dat de deelnemers in het experiment elkaar niet vertrouwen. Wat dan? De oplossing is dat iedereen een eigen kopie van de geldkistjes bewaart. Wie een betaling doet, hangt zijn transactiebriefje op een openbaar prikbord zodat alle deelnemers –we weten niet hoeveel dat er zijn– een kopie kunnen maken. Elke deelnemer stopt die kopie in een eigen geldkistje en creëert zo een eigen blockchain. Als een deelnemer probeert de boel te flessen door een briefje weg te laten of te wijzigen, dan valt hij snel door de mand omdat zijn administratie afwijkt van de andere administraties. Om dat snel te kunnen constateren laten we de deelnemers voor het sluiten van elk geldkistje op een extra controlebriefje een optelling van alle transacties schrijven. En in een eindcontrole vergelijken we die controlebriefjes. Als iedereen hetzelfde totaalbedrag heeft, worden de geldkistjes gesloten. Eventuele afwijkingen –iemand kan natuurlijk per ongeluk een briefje zijn verloren– worden zo ook gedetecteerd en gecorrigeerd.
Het mooie aan dit systeem is dat het zekerheid biedt zonder dat er een vertrouwde partij nodig is. Maar we zijn nog niet helemaal veilig. Stel dat een van de deelnemers wil vals spelen. Hij koopt een heleboel geldkistjes en vult die met kopieën van de transactiebriefjes en voegt daar een valse transactie aan toe. Hij levert vervolgens zijn controlebriefjes in; heeft hij genoeg kopie-geldkistjes gemaakt, dan heeft hij bij de eindcontrole een meerderheid. De echte controlebriefjes worden dan weggestemd door de valse en de fraudepoging slaagt. Er is namelijk geen enkele mogelijkheid om te achterhalen wie er vals speelt!
We hebben daarom een truc nodig om te voorkomen dat iemand onbeperkt controlebriefjes kan aanleveren. En die truc is dat de controlebriefjes niet op papier aangeleverd moeten worden, maar handgeschreven op een exemplaar van een zeldzame schelpensoort. De crux is dat elke deelnemer zo minstens een dag op het strand aan het zoeken is naar een bruikbare schelp. Heel vervelend, maar nog veel vervelender voor wie de boel wil oplichten; die zal namelijk minstens zo lang moeten zoeken als alle eerlijke deelnemers bij elkaar! Als extra stimulans loven we een beloning uit voor de eerste die zijn schelp inlevert. Fraude wordt daarmee niet alleen ondoenlijk maar ook onaantrekkelijk. Wie goed kan zoeken, hoeft namelijk niet te frauderen: hij kan gewoon zijn beloning incasseren. Loon naar werken. We spreken daarom niet van “zoeken” maar liever van “mining”.
We hebben nu een heuse blockchain gecreëerd. De blockchains waar iedereen het vandaag de dag over heeft zijn natuurlijk digitaal maar niet fundamenteel anders. De briefjes zijn digitale berichten, de blocks zijn gehashte (=onomkeerbaar versleutelde) verzamelingen van transacties, en de keten wordt gevormd door de hashwaarde van het ene block mee te nemen in de hash van het volgende. De truc met de zeldzame schelp wordt digitaal bereikt door deelnemers te laten zoeken naar een bijzondere hashwaarde. Alles digitaal maar de werking is hetzelfde.
Het leuke van deze analogie is dat we daarmee ook meer begrip krijgen voor de voor- en nadelen van een blockchainsysteem. Het belangrijkste voordeel is natuurlijk dat de blockchain de “waarheid” garandeert in een wereld waarin niemand vertrouwd wordt. Dat was ook het primaire doel van de Bitcoin-bedenkers: de bank als noodzakelijke vertrouwde partij omzeilen. In termen van informatiebeveiliging kunnen we daarom stellen dat een blockchain dataintegriteit levert.
Maar er zijn ook evidente nadelen van een blockchainsysteem. Doordat de transacties op het prikbord gepubliceerd worden, blijven die niet geheim. In termen van informatiebeveiliging: een blockchain levert geen vertrouwelijkheid. Ik merk dat hier nog wel eens verwarring optreedt. De blockchain is toch veilig? Dan kan toch niemand de transacties inzien? Overigens valt hier wel een mouw aan te passen door transacties versleuteld te publiceren, maar daarvoor heb je geen complexe oplossing als een blockchain nodig.
Een tweede nadeel, en in mijn ogen het grootste, is de inherente inefficiëntie van het concept. Het schelpen zoeken is een noodzakelijk onderdeel van het proces, er moet iets “moeilijks” in zitten om fraude te voorkomen. Dat kost letterlijk veel energie. Het systeem is daardoor ook moeilijk schaalbaar. Als het aantal deelnemers en transacties toeneemt, komt er een moment waarop alle deelnemers voortdurend aan het zoeken zijn naar schelpen.
Dit laatste punt klinkt grappig maar heeft ook een serieuze kant. Ook digitale blockchains zijn inefficiënt en dat manifesteert zich in processoractiviteit. Zo berekende Christopher Malmo in een bekend artikel dat voor een enkele bitcointransactie evenveel energie benodigd is als een Amerikaans huishouden verbruikt in 1,6 dagen! Bij toenemend gebruik wordt dat alleen maar meer. Wie bezorgd is over klimaatverandering kan misschien beter geen bitcoins gebruiken.
Erwin Oord (eoord@archixl.nl) is a principal consultant and managing partner at ArchiXL.
Neem contact op met ons, we vertellen er graag meer over!
Stay informed!
Arnhemse Bovenweg 140
3708 AH Zeist
Nederland
© ArchiXL | Chamber of Commerce 05084421