Blockchain is een systeem dat gebruikt kan worden om gegevens openbaar en onveranderlijk op te slaan. Het bijzondere van blockchain is dat er geen centrale partij nodig is voor het controleren en vastleggen van de gegevens.
De eerste (en meest bekende) blockchain is de Bitcoin blockchain, hierin worden alle bitcoin-transacties opgeslagen. Na de Bitcoin blockchain zijn er vele andere blockchains gekomen, zoals bijvoorbeeld de Litecoin, Ethereum en Monero blockchains.
Een blockchain wordt niet onderhouden door een centrale partij maar door een netwerk van computers waar iedereen aan mee kan doen. Alle gegevens in een blockchain zijn openbaar maar niet gekoppeld aan een persoon. Alle deelnemers aan het netwerk kunnen gegevens toevoegen aan een blockchain maar niet wijzigen. Alle deelnemers kunnen alle gegevens zelf op juistheid controleren.
In het geval van de Bitcoin blockchain wordt deze onderhouden door de Bitcoin software die iedereen kan installeren op zijn computer. Alle transacties en adressen in de blockchain kunnen door iedereen ingezien worden maar deze zijn moeilijk terug herleiden naar een persoon. Als er bitcoins worden verstuurd wordt de bijbehorende transactie toegevoegd aan de blockchain, er wordt nooit eerdere data gewijzigd.
‘Blockchain’ en ‘de blockchain’
Het is belangrijk om onderscheid te maken tussen ‘blockchain’ en ‘de blockchain’. Als er gesproken wordt over ‘de blockchain’, hebben we het over de Bitcoin blockchain. Als we het hebben over ‘blockchain’ dan bedoelen we de blockchain technologie in het algemeen. We zullen het in deze uitleg voornamelijk hebben over ‘de blockchain’, omdat deze wat ons betreft het beste voldoet aan alle gewenste eigenschappen.
Niet censureerbaar geld (dankzij de blockchain)
Het feit dat de blockchain openbaar is, niet onderhouden wordt door een centrale partij en niet gewijzigd kan worden, maakt deze tot een universele bron van waarheid. Een waarde in de blockchain is uniek en kan niet gedupliceerd of vervalst worden. De bitcoins, die op de blockchain opgeslagen zijn, kunnen dus niet tweemaal uitgegeven worden. In het digitale tijdperk waar alles gekopieerd kan worden is dit van onschatbare waarde.
De blockchain maakt hiermee ‘digitale schaarste’ mogelijk en met Bitcoin komt dat in de vorm van dat ‘niet censureerbaar digitaal geld’. Het maakt de blockchain ook potentieel geschikt voor allerlei andere innovaties.
Vier essentiele eigenschappen
Wat ons betreft moet een blockchain altijd voldoen aan de volgende vier eigenschappen om een ‘echte’ blockchain te zijn. Als een of meerdere van deze eigenschappen ontbreken dan vervalt daarmee meestal het voordeel wat een blockchain heeft ten opzichte van bestaande, gecentraliseerde technieken.
Openbaar
Alle transacties in de blockchain zijn openbaar. Dat wil zeggen dat, gedane en toekomstige, transacties door iedereen kunnen worden gevolgd en ingezien. Transacties zijn niet gekoppeld aan een persoon wat een hoge mate van anonimiteit mogelijk maakt.
De Bitcoin software is ook openbaar, wat ze noemen ‘open-source’. Dit betekent dat de broncode van Bitcoin door iedereen kan worden gecontroleerd op fouten en eventuele achterdeurtjes.
Het voordeel van deze openbaarheid en anonimiteit is dat partijen elkaar niet hoeven te vertrouwen, niet hoeven te kennen maar elkaar wel kunnen controleren. Het enige wat je vertrouwt is het Bitcoin netwerk zelf, welke weer werkt op basis van cryptografische en wiskundige principes.
Decentraal
Wat de blockchain onderscheidt van bestaande gegevensbronnen of databases is dat er geen autoriteit of regelgever is die aan de knoppen draait. Alle deelnemers aan het netwerk hebben een kopie van de blockchain waardoor er geen centraal punt is wat aangevallen of gemanipuleerd kan worden. De decentrale opzet maakt het dat nieuwe deelnemers eenvoudig en laagdrempelig mee kunnen doen aan het systeem en dat censuur onmogelijk is.
Onveranderlijk
Als gegevens eenmaal in de blockchain zijn gezet dan kunnen deze niet meer gewijzigd worden. Eenmaal uitgevoerde transacties kunnen niet ongedaan worden gemaakt. Dit zorgt ervoor dat de blockchain kan dienen als permante bron van waarheid. Ook zorgt het voor de eerder genoemde ‘digitale schaarste’.
Robuust
De blockchain is beveiligd tegen aanvallen van buitenaf door de deelnemers (full nodes) die alle transacties controleren en miners die de blockchain beveiligen. (zie de techniek achter blockchain)
Hoe werkt de blockchain?
Een keten van blocks
Een blockchain is een keten van goedgekeurde transacties welke met elkaar verbonden zijn door middel van digitale handtekeningen. Transacties worden op hun beurt weer gegroepeerd in zogenaamde blocks welke op hun beurt ook weer aan elkaar gekoppeld zijn met digitale handtekeningen. Doordat alles onderling verbonden is kan een transactie niet gewijzgd worden zonder dat dit gedetecteerd wordt.
Hoe langer hoe veiliger
Doordat de blockchain, met elk toegevoegd block vol transacties, een stukje langer wordt komen transacties steeds ‘dieper’ in de blockchain te liggen. Hierdoor wordt het met elk toegevoegd block een stuk moeilijker om een transactie terug te draaien of wijzigen. Je zal immers bij een wijziging alle opeenvolgende transacties moeten wijzigen om ervoor te zorgen dat alles blijft kloppen. Zie het maar als een boek waar je op een gegeven moment besluit dat een hoofdpersoon nooit heeft bestaan, je zal dan het hele boek moeten herschrijven tot het moment dat deze het verhaal binnenkwam. Des te later in het verhaal des te meer er herschreven moet worden.
Bevestigd
Als een Bitcoin transactie opgenomen wordt in een block dan noemen we dat een bevestiging. Als een transactie eenmaal zes bevestigingen heeft, dus zes blocks diep in de blockchain zit, dan wordt dit gezien als veilig. Voor grote uitgaven kan je dus het beste wachten op zes bevestigingen.
Full nodes
De blockchain bevindt zich niet op 1 plaats maar op meerdere computers tegelijk. In het geval van Bitcoin zijn dit wereldwijd duizenden computers waarop de Bitcoin software een kopie van de blockchain bijhoudt. Deze computers noemen we full nodes. Alle full nodes vormen samen een sterk gedistribueerd netwerk welke geen centraal punt heeft wat aangevallen kan worden. Ook controleert iedereen elkaar waardoor valsspelen meteen gedetecteerd wordt.
Als er een nieuwe transactie toegevoegd moet worden aan de blockchain dan zal deze eerst naar alle full nodes gestuurd worden ter controle. De transactie wordt alleen goedgekeurd als deze voldoet aan de voorwaarden waar het meerendeel van de full nodes het over eens is. Als de transactie goedgekeurd is dan wordt deze in een wachtrij gezet, de zogenaamde mempool. Als een full node onjuiste transacties in de wachtrij probeert te krijgen dan zal deze genegeerd worden door de rest van het netwerk.
Mining
Eens in de 10 minuten zal een zogenaamde ‘miner’ de transacties die in de wachtrij staan groeperen in een block en deze toevoegen aan de blockchain. Dit toevoegen van het block heet ‘mining’. (zie de techniek achter blockchain)
Het nieuwe block wordt dan op zijn beurt weer gestuurd naar alle full nodes welke de transacties in het block controleren en kijken of het block voldoet aan de voorwaarden. Als een full node het block goedkeurt voegt deze het block toe aan zijn blockchain. Als het block onjuiste gegevens bevat zal het genegeerd worden. Alle full nodes in het systeem vergelijken constant hun blockchain met de andere full nodes in het netwerk. De stand van zaken die geldt op meer dan 50% van het netwerk wordt gezien als de juiste.
Vals spelen heeft geen zin
Op deze manier kijken alle full nodes altijd naar dezelfde gegevens, heeft vals spelen geen zin en is er geen centrale partij nodig. Hoe meer nodes en miners er deelnemen aan de blockchain des te veiliger het netwerk wordt.
Geen Bitcoin zonder de blockchain
De blockchain en Bitcoin zijn onlosmakelijk met elkaar verbonden. Dat komt doordat Bitcoin de blockchain nodig heeft om alle bitcoin transacties in op te slaan. Aan de andere kant heeft de blockchain Bitcoin nodig om deelnemers aan het systeem motivatie te geven om de blockchain te beveiligen door middel van mining. Elke 10 minuten wordt er namelijk een beloning uitgekeerd van 12,5 Bitcoin aan een miner (zie ook de techniek achter blockchain).
De juiste stand van zaken?
Blockchain lost een eeuwenoud probleem op waarmee ook computerwetenschappers al decennia lang worstelden, het zogenaamde “Byzantine generals problem“. Dit probleem gaat erover dat in een decentraal systeem overeenstemming over de huidige stand van zaken lastig te bereiken is. In een decentraal systeem moeten immers berichten naar alle deelnemers gestuurd worden, zodat iedereen op de hoogte is van de laatste stand van zaken. Maar hoe kan je er zeker van zijn dat een door jou ontvangen bericht niet tijdens het verzenden gewijzigd is en je daarmee niet de juiste stand van zaken hebt?
Anders gezegd: hoe kan je er zeker van zijn dat je naar dezelfde blockchain zit te kijken als alle andere deelnemers in het systeem. In de praktijk zorgt het oplossen van het Byzantine generals problem ervoor dat iedereen het eens is over de totale hoeveelheid bitcoins en de hoeveelheid goedgekeurde transacties. Daardoor kan je weer veilig bitcoins versturen die zeker weten correct aankomen bij de ontvanger.
Een geniale combinatie
Bij de blockchain draait het niet alleen om de technologie, het is een combinatie van cryptografie, peer-to-peer opslagtechniek, spam-beveiliging en drijfveren om mee te doen.
Met de drijfveren komt ook Bitcoin om de hoek kijken. Deelnemers aan het systeem maken namelijk kans op een beloning als ze het netwerk helpen beveiligen door rekenkracht in te zetten. Deze beloning komt in de vorm van Bitcoins. Als deelnemers ervoor kiezen om vals te spelen worden ze genegeerd door de rest van het netwerk en maken ze ook geen kans op de beloning.
Je mag dus ten eerste alleen maar meedoen als je je aan de regels houdt. Slecht gedrag wordt afgestraft door het systeem. Goed gedrag wordt beloond. Dit wordt ook wel speltheorie genoemd en is een niet te onderschatten onderdeel van de reden waarom blockchain werkt.
De techniek achter blockchain
Het is belangrijk om te beseffen dat de blockchain, zoals gebruikt bij Bitcoin, niet een op zichzelf staande technologie is. Net zoals ‘de cloud’ feitelijk een verzameling servers is, die ergens in een datacenter goed beveiligd aangesloten zijn op het internet, staat ‘blockchain’ niet op zichzelf. De blockchain bestaat uit meerdere technieken welke elk een essentiele eigenschap mogelijk maken.
De blockchain (Fraude detectie)
In de blockchain zijn alle transacties aan elkaar gekoppeld door middel van digitale handtekeningen. Als je maar 1 opgeslagen transactie zou wijzigen dan klopt de hele opeenvolgende keten niet meer. Alle transacties zijn ook nog gegroepeerd in blocks die ook weer met digitale handtekeningen aan elkaar gekoppeld zijn.
De blockchain zorgt hiermee voor fraude detectie in de vorm van een niet te vervalsen blokken van transacties.
Gedistribueerde, publieke opslag (Censuur bestendig / bescherming tegen data wijziging)
De blockchain is gedistribueerd opgeslagen en openbaar inzichtelijk. Alle full nodes hebben een kopie en kunnen bij elkaar controleren wat de juiste stand van zaken is. Op deze manier kan een deelnemer geen data wijzigen zonder de rest van het netwerk dit detecteert en vervolgens verwerpt. Ook kunnen een transacties niet gecensureerd worden.
Digitale sleutels (Bewijs van eigendom)
Degene die de digitale sleutels, behorende bij een Bitcoin adres, bezit is de enige die de bitcoins daadwerkelijk kan uitgeven. Deze sleutels maken het ook mogelijk dat je iemand niet hoeft te kennen of te vertrouwen. Doordat de digitale sleutels cryptografisch te controleren zijn kan je er zeker van zijn dat je transactie veilig en met de juiste persoon uitgevoerd wordt.
Alle acties met betrekking tot digitale sleutels worden trouwens gedaan door de Bitcoinsoftware, hier hoeven gebruikers zich niet persé mee bezig te houden.
Proof of work (Beveiliging)
De blockchain maakt voor beveiliging van de blockchain gebruik van een techniek genaamd: ‘proof of work’. Deze techniek zorgt er voor dat het kostbaar is om nieuwe blocks toe voegen aan de blockchain
Een miner, die een nieuw block wil toevoegen aan de blockchain, zal een ingewikkelde rekensom op moeten lossen. Het oplossen van deze rekensom kost momenteel veel processor-kracht en daarmee stroom. Als iemand de rekensom opgelost heeft, levert hij daarmee dus bewijs van arbeid (proof of work).
Dat er werk gedaan moet worden, voordat een miner een nieuw block kan toevoegen, zorgt er weer voor dat het netwerk niet zomaar kan worden overgenomen of platgelegd door het te ‘spammen’ met blocks. Doordat je veel rekenkracht nodig hebt om een lock toe te voegen is het met terugwerkende kracht aanpassen van blocks. Ook praktisch onmogelijk.
Een miner mag, uit de eerder genoemde mempool, zelf kiezen welke transacties hij wil opnemen in zijn ‘kandidaat’ block. Als hij de eerste is die het genoemde werk goed heeft opgelost, dan mag hij zijn block uitroepen aan de anderen. Alle full nodes zullen het block controleren. Als blijkt dat alles klopt, zullen zij het block accepteren en is dát het volgende block.
Als beloning voor zijn werk krijgt de miner 12,5 nieuwe bitcoins van het netwerk. Daarnaast krijgt hij de transactiekosten, die door de verzenders zijn meegestuurd, van alle transacties, in het nieuwe block. Dit geeft miners een reden om mee te doen aan het netwerk.
Het proof of work algoritme is ook feitelijk een loterij omdat je nooit weet van tevoren weer wie de volgende rekensom zal oplossen en daarmee het volgende block mag toevoegen. Dat zorgt ervoor dat miners niet kunnen samenspannen om het netwerk over te nemen. Ook worden de nieuwe bitcoins op deze manier, min of meer, willekeurig verdeeld over het netwerk.