De opbouw van een Blockchain

Een blockchain is een model dat is opgebouwd uit zogenaamde blokken (block), die aan elkaar zijn gekoppeld (chain). Elk blok bestaat uit zeven lagen en elke laag heeft een eigen doel. Daarover later meer.

Een blok staat altijd verbinding met het vorige en het volgende blok. Elk blok heeft een laag met een lange generieke code van letters en cijfers, een bloknummer en timestamp. Dankzij deze elementen zitten de blokken verankerd in chronologische volgorde.

Elk blok bevat een unieke generieke code van het vorige blok (de “Hash of Previous Block Header”)

Hoewel de blockchain niet kan worden gemanipuleerd, kunnen er wel nieuwe blokken worden toegevoegd. Voorwaarde daarbij is dat elk nieuw blok altijd aan het vorige blok is gekoppeld en dat het nieuwe blok bestaat uit een timestamp, een bloknummer en een nieuwe puzzelopdracht.

Deze puzzelopdracht kan een hoge of lage moeilijkheidsgraad hebben. Een programma met voldoende rekenkracht kan de opdracht binnen een bepaalde tijd oplossen en zo een nieuw blok ontdekken. Het programma krijgt een beloning in de vorm van nieuwe tokens of coins en mag de transacties van de wachtlijst naar het blok verplaatsen. Zo worden de nieuwe transacties bevestigd en verankerd in de blockchain.

Het oplossen van een dergelijke puzzelopdracht, noemen we minen. Minen is in feite niets anders dan zoeken naar een geldige uitkomst en die uitkomst vormt dan weer een nieuwe puzzelopdracht in het nieuwe blok. Computer A en computer B proberen beide de puzzelopdracht op te lossen. Als computer B de puzzelopdracht eerder oplost dan computer A, eist computer B de beloning op. Computer A en B strijden dus met elkaar om als eerste de beloning te bemachtigen.

Dankzij de beloningen ontstaat er een financiële stimulans om nieuwe blokken en transacties toe te blijven voegen aan de blockchain. Hierin wordt veel energie gestoken, afhankelijk van de hoogte van de moeilijkheidsgraad. Dit wordt Proof of Work (Bewijs van Werk) genoemd.

