blockchain.com

Blockchain — een simpele uitleg

Afgelopen maanden heb ik me verdiept in blockchain, de werking van een blockchain netwerk en de techniek erachter. In dit stuk leg ik in simpele taal uit hoe blockchain werkt, waarom de techniek erachter zo innoverend is en waarvoor we blockchain kunnen gebruiken vandaag de dag en in de toekomst.

Arnold van Sabben

--

Laten we simpel beginnen met de eerste vraag: wat is een blockchain nou eigenlijk?

Het simpelste antwoord: blockchain is een nieuw digitaal netwerk.

In januari 2009 ging het bitcoin netwerk van Satoshi Nakamoto live waarbij de blockchain technologie voor het eerst gebruikt werd. Een blockchain netwerk is een netwerk van de deelnemers die elkaar controleren. In dit netwerk zit geen centrale partij of tussenpersoon wat het innovatieve aspect is van een blockchain. Een netwerk zonder een centrale partij noemen we ook wel een peer-to-peer netwerk of een decentraal netwerk. In een decentraal netwerk controleert iedereen elkaar en is iedereen verantwoordelijk voor bijvoorbeeld een transactie in het netwerk. Een blockchain netwerk is dus een decentraal peer-to-peer netwerk.

Een voorbeeld van een bekend centraal netwerk:

Persoon A wilt €10 overmaken naar persoon B en doet dit via zijn bank. De bank is de centrale partij en controleert de rekening van persoon A (staat er voldoende geld op de rekening?), schrijft het bedrag vervolgens af en schrijft het bedrag bij op de rekening van persoon B. Persoon A en B vertrouwen de centrale partij met het overschrijven van het bedrag en het registreren van de transactie.

Binnen een decentraal netwerk is er dus geen centrale partij zoals een bank aanwezig. De kracht van een blockchain netwerk is dat alle deelnemers van het netwerk de transactie goedkeuren én registreren. Het netwerk is dus transparant. Een simpel voorbeeld van een decentraal/blockchain netwerk:

Persoon A wilt €10 overmaken naar persoon B. Dit bericht wordt het decentrale netwerk ingestuurd waardoor de overige personen bijv. C, D en E eerst controleren of persoon A €10 heeft. Als alle deelnemers binnen het netwerk goedkeuren dat persoon A €10 heeft kan de transactie plaatsvinden en zullen alle deelnemers de transactie goedkeuren en zelf registreren.

[Blockchain Jargon] Daar waar de personen de transactie registreren heet het register. Andere benamingen zijn grootboek of ledger in het Engels. Een decentraal onveranderlijk register of een distributed immutable ledger betekent dat de data niet op één centrale server staat en dat de data niet verwijderd of gewijzigd kan worden.

Okay duidelijk, maar waarvoor kunnen we een blockchain netwerk dan voor gebruiken?

De afgelopen decennia waren we, als het gaat over transacties doen naar elkaar, afhankelijk van centrale partijen of tussenpersonen om elkaar te vertrouwen. Neem bijvoorbeeld een bank of een notaris. Met deze centrale partijen hoeft niks mis mee te zijn, maar met de opkomst van de blockchain technologie rijst de vraag:

Waarom is het een probleem om afhankelijk te zijn van centrale partijen?

Het probleem zit hem in dat een centraal systeem, organisatie of een tussenpersoon enkelvoudig is en dat er dus maar één van is. Mocht iemand iets onjuist doen — opzettelijk of onopzettelijk —dan is er maar één centraal systeem, organisatie of tussenpersoon nodig om vernieling aan te richten en daarmee chaos te creëren in de wereld. Denk eens aan:

Wat als bijvoorbeeld het gehele betaalregister van een bank wordt verbrand of onbruikbaar wordt gemaakt door een virus? Weet jij nog exact wat je laatste 5 betalingen waren en wat je exacte totaalsaldo van gisteren was?

Wat als bijvoorbeeld het nationale Kadaster afbrandt en niemand meer weet van wie welke grond in Nederland is? Bewijs maar eens zonder een officieel document dat het jouw stuk grond is.

Wat als je tussenpersoon per ongeluk € 1.000 van je rekening haalt in plaats van €100? Zijn woord tegen het jouwe. Had je de betreffende persoon maar beter gecontroleerd.

