Ik wil graag uitleggen wat een blockchain inhoud en waarom een blockchain meer is dan een aaneenschakeling van blokken met informatie. Daarvoor moet ik eerst wat termen/technologieën uitleggen die de blockchain nodig heeft om zich te onderscheiden van een normale database. De termen op zich klinken ingewikkeld, maar ik zal toch mijn best doen om het zo goed mogelijk uit te leggen. Een blockchain wordt vaak in één adem genoemd met “vertrouwen”, maar kan je een blockchain zomaar vertrouwen?

De toegevoegde waarde van een blockchain moet zijn dat de data die er in staat integer is en niet kan worden aangepast. Echter kan dit alleen als de blockchain wordt gecombineerd met andere technologieën. Anders is het gewoon een normale database, zoals we die altijd al hebben gekend.

Node
Een node is software die op een computer draait. Deze software bevat alles wat nodig is om een blockchain te bouwen en te onderhouden. Ook kan een node met andere nodes communiceren. Elke computer kan een node zijn of worden door de software te installeren en zich aan te sluiten bij andere nodes.

Proof-of-Work
Proof-of-Work wordt vaak afgekort al PoW en dat zal ik hier ook doen. PoW is het verzetten van werk om een bepaalde handeling te doen. Bij PoW wordt vaak gebruik gemaakt van een techniek die Hashcash heet. Het idee achter Hashcash is in 1992 bedacht, maar werd pas als Hashcash bekent in 1997 door Adam Back.

Het werkt vrij eenvoudig. Er wordt de gebruiker een rekensom voor gehouden, door een node, die moet worden opgelost. Het oplossen van deze rekensom kost veel computerkracht (energie) en neemt een bepaalde tijd in beslag. Zodra de oplossing is gevonden, wordt deze terug gestuurd naar de node. De node die de oplossing ontvangt kan heel snel nagaan of het antwoord goed is en weet op dat moment zeker dat er veel energie en tijd is gebruikt door de gebruiker. Daardoor is het aannemelijk dat de gebruiker geen kwade zin heeft en te vertrouwen is. Als de ontvangende computer namelijk ontdekt dat het gegeven antwoord niet juist is, zal de handeling niet door gaan en heeft de gebruiker kostbare tijd en energie verbruikt voor niets.

De node die de rekensom verstuurd bepaald de moeilijkheidsgraad van de rekensom en kan daarmee ong. bepalen hoelang de gebruiker moet werken en hoeveel computerkracht hij daar voor nodig heeft. PoW wordt gebruikt om nieuwe blokken toe te voegen aan de blockchain. PoW wordt vaak gedaan door zogenaamde “miners”.

Consensus rules
Consensus zijn een set met besluitvormingsregels waar iedereen zich aan moet houden. Deze regels bepalen bijvoorbeeld om de hoeveel minuten een node een nieuw blok verwacht. Tevens is er een regel die bepaald om de hoeveel blokken er wordt gecontroleerd of de tijd tussen de blokken nog klopt.

De regels bij bijvoorbeeld Bitcoin zijn als volgt; een node verwacht elke 10 minuten een nieuw blok en om de 2016 blokken wordt er een controle uitgevoerd of de blokken op het juiste tempo binnen komen. Indien de blokken gemiddeld om de 5 minuten binnen komen, wordt de moeilijkheidsgraad van de PoW verhoogd zodat het langer duurt voor er nieuwe blokken binnen komen. Dit zorgt er voor dat blokken op het juist tempo binnen komen.

Ook bepalen deze regels hoe een transactie er uit moet zien en hoe een blok wordt versleuteld en ondertekend met een digitale handtekening. Alle nodes hanteren de zelfde set met regels en hiervan kan niet worden afgeweken. Het aanpassen van deze regels is niet eenvoudig, aangezien alle nodes in het blockchain-netwerk hiermee akkoord moeten gaan en dus bijgesteld moeten worden.

Decentralisatie
Dit houd in dat een kopie van de blockchain op meerdere plaatsen aanwezig is en dat deze via het internet met elkaar praten, bijv. over consensus. Zodra er op een plek in de wereld een blok wordt toegevoegd aan de blockchain wordt dit direct met alle andere nodes gedeeld. Elke node controleert dit blok volgens de consensus regels en als de meerderheid het goed vindt, wordt het blok officieel toegevoegd aan de blockchain.

Er is dus geen centraal punt waar alle data opgeslagen wordt. De data kan overal ter wereld staan, hierdoor kunnen er nodes wegvallen of er bij komen, zonder dat de blockchain daar last van heeft. Er is dus ook geen centraal punt voor hackers om aan te vallen.

