Blockchain in een notendop

Geschreven door: Murat Yilmaz 

Tijdens de economische crisis in 2008 is de whitepaper “Bitcoin: A Peer-to-Peer Electronic Cash System” uitgebracht door Satoshi Nakamato. De fysieke persoon die de naam representeert is nooit gevonden. Het is daarom onduidelijk of het gaat om een man, vrouw of meerdere personen.

In deze whitepaper staat beschreven wat er mis is met het huidige financiële systeem. Ook staat er dat de problemen opgelost kunnen worden door het gebruik van Bitcoin; een digitale munt die gebaseerd is op de Blockchain technologie. Middels Bitcoin heeft Satoshi Nakamato het concept en potentie van Blockchain gedemonstreerd aan de wereld.

Maar nu: “Wat is Blockchain?” Stel deze vraag aan vijftig verschillende mensen, en je zult waarschijnlijk vijftig verschillende antwoorden krijgen. Daarom schrijf ik deze blog. Om duidelijk te maken wat Blockchain is, hoe het werkt en waar het voor gebruikt kan worden.

Wat is Blockchain en wat is het probleem dat het oplost?
Stel je eens voor dat het verkopen van je huis net zo eenvoudig wordt als het versturen van een e-mail. Blockchain maakt dit mogelijk. Voor blockchain maakt het niet uit wat er van afzender (A) naar de ontvanger (B) wordt verstuurd: een e-mail, een eigendomsbewijs van een huis, één Bitcoin of honderd Bitcoins.

De informatie die verstuurd wordt, staat digitaal opgeslagen in de Blockchain. Blockchain is een digitaal grootboek van transacties. De Blockchain staat decentraal opgeslagen op verschillende computers binnen een peer-to-peer netwerk en maakt gebruikt van wiskundige technieken om de reeds uitgevoerde transacties onmuteerbaar te maken. 

Daarnaast maakt Blockchain het gebruik van smart-contracts mogelijk. Een smart-contract is een in codetaal geschreven overeenkomst die automatisch van kracht wordt wanneer aan bepaalde omstandigheden wordt voldaan. Bijvoorbeeld: Als partij (A) een specifiek bedrag overmaakt naar partij (B), dan wordt partij (A) de eigenaar van het huis.

Omdat blockchain zorgt voor onmuteerbare transacties, zijn de belangrijkste toepassingsgebieden scenario’s waarin partijen met elkaar zaken willen doen maar elkaar niet vertrouwen. Met blockchain kun je veilig en inzichtelijk zakendoen, iedere partij heeft dezelfde informatie en er is altijd inzicht in de ‘audit trail’. Hiermee worden herhaalde en complexe controles overbodig en wordt fraude voorkomen. Overigens is het mogelijk met behulp van de smart contracts om processen te automatiseren.

Toepassingen

Benieuwd naar de inzet van een Blockchain binnen je eigen organisatie? 

Neem contact met ons op!

Meer informatie:
Blockchain – Expertise

Integriteit in de voedselketen

Partij (A) verkoopt grondstof aan partij (B). Na enkele weken zal de betaling plaatsvinden. Welke data vertrouwen we als ze niet overeenkomen? Blockchain zorgt ervoor dat data niet kan veranderen en dat de afhankelijkheid aan een vertrouwde partij komt te vervallen.

Het financiële systeem

De bank wordt gezien als de vertrouwde tussenpartij. Wij kunnen allemaal geld storten, opnemen en overmaken. Maar dit vertrouwde element kost veel geld, is niet altijd betrouwbaar en brengt onnodig complexiteit met zich mee. Zo zijn er in Amerika records aangepast waardoor bedrijven 640 miljard dollar hebben gekregen, dat geld heeft nooit bestaan. Blockchain zorgt ervoor dat een vertrouwde tussenpartij overbodig wordt.

Traceerbaarheid in de voedselketen

Boeren verkopen grondstoffen aan leveranciers. De leveranciers verwerken deze grondstoffen en verkopen het product aan de supermarkten. Zij verkopen het weer door aan de consumenten. De consumenten willen via een app informatie over een product verschaffen. Ze willen zien waar de grondstoffen van het product vandaan komen, door wie het is geproduceerd en door welk bedrijf het is verwerkt. 

Verkiezingen

Er wordt bijgehouden wie heeft gestemd zodat je niet meerdere keren kan stemmen. Deze data is opgeslagen in een database. Deze database staat onder de controle van een instantie, weet je zeker dat die betrouwbaar is? Zo niet? Kies dan voor Blockchain; voor onmuteerbare data, decentraal, anoniem en uit handen van een autoriteit.



Hoe werkt Blockchain?
Het grootboek/blockchain bevat blokken. Zie dat als bladzijdes uit een grootboek. Deze blokken bevatten transacties, zoals regels op een bladzijde. Deze blokken zijn verdeeld in secties “Header” en “Body” en bevatten eenieder een “Hash”. 

 

Wat is een hashfunctie precies? Een hashfunctie is nodig om een hash te genereren en werkt als volgt: Geef de functie een input, de functie zal aan de hand van de input een output genereren. 

Wijzig je de input? Dan zal je gegarandeerd een totaal andere output krijgen


Daarnaast zijn hashes deterministisch. In dit geval wilt dat zeggen dat “OVSoftware” altijd dezelfde hash zal genereren.

Als je goed kijkt, zie je dat ieder blok een hash heeft. Deze hash wordt gegenereerd door de inhoud van het blok als input mee te geven aan een hashfunctie. Je ziet ook dat ieder blok de hash van de vorige blok bevat. Dit betekent dat een wijziging in Blok1 de hash van Blok1 verandert. Hierdoor wordt de hash van Blok2 ook gewijzigd, aangezien zijn hash gebaseerd is op de hash van het vorige blok. Hetzelfde gebeurt voor alle blokken na het gewijzigde blok. Deze chainstructuur in combinatie met een consensus algoritme maakt Blockchain extreem veilig. Meer over concensus algoritme in het volgende kopje.