Wat als bovenstaand allemaal expres gebeurd…?

De vraag die we ons daarom nu kunnen stellen is: kunnen wij zelf iets opzetten waar we onze overdrachten in registreren in plaats dat iemand anders dat voor ons doet? En daar komt de blockchain technologie bij kijken.

Na de opkomst van bitcoin en de blockchain technologie in 2009 zijn er ondertussen al verschillende type blockchains. Dit is afhankelijk van welke algoritmes en technieken gebruik wordt gemaakt. Type blockchain netwerken zijn:

  1. Cryptocurrency; bijvoorbeeld het Bitcoin netwerk waarbij het echt alleen om de digitale munt gaat.
  2. Currency + Business Logic; bijvoorbeeld het Ethereum netwerk waarbij het gedeeltelijk om de digitale munt gaat en om bedrijfsregels — d.m.v. smart contracts.
  3. Business Logic; een netwerk waarbij bedrijfsregels opgenomen kunnen worden en het niet om een digitale munt gaat.

[Blockchain Jargon] Er wordt ook wel gesproken over drie blockchain categorieën, namelijk: een Public netwerk (bijv. Bitcoin of Litecoin), een Private netwerk (bijv. Bankchain) of een Permissioned netwerk (ook wel eens een consortium/federated netwerk genoemd bijv. R3 of EWF).

1) Cryptocurrency, 2) Currency + Business Logic & 3) Business Logic

Hoe werkt blockchain; een simpele uitleg in 4 eenvoudige stappen

Een blockchain is, zoals eerder beschreven, een peer-to-peer netwerk. Om een overdracht van persoon #1 naar persoon #2 te controleren en te valideren heb je daarom een derde persoon nodig. Geen centrale partij. Het aantal van drie deelnemers is tevens het minimale wat een blockchain netwerk nodig heeft om controles uit te voeren en vertrouwen te waarborgen.

De belangrijkste activiteit in een blockchain netwerk zijn overdrachten valideren en blocks creëren met de gemeenschappelijke en gezamenlijke overeenstemming dat de overdracht valide is.

Hieronder vertel ik in vier eenvoudige stappen wat de basisprincipes en de werking van een blockchain netwerk zijn. Het zal geen technisch verhaal worden, maar ik zal wel per stap een verdieping geven naar blockchain jargon.

Stap 1: De gebruiker, zijn notitieboek en zijn folder

Een blockchain netwerk is een digitaal peer-to-peer netwerk met personen die verbonden zijn aan elkaar. Een persoon heeft binnen het blockchain netwerk een spreekwoordelijk notitieboek en een folder. In het notitieboek komen de gecontroleerde en geregistreerde overdrachten te staan. Meerdere overdrachten in het netwerk zorgen voor een volle pagina wat vervolgens beveiligd opgeborgen wordt in de folder.

De persoon, zijn notitieboek en zijn folder

[Blockchain Jargon] De folder wordt de block genoemd. Een block bevat informatie en is opgebouwd uit een header of information met o.a. number of transactions, timestamp en transaction fees van de block. Een block bevat tevens een groep van valid transactions en de hash information (hier kom ik iets verder in het artikel op terug). De eerste block in keten (chain) wordt ook wel de genesis block genoemd. De allereerste bitcoin block werd door Satoshi Nakamoto in januari 2009 gemaakt.

Stap 2: Het doen van een overdracht in het blockchain netwerk

Hieronder bestaat het blockchain netwerk uit 6 personen. Persoon #1 wilt een overdracht doen naar persoon #4 en laat het gehele netwerk weten dat hij €10 wilt overmaken naar persoon #4.

Een aankondiging in het blockchain netwerk

Als eerste controleert iedereen in het netwerk of persoon #1 €10 heeft om het bedrag over te kunnen maken naar persoon #4. Als iedereen akkoord is wordt de transactie goedgekeurd en registreert iedereen de transactie in zijn of haar notitieboek. Dit ziet er ongeveer als volgt uit:

Een goedgekeurde en geregistreerde transactie

Als iedereen de transactie geregistreerd heeft in zijn of haar notitieboek dan heeft de transactie plaatsgevonden en kan de volgende transactie in het blockchain netwerk plaatsvinden. Dit gaat door totdat de pagina van het notitieboek vol is.