Blockchain is geen normale database
Ik zie de laatste tijd heel veel bedrijven die hun bedrijfsnaam koppelen aan het woord “blockchain” om op extra aandacht te krijgen of zelfs te profiteren van het succes. Maar feitelijk zijn er maar heel weinig bedrijven die de blockchain gebruiken zoals het bedoeld is, dus als 4e schakel in combinatie met de 3 bovenstaande technologieën. Zonder PoW, consensus of decentralisatie is een blockchain gewoon een hele normale, zelfs slechte, database, zoals we deze altijd al gebruikten, business as usual dus. Graag wil ik een voorbeeld geven waaruit zal blijken dat de blockchain alleen niet veel meer waarde heeft dan de huidige databases.

Laten we zeggen dat we een centrale database willen vervangen met een blockchain, iets wat vandaag de dag helemaal een hype is. We zorgen dan voor bijv. 5 aangewezen partijen die we vertrouwen en die transacties mogen ondertekenen. Zonder PoW of consensus hoeven we deze transacties helemaal niet aan in een blok te stoppen, we kunnen gewoon alle losse transacties ondertekenen en we hoeven ze ook niet met een “ketting” aan elkaar te verbinden.

Zonder PoW en consensus is het herschrijven van de blokken kinderlijk eenvoudig. Je kan het eerste, tweede of een ander blok aanpassen en binnen enkele milliseconden berekenen hoe de rest van de blockchain er dan uit zou moeten zien. Toch gebruikt 99% van de bedrijven, die lopen te pronken met een blockchain, enkel en alleen de blockchain technologie, zonder PoW en/of consensus en dus gebruiken ze gewoon een normale database met een mooiere naam.

Waarom zijn deze technieken nodig?
Stel, ik wil een blockchain van 10.000 blokken aanpassen waarop consensus actief zijn en waar PoW vereist is. De nodes verwachten in dit voorbeeld elke 10 minuten een nieuw block. De miners zullen met alle macht gaan rekenen om binnen deze 10 minuten het antwoord te vinden op de rekensom die aangeboden wordt. Het resultaat van de rekensom wordt toegevoegd aan een blok als sleutel. Elk blok bevat ook een sleutel van het vorige blok.

Als ik het tweede blok wil aanpassen in deze blockchain, zal de sleutel van dit blok veranderen. Omdat het derde blok de sleutel van het tweede blok bij zich draagt, moet ik ook deze aanpassen. Dit zal een domino effect creëren tot aan het laatste blok. Ik moet dus alle opvolgende blokken aanpassen, vanaf de plek van de wijziging tot aan het einde, om een kloppende blockchain te behouden.

Nu komt het, zonder proof-of-work kan ik met een simpele computer de hele blockchain opnieuw berekenen in enkele seconden. Stel dat we wel consensus hebben, maar de node verwacht elke 10 minuten een nieuw block, dan heb ik voldoende tijd om alles aan te passen en op zijn plek te zetten. De blockchain is dus absoluut niet veiliger dan een normale database, want wijzigen van data is een fluitje van een cent.

Stel dat er wel proof-of-work actief is, maar geen consensus regels. Op dit moment kan ik de aanpassing aan blok twee doen en moet ik de rekensom opnieuw oplossen. Dit moet ik tevens doen voor alle opvolgende blokken. Het oplossen van deze sommen kost enorm veel computerkracht, maar aangezien er geen regels zijn, wordt er niet van mij verwacht dat ik dit in 10 minuten doe. De blockchain is hiermee dus ook veranderlijk en niet veiliger, enkel wordt het aanpassen van data moeilijker, maar zeker niet onmogelijk.

Door consensus en PoW met de blockchain te combineren wordt het echter wel onmogelijk om wijzigingen te maken. Al het werk van blok twee tot het einde moet opnieuw worden gedaan voor elk blok individueel. De consensus stelt dat er elke 10 minuten een nieuw blok wordt toegevoegd, dus moet het binnen 10 minuten gedaan worden, wat onmogelijk is.

Nu is het mogelijk om een node te onderscheppen en de regels van de blockchain aan te passen naar eigen wens, om zo toch de een nieuwe blockchain te kunnen aanbieden.

Door decentralisatie hier aan toe te voegen, moet een hacker of kwaadwillige niet 1 node beïnvloeden, maar honderden of soms zelfs miljoenen nodes. Hierdoor wordt een centrale aanval onmogelijk, simpelweg om dat er geen centraal punt is om druk op uit te oefenen.

Conclusie
De data in de blockchain is op zich zelf niet veel bijzonders, maar dankzij decentralisatie, proof-of-work en consensus, wordt het een onveranderlijke basis en is de data 100% integer. Het wordt een historisch register van waarheid en vertrouwen en dat maakt de blockchain bijzonder.