Wat is “Consensus Algoritme”?
Blokken van transacties worden niet zomaar aan de Blockchain toegevoegd. Dat brengt namelijk problemen zich mee, zoals: ‘double spending’.
Om dat soort problemen te voorkomen wordt er gebruik gemaakt van een consensus algoritme. 

Er  bestaat een tal aan consensus algoritmes,; denk aan ‘Proof of Work’, ‘Proof of Stake’, ‘Proof of Burn’ etc. De meest gebruikte daarvan hiervan is Proof of Work. Dit consensus algoritme wordt bijvoorbeeld gebruikt door Bitcoin.

Proof of Work houdt in dat ‘Miners’ een wiskundig puzzel moeten oplossen alvorens een blok aan de Blockchain mag worden toegevoegd. Miners zijn mensen die zeer geavanceerde computers hebben om de puzzel zo vlot mogelijk op te lossen. Is de puzzel opgelost, dan wordt het blok gebroadcast naar het netwerk. Alle nodes binnen het netwerk valideren het antwoord. Als het antwoord correct is, wordt het blok toegevoegd aan de blockchain en wordt de desbetreffende Miner beloond met een bepaalde hoeveelheid aan Bitcoins.

Het oplossen van de puzzel werkt door de nonce-waarde in de header van het blok herhalend te verhogen. Bij iedere herhaling wordt de hash over het blok opnieuw gegenereerd.Het is de bedoeling dat je hash begint met een aantal nullen. De hoeveelheid daarvan wordt bepaald door de moeilijkheidsgraad. Op dit moment is de moeilijkheidsgraad van Bitcoin extreem hoog. Eén blok kan gemiddeld per tien minuten worden toegevoegd aan de Blockchain. Daarom is de kans dat je de puzzel oplost erg klein. Hoe meer computerkracht er onstaat binnen het netwerk, hoe lastiger de moeilijkheidsgraad wordt gemaakt om de tienminutenregel in stand te houden.    

Mocht een hacker een transactie binnen een blok willen aanpassen, dan zal hij vanaf het eerste blok en de daarop volgende blokken de wiskundige puzzel moeten oplossen. Daarnaast zal de hacker ervoor moeten zorgen dat zijn of haar eigen lokale blockchain langer te maken dan de main chain. Vanwege de longest-chain regel wat betekend dat de langste chain als de main chain wordt beschouwd. Om dit voor elkaar te krijgen dient de Hacker 51% van de computing-power in handen te hebben, anders is hij namelijk niet snel genoeg om de langste-chain te genereren!

Evolutie van Blockchain
Als we spreken over Bitcoin dan hebben we het over de eerste generatie Blockchain.

De reden achter de oprichting van Bitcoin was om het bestaande geldsysteem te verbeteren (of zelfs te vervangen door een geheel nieuwe technologie). Op dit moment wordt Bitcoin vooral gebruikt om financiële waarde op te slaan, je kan het vergelijken met Goud. Beide zijn schaars, transporteerbaar en deelbaar. Een ideale manier om financiële waardes te behouden over jaren van recessies en inflaties.

De tweede generatie Blockchain maakt het mogelijk om een eigen unieke Blockchain oplossingen te realiseren. Zo kan je gebruik maken van Ethereum (een publieke Blockchain netwerk) om informatie naar keus op te slaan, maar ook programmeerbare software (Smart Contracts) kan opgeslagen worden in de Blockchain. Software om bijvoorbeeld op een bepaald moment een bepaalde waarde over te maken naar een specifiek persoon onder bepaalde omstandigheden. 

Daarnaast worden er op dit moment protocollen ontwikkeld om het publieke blockchain als referentiekader te gebruiken om privé Blockchain usescases mogelijk te maken. Daarbij worden Zero Knowledge Proof (ZKP) hashes opgeslagen in het publieke Blockchain netwerk in plaats van de originele data zelf. ZKP is een manier om wiskundig te bewijzen dat je bekend bent met een geheim, zonder het geheim te hoeven delen. Dit soort protocollen zorgen er tevens voor dat bedrijven gebruik kunnen blijven maken van hun eigen ERP systemen en dat blockchain daar naadloos op aansluit!


Wanneer maak je gebruik van Blockchain?

Het is uiteraard belangrijk om te weten of je gebruik hoort te maken van de Blockchaintechnologie en van welke variant. Je kan je voorstellen dat je data niet altijd op de publieke blockchain wilt hebben staan. Denk bijvoorbeeld aan de voedselketen. Bedrijf (C) mag niet weten waar bedrijf (B) haar product van heeft gekocht, anders zou bedrijf (C) net zo goed direct handel kunnen drijven met bedrijf (A). In dat geval maak je gebruik van een Private Permissioned Blockchain.

In dit diagram kan je volgen om erachter te komen of je gebruik dient te maken van Blockchain en van welke variant. 


Wie gaat mij hierbij helpen?
Bij OVSoftware zijn meerdere Blockchain proof-of-concept projecten ontwikkeld. Daarnaast is er een eerste product voor een klant ontwikkeld. OVSoftware gebruikt Blockchain als een één van de mogelijke oplossingen om een klantprobleem op te lossen. Vanuit een kennisgroep wordt de Blockchainkennis onderhouden en gedeeld, waarbij ook contacten onderhouden worden met anderen bedrijven. – Murat Yilmaz