[Blockchain Jargon] De personen zoals hierboven beschreven worden nodes genoemd. Deze nodes, de personen of eigenlijk de computers van de personen binnen het netwerk, valideren de transacties en de status van de gebruikers door algoritmes. De number of transactions, timestamp en transaction fees worden geregistreerd op de pagina en komen uiteindelijk in de block terecht.

Stap 3: Na een aantal transacties is de pagina van het notitieboek vol. Wat nu?

Het overmaken van transacties binnen het blockchain netwerk kan enige tijd doorgaan. Iedereen in het netwerk kan zijn of haar transactie aankondigen in het netwerk. Zodra iemand een aankondiging ontvangt, controleert hij of zij de transactie, keurt de transactie goed (of af) en schrijft deze transactie op in zijn of haar notitieboek zoals beschreven in stap 2.

Dit gaat door totdat de pagina van het notitieboek vol is. Op dat moment is het tijd om de pagina op te bergen in de folder en gebruik te maken van een nieuwe pagina totdat ook deze pagina weer vol is. Dit is een continu proces.

Na een x aantal transacties is de pagina vol

Stap 4: Het archiveren van de volle pagina en het creëren en opbergen van de folder

Als een pagina van het notitieboek vol is wordt deze opgeborgen in de folder (block) en wordt de folder in de keten (chain) gezet. De pagina’s worden afgesloten met een unieke sleutel waar iedereen in het netwerk het mee eens is. Deze sleutel, samen met nog een andere cryptische sleutel, is uiteindelijke de digitale handtekening van de pagina en de folder. Het doel van het afsluiten van de pagina en de folder is dat niemand ooit nog de content kan wijziging.

Iedereen in het netwerk is overeengekomen over de transacties, de unieke sleutels en het wegstoppen in de folder. De content van de pagina is dus goedgekeurd door iedereen in het netwerk en kan nooit meer gewijzigd worden.

[Blockchain Jargon] Het sluiten van een pagina heet mining en kan gedaan worden door miners in het netwerk. Dit kan elke persoon in het netwerk zijn. Een miner heeft een aantal taken, zoals 1) het delen, verifiëren en het goedkeuren van transacties, 2) de drang om een block te creëren, 3) de overeenstemming om een block te valideren, en 4) het delen van een nieuwe block. De unieke sleutel heet ook wel de Public Key en is publiekelijk bekend en tevens essentieel voor identificatie. De Private Keys worden geheim gehouden en worden gebruikt voor authenticatie en codering.

Normaal gesproken gaf de centrale partij of tussenpersoon het vertrouwen dat iets wat geregistreerd was nooit zal veranderen. In het zojuist beschreven decentrale netwerk zal mining in combinatie met de public en private keys voor vertrouwen zorgen en eenmaal opgeborgen kan niemand ooit nog een wijziging aanbrengen.

Okay, maar hoe sluiten we de folder dan precies af?

Dat is een goeie vraag en misschien wel het belangrijkste gedeelte van de blockchain technologie. Het is in ieder geval het meest technische gedeelte. Ik zal het kort en simpel toelichten:

Om een folder te kunnen sluiten en in de keten te kunnen zetten hebben we een code nodig. Deze code wordt gegenereerd door iemand in het netwerk door middel van een soort black box — dit proces is onderdeel van het mining proces. De black box maakt gebruik van input data en output data. De black box gebruikt de input data en vertaalt deze in feite in een reeks met letters en cijfers — wat gezien kan worden als de output. Het is zeg maar net zoiets als een URL-verkorter zoals Bitly; je stopt het lange webadres van je website erin en er komt een verkorte versie uit dat het langere adres vertegenwoordigt. De input kan alles zijn. Van 1 letter, 1 cijfer tot een heel uitgeschreven boek of je geregistreerde transacties op je volle pagina. De output van de black box is daarentegen elke keer uniek, maar wel met een uniforme lengte. Een ander belangrijk aspect is dat de black box maar één richting opwerkt — denk maar aan het feit dat je ook geen aardappelen uit aardappelpuree kunt maken. Doordat de black box één kant op werkt is het onmogelijk om de oorspronkelijke input te reconstrueren als je alleen de output weet.

