Blockchain - de eenvoudigste inleiding en toepassingen

Deze blog is oorspronkelijk geschreven door Nanning de Jong. De blockchain context en vier basisprincipes - een kader om inzicht te krijgen in wat blockchain is 2016 stond voor mij in het teken van blockchain en het ontwikkelen van concepten voor zakelijke blockchaintoepassingen.

Deze blog is oorspronkelijk geschreven door Nanning de Jong.

De blockchain context en vier basisprincipes - een kader om inzicht te krijgen in wat blockchain is

2016 stond voor mij in het teken van blockchain en het ontwikkelen van concepten voor zakelijke blockchaintoepassingen. Je hebt in de media waarschijnlijk al veel gehoord over blockchain en je weet wellicht dat de technologie en bijbehorende blockchain toepassingen (nog) niet eenvoudig te begrijpen zijn. Arno Laeven, voorheen hoofd van Philips Blockchain Lab, zegt hierover: "Het is een onderwerp dat bestudeerd moet worden, en dat kost tijd.” Dit is iets dat ik heb geleerd toen ik bij Tymlez, een blockchain‑start-up, werkte en workshops en pilots deed bij advocatenkantoren, notarissen, banken, verzekeraars, ICT-bedrijven en overheidsinstanties.

De volgende methode om mensen bekend te maken met blockchain, bleek in de praktijk goed te werken. Ze konden deze reproduceren en gebruiken als kader om te brainstormen over blockchaintoepassingen. De technologie en algoritmen worden hier uiteraard versimpeld uitgelegd. Laat het mij weten als dit je helpt om de basisbeginselen te begrijpen!

Download dit blockchain-artikel of PDF.

Context: blockchain is een automatiseringstechnologie

Blockchain is een automatiseringstechnologie die in het verlengde ligt van veel andere automatiseringstechnologieën, zoals mainframes, serverclients, peer-to-peer en cloudautomatisering. Deze zijn in verschillende perioden ontwikkeld en bedoeld voor verschillende soorten hardware en applicaties. Bij veel bedrijven en instanties zijn ze overigens nog steeds in gebruik. Overheidsinstanties en grote banken maken bijvoorbeeld nog altijd gebruik van mainframes en de bijbehorende programmeercode uit de jaren zeventig. Blockchain is de nieuwkomer in dit gedifferentieerde IT-landschap. Waardoor onderscheidt blockchain zich dan van al die andere automatiseringstechnologieën?

Eerst een stukje geschiedenis. De eerste blockchain toepassing was de digitale Bitcoin-valuta in 2009: een uitvinding die grote invloed kan hebben op onze manier van bankieren. Met Bitcoin is het overmaken van geld naar andere landen net zo makkelijk en goedkoop als het sturen van een e-mail naar het buitenland. Sindsdien zijn er nog veel andere digitale valuta's ontwikkeld, zoals Litecoin en Monero. In 2015 kwam er een tweede generatie blockchains op de markt, met Ethereum als belangrijkste speler. De technologie bood nu uitgebreidere functionaliteit, die van belang was voor diverse andere sectoren dan de bankwereld, en stimuleerde de ontwikkeling van een groot aantal nieuwe blockchaintoepassingen voor bedrijven en overheden. In de volgende secties ga ik in op de vier basisprincipes.

Blockchain-principe 1: een niet-wijzigbare keten van gegevensblokken opbouwen in de loop van de tijd

Een blockchain biedt een nieuwe manier van gegevensopslag; hierbij worden alle geschreven gegevensblokken met elkaar verbonden via cryptografie. Theoretisch kan het gaan om allerlei soorten gegevens, zoals transactiegegevens, documenten of zelfs video. Voor de meeste blockchain-ontwerpen geldt echter dat hoe kleiner het pakket is, hoe beter. Een 'hash' is een cryptografisch algoritme dat sinds een jaar of 25 wordt gebruikt en waarmee een 'vingerafdruk' van een digitaal bestand (of blok) wordt gemaakt, zodat het bestand een unieke identificatie krijgt. Als één enkel bit in het bestand wordt veranderd, komt de nieuwe hash niet overeen met die van het oorspronkelijke bestand. Hashes vormen het bewijs voor de hele keten van een blockchain dat alle gegevens in de blokken authentiek zijn en niet onrechtmatig zijn gewijzigd. De hash van een gegevensblok wordt opgeslagen in het volgende blok, zodat alle blokken met elkaar worden verbonden in de keten die in de loop van de tijd ontstaat (zie het volgende diagram).