We weten nu hoe en waarom een blockchain groeit en hoe miners (programma's die puzzelopdrachten oplossen) daartoe financieel gestimuleerd worden, maar hoe zien de blokken er van binnen uit?

In de volgende video wordt met behulp van een Lego-animatie duidelijk uitgelegd hoe de blokken er van binnen uitzien: https://www.youtube.com/watch?v=134FGbsJlGQ

Een blok in de blockchain bestaat uit meerdere lagen:

  1. Versie van het blok
  2. Unieke generieke code van het vorige blok (nodig voor verankering)
  3. Timestamp
  4. Bits: berekende moeilijkheidsgraad voor het oplossen van puzzel door miners
  5. Nonce: unieke code gerelateerd aan het ontdekken van de volgende blok en het verifiëren daarvan
  6. Transacties
  7. Merkle root (hash van alle transacties die zijn gekoppeld aan het blok)

De lagen 1 t/m 5 voorkomen samen dat de blockchain kan worden gemanipuleerd; de miners kunnen op deze punten onmogelijk valsspelen. Ze moeten eerst de nieuwe puzzelopdracht oplossen en kunnen pas daarna nieuwe transacties aan een blok toevoegen. Het toevoegen van een transactie is echter niet verplicht en een miner ontvangt geen beloning als er geen transactie wordt toegevoegd. Elke transactie die naar de blockchain wordt verstuurd, bestaat uit de bestemming, de waarde van de transactie en de beloning voor de miner. Als de beloning hoog genoeg is, dan kan de miner overwegen om de beloning op te nemen in het nieuwe blok en de beloning daarmee op te eisen.

Door dit systeem ontstaat een nieuw economisch spel op internet, zonder voorkeuren en op basis van pseudoniemen. Miners kijken alleen naar de beloningen van nieuwe blokken en transacties en gaan met elkaar de strijd aan om de eerstvolgende puzzelopdracht op te lossen. Daarmee beveiligen ze meteen de blockchain.

Door de toenemende moeilijkheidsgraad moeten de miners steeds met extra rekenkracht komen om competitief te blijven. Als gevolg daarvan raakt de blockchain steeds beter beveiligd. De bitcoin blockchain is dan ook een efficiënte maar dure manier om digitale assets te verankeren en versturen.

Een blockchain hoeft niet altijd voortgebouwd te worden door miners, zoals bij publieke blockchains (bijvoorbeeld voor bitcoin of ethereum) het geval is. Een blockchain kan ook worden gebruikt in een gesloten omgeving met een beperkt aantal deelnemers.

De blockchaintechnologie is handig voor het maken van archieven/annalen, voor de opslag van gevoelige informatie zoals patiëntgegevens, klantinformatie, bankgegevens, identificatiebewijzen, vluchtgegevens en andere persoonlijke gegevens of bedrijfsinformatie. In principe is een blockchain een veredelde database en kan dergelijke informatie ook worden opgeslagen in een standaard database. Voor een kleine bedrijfsomgeving heeft een blockchain dan ook weinig toegevoegde waarde, maar een netwerk van bedrijven die informatie met elkaar (willen) delen, kunnen veel voordelen halen uit dit systeem.

In tegenstelling tot een gewone database heeft een blockchain een decentrale/gedistribueerde vorm, waardoor het eenvoudiger wordt informatie op te slaan en uit te wisselen via beveiligde verbindingen. Bovendien beschikt elk deelnemend bedrijf over een eigen virtueel grootboek (de zogenaamde nodes van de blockchain) dat de grootboeken van andere bedrijven controleert en democratisch stemt over het verwerken van nieuwe transacties en over de toegangsrechten van de gegevens.

Elke blockchain kan voor een bepaald doel worden gevormd, omdat blockchain een opensource-technologie is die op maat kan worden gemaakt. Als bijvoorbeeld ING deze technologie toepast, kan de blockchain bestaan uit kleine maar snelle blokken, zodat transacties snel kunnen worden verwerkt. Het voordeel voor ING van een eigen blockchain op maat is dat gegevens inzichtelijker worden. Een blockchain met grotere maar tragere blokken is bij uitstek geschikt voor de opslag van gevoelige documenten, bijvoorbeeld van een bedrijf als Deloitte, dat daardoor efficiënter informatie kan delen met gekoppelde bedrijven als IBM en Microsoft.

Consensus speelt een belangrijke rol bij de bedrijven die deel uitmaken van de blockchain, omdat er 100% overeenkomstigheid moet zijn wanneer er nieuwe transacties worden ingevoerd of ingezien. Dit maakt het voor aanvaller extra lastig om de records te manipuleren of in te zien, want bij elke handeling is er altijd toestemming van andere nodes nodig. Een afwijkende handeling die door een aanvaller wordt uitgevoerd, zal worden geweigerd. Dit wordt node-voting genoemd. Een node die zich afwijkend gedraagt, zal uit het netwerk worden verwijderd of wordt gedwongen om de gegevens in zijn grootboek af te stemmen op die van de andere nodes.

Een ander voordeel van gedistribueerde netwerken ten opzichte van gedecentraliseerde/gecentraliseerde netwerken is dat een gedistribueerd netwerk vrijwel altijd bereikbaar is. In het geval van de bitcoin blockchain is het draaien van een bitcoin-client al voldoende om deel uit te maken van het netwerk. Deze client kan bijvoorbeeld worden toegepast in een koffieautomaat, snoepautomaat of pinautomaat, waarna de automaat een uptime van 100% heeft. Een gecentraliseerd/gedecentraliseerd netwerk, bijvoorbeeld een KPN-netwerk, dat enkele uren uit de lucht is, kan leiden tot oponthoud in het betalingsverkeer en dus tot betaal- en serviceproblemen.

Bron: http://bitcoinuptime.com/

Het netwerk blijft ook online tijdens updates aan clients en nodes.

Bij het verhandelen van goederen, het overdragen van waardevolle objecten of het maken van afspraken is het vrij gebruikelijk dat er een tussenpersoon (middleman) is om alles te verifiëren. In dergelijke situaties is vertrouwen een voorwaarde voor het handelen of voor het maken en nakomen van afspraken. Omdat een blockchain een gedistribueerd grootboek is, is een tussenpersoon overbodig. De informatie is immers via de blockchain vastgelegd en geverifieerd. Er ontstaat dus een vorm van samenwerking waarbij vertrouwen geen belangrijke rol meer speelt, omdat vertrouwen wordt vervangen door verifiëren.

In de volgende video is te zien hoe een overheidsorgaan de blockchaintechnologie inzet als gedistribueerd grootboek voor eigen doeleinden:

Laten we eens kijken naar een situatie waarin een vertrouwensloze omgeving handig is. Een cliënt wil een lening afsluiten bij een bank en de bank wil weten of de cliënt daarvoor over voldoende kapitaal beschikt. De cliënt kan natuurlijk door middel van een bitcoin-adres tonen dat hij de lening kan dragen, maar hoe weet de bank dat dit bitcoin-adres van hem is? Het adres kan natuurlijk ook van iemand anders zijn. De bank in kwestie verzoekt de cliënt bewijs aan te leveren. Dit kan op twee manieren:

  1. De cliënt verstuurt het kapitaal van zijn adres naar een ander adres dat ook van hem is. Vervolgens stuurt de cliënt een transactie-ID naar de bank. Deze transactie-ID is door iedereen in te zien.

De cliënt stuurt van zijn adres een bericht naar het adres van de bank en mailt de sleutel voor dit bericht naar de bank. Met deze sleutel kan de bank het bericht verifiëren.

Nu kennen we de details van het blockchainmodel: het bestaat uit blokken die aan elkaar zijn gekoppeld en een blockchain kan in gedistribueerde of gedecentraliseerde vorm worden ingezet in een eigen bedrijfsomgeving. Een blockchain kan ook samen met aantal bedrijven worden opgezet voor effectieve gegevensuitwisseling. De transacties die in de blokken zijn opgenomen kunnen niet worden gemanipuleerd, maar de blockchain kan wel worden uitgebreid met nieuwe transacties. Dankzij node-voting en mining is de blockchain moeilijk te kraken; er is immers altijd volledige consensus tussen nodes vereist. De bitcoin blockchain is tot nu toe onkraakbaar gebleken en heeft daarom een veilige "Value of Storage". Dit wordt in het volgende hoodstuk verder uiteengezet.


Complete and Continue