In het dagelijks leven sluiten wij ontzettend veel overeenkomsten met elkaar. Waar wij niet bij stilstaan is de definitie die de wetgever hieraan geeft, namelijk: een overeenkomst komt tot stand door aanbod en aanvaarding tussen twee of meerdere personen (artikel 6:217 BW). Beide gedragingen (aanbod – aanvaarding) geschieden middels een zogenaamde ‘wil en verklaring’ (artikel 3:33 BW). Voor de beide gedragingen geldt dat er vertrouwen dient te zijn in hetgeen wat een persoon tegenover de ander zegt. Mocht dat niet zo zijn dan schrijft de wetgever een aantal procedures voor om het gebrek bij wilsovereenstemming te repareren of juist te bevestigen. Om niet al te peilloos te worden inzake het materieel recht wil ik middels deze blog ingaan op het (ontbreken in relatieve zin) vertrouwensaspect binnen het blockchian systeem en hoe het systeem dat aspect reguleert.
Wat blockchain doet is het ter beschikking stellen van een systeem waarbij men gegevens of informatie kan vastleggen. De vastlegging geschiedt digitaal middels wiskundige formules. Wat een blockchain doet is het minimaliseren van het vertrouwen tussen verschillende actoren in het systeem. De blockchain stimuleert de gebruikers ervan om samen te werken met een aantal vooraf geschreven regels om de gewenste doelen te bereiken.
Voorbeeld:
Persoon A en persoon B willen een transactie sluiten met betrekking tot de verkoop van een mobiele telefoon. Beide personen zijn (moeten) fysiek aanwezig tijdens het executeren van de transactie. A wordt eigenaar van een nieuwe mobiele telefoon en B ontvangt daarvoor contant een geldbedrag. Twee factoren die daarvoor van belang zijn:
- Authenticiteit: de feitelijke koper overhandigt het geld, en
- Geen dubbele uitgaven: Biljetje van €50 euro is niet nep, wordt gecontroleerd en geaccepteerd door B.
Uiteraard gelden deze factoren tevens voor wanneer mensen via elektronische weg (bol.com) een transactie aangaan.
Als dit ons uitgangspunt moet zijn, waarbij fysieke aanwezigheid een must is dan hebben wij in relatieve zin een zeer beperkt transactiesysteem bedacht. Immers, twee personen mogen enkel met elkaar een transactie aangaan waarbij fysiek aanwezigheid een must is. Dit beperkt ons economische vrijheid waardoor de economie nimmer op grote schaal kan functioneren.
Wat wij in ieder geval willen is een manier bedenken waardoor er een tussenpersoon wordt ingeschakeld die de overdracht van het geldbedrag kan faciliteren. Dit zorgt ervoor dat de daadwerkelijke koper het geld verzendt en waarbij de koper niet aan de echtheid van het geldbedrag hoeft te twijfelen. Graag wil ik benadrukken dat het in casu gaat om het hebben van vertrouwen een tussenpersoon en niet de hoedanigheid van de situatie.
Wie moet dan hiervoor zorgdragen als betrouwbaar tussenpersoon?
Betalingen via traditionele financieringskanalen gebeuren via tussenpersonen (financiële instellingen met bepaalde rollen en het niveau van vertrouwen). Deze financieringskanalen worden ook wel als ‘gecentraliseerde systemen’ aangeduid. Veel organisaties hanteren een gecentraliseerd systeem waarbij een groep mensen centrale controle heeft over de organisatie. Hierbij kun je denken aan banken; betalingsproviders (zoals, Adyen); een overboekingsmaatschappij (Western Union) of een creditcardmaatschappij (Visa).
Voor het traditionele financieringskanaal nemen wij gemakshalve de ING-bank. ING dient de transactie te verifiëren en garanderen dat uit ons voorbeeld, persoon B een echt biljet van €50 euro ontvangt. Met andere woorden, tenzij er een directe fysieke overdracht van waarde van het ene individu naar het andere is, moet er een tussenpersoon zijn die we kunnen “vertrouwen”. De vraag die beantwoord moet worden is: moeten wij per se een gecentraliseerd systeem hebben waarbij een derde deze verificatie stappen op zich neemt?
Blockchains zijn niet anders of toch wel?
Blockchains definiëren een protocol (werkwijze) waarmee twee personen met elkaar kunnen communiceren op een “peer-to-peer” manier via het internet. Peer-to-peer is een netwerk zonder centrale server. Partijen kunnen middels dit systeem transacties met elkaar aangaan waarbij het vertrouwen gebaseerd is op het onderliggende netwerk. In tegenstelling tot de traditionele financieringskanalen vertrouw je niet op een ‘derde’ (ING of de notaris) die de transactie gaat verifiëren maar het onderliggende blockchian-systeem om de overdracht zowel mogelijk te maken als de authenticiteit van de afzender en valutaveiligheid te waarborgen.
Bij een “gecentraliseerd” systeem vertrouwen we erop dat een derde partij (Notaris of de ING-Bank) optreedt als een tussenpersoon die deze twee eigenschappen garandeert; in een “gedecentraliseerd” systeem wordt ons vertrouwen elders geplaatst, namelijk in cryptografie met openbare sleutel en een “consensusmechanisme” waarmee we de waarheid kunnen bepalen.
Cryptografie in de praktijk
Publieke sleutel cryptografie maakt gebruik van:
- Een set openbare sleutels die zichtbaar is voor iedereen; en
- Een set privésleutels die alleen zichtbaar is voor de eigenaar.
Middels deze privé sleutel kan men zogenaamde “digitale handtekeningen” plaatsen voor elke blockchain transactie. Bij traditionele gevallen zou je het kunnen vergelijken met je pincode. Je bevestigt met andere woorden dat jij degene bent die de transactie verricht omdat jij enkel degene bent althans hoort te zijn, die over de pincode beschikt.
Authenticiteit door:
- Bevestigen dat de transactie afkomstig is van de gebruiker, en
- Voorkomen dat de transactie door iemand wordt gewijzigd nadat deze is uitgegeven.
Wanneer men ooit zou proberen om de transactie te wijzigen dan zal het systeem dat weigeren. Tot zover wat betreft de verificatieprocedure.
Hoe zit het dan met het voorkomen van dubbele transacties?
Om dubbele transacties te voorkomen dient er een logboek bijgehouden te worden. Hierin wordt bijgehouden (via o.a. public key) wie de eigenaar is van het geldbedrag.
Dit is waar het “consensussysteem” – dat ons in staat stelt om een digitaal gedeelde waarheid te bewaren – in het spel moet komen.
Machine Consensus
Blockchains hebben een gedeeld grootboek dat ons de absolute waarheid van de staat van het systeem weergeeft. Het gebruikt wiskunde, economie en speltheorie om alle partijen in het systeem te stimuleren om een ”consensus” te bereiken (een overeenstemming te bereiken over één enkele status van dit grootboek).
Gemakshalve nemen wij de onderliggende blockchain technologie van Bitcoin als voorbeeld. Het Bitcoin-protocol heeft een consensusalgoritme genaamd “Proof of Work” dat het systeem bij elkaar houdt. Om een transactie tussen twee consumenten af te wikkelen, vereist het algoritme dat een verzameling knooppunten (“mijnwerkers” genoemd) met elkaar wedijveren om transacties te valideren door een complex algoritmisch probleem op te lossen. Met andere woorden, Bitcoin “stimuleert economisch” mijnwerkers om computerkracht aan te schaffen en te gebruiken om complexe problemen op te lossen. Deze economische prikkels zorgen ervoor dat:
- Mijnwerkers die transactiekosten verdienen die gebruikers betalen voor het uitvoeren van een transactie en;
- Mijnwerkers die nieuwe Bitcoins verdienen voor het succesvol oplossen van de puzzel.
Vanwege deze economische prikkels zoeken mijnwerkers constant in het netwerk naar opdrachten zodat ze een nieuwe reeks transacties aan het blokchainsysteem kunnen toevoegen. Vervolgens gebruiken ze hun computerbronnen om het complexe algoritme op te lossen om te “bewijzen” dat het systeem werkt en betrouwbaar is.
De eerste mijnwerker die het algoritme heeft opgelost, voegt het bewijs en het nieuwe blok (en alle transacties daarin) toe aan de blockchain en verzendt deze naar het netwerk. Op dat moment synchroniseert iedereen in het netwerk de nieuwste blockchain immers, dat is de “waarheid” waarin iedereen gelooft.
Elk nieuw blok dat op deze manier aan de blockchain wordt toegevoegd, voegt meer beveiliging toe aan het systeem omdat een aanvaller die nieuwe blokken wil maken de puzzel consistent sneller moet oplossen dan iemand anders in het netwerk. Dit is praktisch onmogelijk om te doen, waardoor het onmogelijk is om de gegevens binnen deze blokken te wijzigen. Dit is de reden waarom de gebruikers van het systeem het systeem blijven vertrouwen.
Dus wanneer we met elkaar transacties uitvoeren op de blockchain, verankeren we ons vertrouwen in de mijnwerkers die hun middelen opgeven om het werk te doen zodat er geen dubbele uitgaven worden gedaan.
Conclusie
Wanneer we zeggen dat blockchian ‘geen vertrouwen’ nodig heeft, dan bedoelen we dat er mechanismen zijn waarmee alle partijen in het systeem een consensus kunnen bereiken over wat de canonieke waarheid is. Kracht en vertrouwen worden gedistribueerd (of gedeeld) onder de belanghebbenden van het netwerk (bijvoorbeeld ontwikkelaars, mijnwerkers en consumenten), in plaats van geconcentreerd in één persoon of entiteit (ING-Bank).
Binnen het Blockchain systeem is het vertrouwen meer ‘gedistribueerd’ dat wil zeggen men vertrouwt iedereen in totaal. Dit vertrouwen wordt veroorzaakt vanwege het feit dat iedere gebruiker van het systeem (middels consensus) een overeenstemming heeft bereikt m.b.t. de wijze van het gebruikt van dat systeem. Dan schrijft niet de wetgever over (die gebonden is aan nationale grenzen van een land) hoe men overeenkomsten met elkaar dient aan te gaan, maar een samenhang van wereldwijde gebruikers van het systeem. Die geven samen aan hoe en onder welke voorwaarde men met elkaar overeenkomsten aangaat. Tot slot zou je hiermee kunnen concluderen dat bij Blockchain het vertrouwen niet moet bestaan tegenover je wederpartij maar in het systeem!
Hieronder gerelateerde onderwerpen:
Afbeelding: Marcos Mayer