Deel deze pagina
Blogcyclus over Blockchain

Deel 1 – Wat is Blockchain en waarom is Blockchain veilig?

Blogcyclus over Blockchain

In een aantal artikelen zal Bauke Peter Steenstra, Senior Project Manager bij Fenêtre, uitleggen wat de Blockchain is, hoe de achterliggende techniek in elkaar zit en wat de toepassingsmogelijkheden zijn. Lees zijn artikelen en krijg antwoord op de vraag of Blockchain een hype is, of de toekomst van applicatieontwikkeling.

 

Introductie

Tijdens de kredietcrisis (2007) stonden een groot aantal financiële instellingen en verzekeringsmaatschappijen aan de rand van de afgrond. Ingrijpen van de overheid was noodzakelijk om faillissementen en alle andere bijkomende ellende te voorkomen. Dit gecombineerd met het feit dat hackers in die periode allerlei databases met bankgegevens als creditcards hadden bemachtigd maakte een ding duidelijk:

 “Er bestaat behoefte aan een veilige en betrouwbare digitale infrastructuur waarmee digitale bezittingen kunnen worden overgedaan van de ene naar de ander eigenaar, zonder de betrokkenheid van een centraal controlerende partij die corrupt kan zijn of fouten kan maken.”

Deze behoefte heeft begin 2009 geleid tot de start van de Bitcoin Blockchain: een digitale munteenheid waarmee betrouwbaar internationale transacties zijn uit te voeren zonder dat er een autoriteit of overheid bij is betrokken. Er is geen 'middle man' betrokken en dankzij moderne cryptografie is de Blockchain onveranderbaar. Verder heeft de Blockchain een hoge mate van beschikbaarheid en betrouwbaarheid door het gebruik een peer-to-peer netwerk voor de gegevensdistributie. Er is daardoor geen single point of failure. De basis van de peer-to-peer technologie is al gelegd in 1999 met Napster.

De Bitcoin Blockchain technologie is inmiddels volwassen geworden en toepasbaar in allerlei applicaties. In een aantal artikelen zal ik verder ingaan op mijn zoektocht naar het antwoord op de vraag of Blockchain nu een hype is, of de toekomst van applicatieontwikkeling. 

 

Blockchain – Wat is dat nu?

Een Blockchain is een gedistribueerd grootboek met gegevens die worden gerepliceerd over een groot aantal computers in plaats van opgeslagen op een centrale server. Een Blockchain bevat een gedistribueerde database en software om nieuwe rijen toe te voegen, nieuwe rijen te valideren tegen afgesproken regels en nieuwe rijen te ontvangen en uit te zenden naar alle aangesloten computers zodat al deze computers dezelfde gegevens hebben in hun databases. De opgeslagen gegevens kunnen financiële transacties zijn, maar net zo goed ook andere gegevens. In een Blockchain met een eigen digitale munteenheid zoals de Bitcoin Blockchain en de Ethereum Blockchain worden bijvoorbeeld uitgevoerde transacties opgeslagen: de overboekingen van bedragen tussen gebruikers. 

Blockchains zijn erg geschikt voor situaties waarbij meerdere partijen over dezelfde gegevens moeten beschikken, maar waarbij (door wat voor reden dan ook) er geen specifieke partij de controle over deze gegevens kan of zou moeten hebben. 

Een Blockchain bestaat uit een ketting van aaneengeschakelde blocks. Een block is het kleinste element in een Blockchain en bevat een header (onder andere index, Proof of Work getal en hash) en de opgeslagen gegevens. 

Figuur 1: Blockchain

De hash in de header is de hash van het vorige block in de Blockchain en bevat daarmee de referentie (Fingerprint) naar het vorige block. Op deze manier zijn alle blocks gekoppeld aan zijn voorganger. Als gegevens in een block op wat voor manier dan ook achteraf worden gewijzigd, dan verandert de hash van dat block en omdat de hash van de voorganger ook meegenomen wordt in de berekening van de hash van een volgend block verandert ook deze hash etc. Alle hash waardes vanaf het block dat gewijzigd is zullen daarmee dus opnieuw berekend moeten worden. Hoe verder terug in de Blockchain er een block wordt gewijzigd, hoe moeilijker dit daarom is. 

 

Proof of Work – Veel onnodig energieverbruik

Om het wijzigen van blocks nog lastiger (vrijwel onmogelijk) te maken is Proof of Work bedacht. Bij Proof of Work wordt een 'willekeurig' getal toegevoegd aan een block, waarna de hash van het block opnieuw wordt berekend totdat een geldige hash waarde wordt gevonden. Pas dan kan het block worden toegevoegd aan de Blockchain. 

De regels die bepalen of een hash waarde geldig is kunnen worden aangepast om zo sturing te geven aan het aantal geldige blocks dat gemiddeld per tijdseenheid kan worden toegevoegd door alle deelnemers. Bij de Bitcoin Blockchain is dat gemiddeld een block per tien minuten, bij de Ethereum Blockchain is dat gemiddeld een block per vier minuten. 

Deelnemers die op zoek zijn naar een geldige hash waarde voor een block om daarna een geldig block met gegevens toe te voegen aan de Blockchain doen dat omdat hier een vergoeding tegenover staat. De deelnemers voegen hiervoor zelf een transactie toe aan het block waarmee ze een kleine beloning ontvangen. 

Omdat bij een Blockchain met Proof of Work iedereen blocks kan toevoegen aan de Blockchain, kan er manipulatie plaatsvinden. Toch is dit (vrijwel) onmogelijk. Als het al lukt om meerdere valide Blockchains te laten ontstaan, wat erg veel rekenkracht kost door de Proof of Work, dan wordt uiteindelijk gekozen voor de Blockchain met de meeste valide blocks en vervalt de Blockchain met de minste valide blocks en alle bijbehorende transacties worden verworpen. Dit wordt de Longest Chain Rule genoemd. Om deze reden wordt een transactie binnen bijvoorbeeld de Bitcoin Blockchain pas als definitief beschouwd als het block waarin de transactie zich bevindt minimaal zes opvolgende blocks heeft. 

Proof of Work heeft één groot nadeel: Er wordt veel rekenkracht besteed aan de berekening van de hashes, wat weer erg veel elektriciteit kost. 

 

Proof of Stake – Energievriendelijk alternatief

Er worden ook alternatieven toegepast voor Proof of Work zoals Proof of Stake. Bij Proof of Stake is er geen beloning voor het creëren van een block. De deelnemer met de grootste Stake (de grootste hoeveelheid aan Blockchain gekoppelde crypto valuta) is degene die het nieuwe block mag aanmaken.

Deze deelnemer ontvangt een beloning (Transaction Fee) voor het verwerken van de transacties in de Blockchain. Voordeel van Proof of Stake is dat er geen onnodige rekenkracht wordt besteed aan de berekening van de hashes en dus geen onnodige elektriciteit wordt gebruikt. 

 

Het volgende artikel

In het volgende artikel ga ik in op Smart Contracts waarmee in de Blockchain naast gedistribueerde en betrouwbare opslag ook gedistribueerde en betrouwbare berekeningen mogelijk zijn en die allerlei andere toepassingen mogelijk maken.

top