Waarom is dit van belang? Deze functionaliteit zorgt bijvoorbeeld voor een audittrail van de opgeslagen gegevens. Deze maakt inzichtelijk wie welke gegevens heeft opgeslagen en bewijst dat de gegevens authentiek en niet onrechtmatig gewijzigd zijn. Dit is belangrijk voor blockchain toepassingen bij organisaties waar de betrouwbaarheid van gegevens een belangrijke rol speelt, zoals in de overheid, de farmaceutische en financiële sector (bijvoorbeeld voor naleving van de regelgeving), en bij accountancy-, notaris- en advocatenkantoren.

Blockchain-principe 2: de keten wordt gedistribueerd naar alle deelnemende partijen

De groeiende keten zoals genoemd bij het eerste principe kan nog steeds opgeslagen en gebruikt worden door één partij. Blockchains zijn echter extra betrouwbaar, omdat de complete keten gedeeld wordt met en gedistribueerd wordt naar andere partijen (andere computer-knooppunten of nodes). Alle partijen kunnen een exacte kopie van alle gegevens en het bijbehorende bewijs van de keten krijgen, en nagaan of deze kopieën identiek (gesynchroniseerd) blijven. Zo is het nog moeilijker om de gegevens onrechtmatig te wijzigen.

Het interessante is dat er hier geen overheersende centrale partij is: er is geen ‘vertrouwde derde partij’, zoals een bank, die de controle uitoefent over alles. Een blockchain kan, afhankelijk van het ontwerp en de implementatieopenbaar zijn voor iedereen die wil meedoen (net als het internet), of besloten zijn, dat wil zeggen gereserveerd voor een bepaalde groep partijen (zoals een intranet). Hybride modellen met meer gedifferentieerde lees- en schrijfmachtigingen zijn ook mogelijk. Deze functionaliteiten creëren nieuwe kansen voor mensen en organisaties die samenwerken. Denk bijvoorbeeld aan het ontwikkelen van toepassingen voor platforms voor co-creatie, het faciliteren van de samenwerking in consortiums en het automatiseren van processen met veel verschillende stakeholders, zoals overheidsinstanties of logistieke ketens. Blockchains, voorzien van de juiste toegangsrechten en beveiligd met gegevensversleuteling, kunnen ook dienen als systeem voor elektronische patiëntendossiers en juridische dossiers.

Blockchain-principe 3: de partijen moeten consensus bereiken over de gegevens die in het laatste blok worden opgeslagen

Het moeilijke deel van dit gedistribueerde netwerk is het bereiken van een consensus over de inhoud van het laatste gegevensblok. Er bestaan diverse geautomatiseerde methoden voor de besluitvorming hierover: het Bitcoin-netwerk gebruikt cryptografische algoritmen om een besluit te nemen aan de hand van 'proof of work' (bijvoorbeeld 'mining'), maar andere systemen maken gebruik van stemmechanismen en 'proof of stake'. Deze methoden verschillen qua veiligheidsniveau en snelheid, en het ontwerp en de implementatie voor verschillende blockchains kan worden aangepast voor specifieke gebruikssituaties en toepassingen. Er is geen consensus mogelijk als de groep partijen (knooppunten of 'nodes') geen overeenstemming weet te bereiken over de gegevens (en hashes) die in het laatste blok moeten worden opgenomen.

Waarom is dit van belang? Het consensusmechanisme zorgt ervoor dat de blockchain-exemplaren gesynchroniseerd en betrouwbaar blijven, zodat alle partijen met een gezamenlijke bron van waarheid ('single source of truth') kunnen werken. Aanvankelijk was dit bedoeld voor Bitcoin om het probleem van 'dubbele uitgaven' te voorkomen. Voor het eerst kon worden bewezen (zonder vertrouwde derde partij) dat dezelfde digitale munt niet frauduleus meerdere keren kon worden uitgegeven. Dit is belangrijk voor het bewijzen van het eigendom en de transacties van alle digitale goederen, zoals digitale valuta, digitale afbeeldingen, enzovoort. Een ander voordeel van een 'single source of truth' is dat hiermee de kwaliteit van de gegevens voor organisaties wordt verbeterd. Grote organisaties, zoals overheden, banken en logistieke ketens, wisselen vaak gegevensbatches uit tussen afdelingen of organisaties en bij elke stap worden die gegevens verrijkt. Uiteindelijk werken alle afdelingen en organisaties met enigszins afwijkende gegevens en het kan lastig en duur zijn om deze weer te herstellen.