De normale tekst gaat door de hash function (black box) en geeft zijn eigen hash-code terug

[Blockchain Jargon] De black box heet in blockchain jargon de Hash Function. De hash, hash-code of hash-value is de output van de black box of van de Hash Function.

Een bitcoin blockchain type netwerk werkt met een hash output van 64 tekens — wat overeenkomt met 256 bits. 256 bits geeft een combinatie van 2²⁵⁶ mogelijke combinaties voor de output. 2²⁵⁶ staat gelijk aan 10⁷⁷ wat weer gelijk staat aan een 10 met 77 nullen. De output van de black box, de hash-code, is dus lastig snel te achterhalen.

Via deze site kun je zelf een hash-code genereren. Voer onderstaande tekst hier maar eens in en kijk of je dezelfde hash-code als hieronder ontvangt.

Tekst: Dit is een beveiligd bericht met een eigen hash

Hash: c1f1d117b9eb9e5d770c826da3a9a6eb6c1aafdfef38228ada43fbc7bb639d67

Heeft de folder een hash-code gekregen dan kan deze folder (block) beveiligd in de keten (chain) gezet worden.

De opgeborgen folders creëren de chain of blocks

Wil je meer weten over hoe een hash-code gegenereerd wordt? Lees dan de volgende artikelen: What is Hashing?, Secure Hashing Algorithm of voor de echte techs Hash Functions.

Hou vol! Nog één technisch aspect: Proof Of Work

Een veilige keten van opgeborgen folders is een enkele hoofdketen. Elke nieuwe folder dat aan deze keten wordt toegevoegd draagt bij aan het vertrouwensniveau van de keten. Het uitbreiden van deze hoofdketen met nieuwe folders is van belang om het vertrouwensniveau te waarborgen.

Elke persoon (miner) in het netwerk wilt zijn eigen folder toevoegen aan de hoofdketen om het vertrouwensniveau te verhogen. De persoon die zijn folder aan de hoofdketen mag toevoegen krijgt hiervoor een vergoeding.

Maar wat is het volgende blok dat aan de keten moet worden toegevoegd? Kan iedereen het eens zijn over het volgende blok in de keten? Is er een methode of een protocol om het volgende blok te kiezen? Het Proof of Work protocol zorgt hiervoor en is daarom van belang in een blockchain netwerk.

Als een persoon de hash-code heeft berekend, verstuurt hij of zij deze naar de andere personen in het netwerk en wordt de folder geverifieerd door de andere personen (miners). De personen die te laat zijn met het berekenen van hun hash-code voegen de ontvangen folder toe aan hun lokale keten en gaan verder met het verwerken van de andere transacties en het opbergen van de andere folders.

De persoon die de folder als eerste heeft aangeboden aan het netwerk kan hiervoor een beloning ontvangen. Deze beloning zorgt er tevens voor dat personen blijven participeren binnen het netwerk. In een bitcoin blockchain netwerk zijn de beloningen (transaction fees) bitcoins en in een ethereum blockchain netwerk zijn dat bijvoorbeeld ethers en gas-punten.

Voor het afsluiten van block #490624 heeft de persoon 1.77743627 bitcoins ontvangen (Transaction Fees)

Het Proof of Work protocol wordt gebruikt door de bitcoin blockchain alsmede door de huidige versie van ethereum. Het protocol heeft tevens een belangrijke rol om cyberaanvallen zoals DDoS aanvallen af te schrikken.

[Blockchain Jargon] De Proof of Work gebruikt de hashing methode zoals eerder beschreven. De meest gebruikte Proof of Work is gebaseerd op SHA-256 (Secure Hash Algorithm 256 bits).

Wil je meer weten over het Proof of Work protocol dan verwijs ik je graag naar: Proof of Work vs Proof of Stake: Basic Mining Guide en Proof-of-Work Explained.

En zo werkt een blockchain netwerk, easy toch?! :) Bedankt voor het lezen!

Mocht je het een interessant artikel vinden deel het dan gerust en geef het artikel een 👏 Mocht je vragen en of opmerkingen hebben dan verneem ik graag van je in de comments.

Groet! Arnold

--

--

Arnold van Sabben

I write about thinks I like: learnings, traveling & innovation | Lead Business Analyst Payments | MSc. Business Information Systems | Amsterdam