Blockchain-principe 4: programmeercode kan worden opgeslagen en uitgevoerd in blockchains (smart contracts / gedecentraliseerde apps)

De gegevens in een blockchain kunnen logica, procedures en programmeercode bevatten die veilig worden gesynchroniseerd tussen alle partijen, en die kunnen worden uitgevoerd op een gedecentraliseerde manier. Dit is de meest innovatieve en minst begrepen functie van blockchains. De eerste toepassingen waren de 'smart contracts' in het Bitcoin-netwerk, waar transacties met digitale munten voorwaardelijk kunnen worden uitgevoerd met behulp van 'als-dit-dan-dat'-instructies. Op die manier kan bijvoorbeeld een verzekeringsservice worden ingesteld, waarbij de overdracht van digitale munten afhangt van specifieke weersomstandigheden (zoals hagel) op een bepaalde locatie of van een vertraagde vlucht (InsurETH). Een dergelijk 'smart contract' kan automatisch worden uitgevoerd zonder centrale 'verzekeringsmaatschappij'. Dit is van belang, omdat de uitvoering hiervan niet afhangt van een centrale server en dus robuuster is. Met de blockchains van de tweede generatie, zoals Ethereum, is de functionaliteit van smart contracts verder uitgebreid, zodat nu vrijwel elke programmeercode op een gedecentraliseerde manier kan worden opgeslagen en uitgevoerd. Ik gebruik hiervoor liever de term 'gedecentraliseerde apps' (dapps), omdat deze functie verstrekkende gevolgen kan hebben en het woord 'contract' ons creatieve denken over nieuwe blockchain toepassingen kan beperken. In 2016 zagen we de opkomst en neergang van de eerste DAO (Decentrale Autonome Organisatie) die gebaseerd was op deze technologie van de tweede generatie. Het is een crowdfunding- en investeringsorganisatie die wordt gerund zonder medewerkers of centrale autoriteit. Ik ben erg benieuwd hoe deze dapp-functionaliteit de komende jaren verder zal worden onderzocht en geïmplementeerd.

Uitkijken naar de implementatie van blockchains bij bestaande organisaties en consortia

Als conclusie kunnen we dus stellen dat een blockchain een nieuwe automatiseringstechnologie is die vier principes met zich meebrengt:

  1. opslag van gegevens in een groeiende en onderling verbonden keten van blokken;
  2. distributie van deze keten van gegevensblokken naar vele partijen in een netwerk;
  3. consensus over de gegevens die in het laatste blok moeten worden opgenomen;
  4. uitvoering van programmeercode in een gedistribueerd netwerk.

Dit is van belang voor alle toepassingen waarbij de kwaliteit en betrouwbaarheid van gegevens essentieel zijn en/of waarbij het wenselijk is dat de automatisering niet afhangt van één vertrouwde derde partij. De blockchain toepassingen begonnen met eigendomstransacties, zoals betalingen, vastgoed, kunstwerken en andere waardevolle items, maar we zullen de komende jaren veel andere (gedecentraliseerde) toepassingen zien, bijvoorbeeld voor processen bij de overheid, audittrails, elektronische patiëntendossiers, nieuwe logistieke ketens en fabricage.

Na jaren van pilotprojecten en experimenten hoop ik dat we nu echte implementaties van blockchains bij bestaande organisaties en consortiums gaan zien en ontwikkelen. Bij Berenschot werken we ook aan een eigen blockchain toepassing voor het tellen van verkiezingsstemmen. Het beloven spannende jaren te worden!

Blog serie – blockchain & digitaliseren van organisaties

Wilt u bovenstaand artikel downloaden als PDF? Download hier de whitepaper Blockchain: de eenvoudigste inleiding en toepassingen.

Wilt u meer lezen over blockchain? Kijk dan op onze blockchain diensten pagina, of lees het artikel van voormalig Berenschotadviseur Sofie Berns over 'de meerwaarde van blockchaintechnologie voor de overheid' of de blog van Rosa-May Postma over ‘Blockchain: hype of kans'.