Van zolderkamer tot grote bedrijfsruimte: overal werken mensen noest aan blockchaintechnologie en dat doen ze niet zomaar. De meesten gaat het om de enorme hoeveelheid mogelijkheden die de decentrale technologie biedt. Wat doet zo'n blockchain eigenlijk en wat kun je ermee? Een opfriscursus blockchain met drie real-worldvoorbeelden.
Bitcoin
Alles begint bij die ene blockchain: bitcoin, het betaalsysteem dat wordt opgehemeld, verguisd en alles wat daartussen zit. Die reacties zijn niet zo vreemd, want de technologie, of eigenlijk een combinatie van cryptografische en speltheoretische technieken, vraagt om een heel andere manier van denken over de digitale wereld.
Om de basis daarvan te begrijpen bespreken we onder meer drie toepassingen, die elk op een andere manier gebruikmaken van twee verschillende blockchains. Zo zocht GUTS Tickets naar een manier om zo snel mogelijk een blockchain te gebruiken in de bestaande wereld en is Giveth juist heel idealistisch bezig om een blockchain in te zetten om elke stap van een donatieproces vast te leggen en te volgen. VDT Network wil het gebruik van renderfarms, in eerste instantie voor videorendering, decentraliseren. Ondanks de totaal verschillende toepassingen hebben de drie projecten en bitcoin een grote gemene deler: transparantie.
Bitcoin is in feite een combinatie van al langer bestaande technieken. Wie die technieken combineerde, is tot op heden niet bekend, maar zijn/haar/hun pseudoniem is Satoshi Nakamoto. Nakamoto publiceerde op 1 november 2008 een white paper op een wat obscure cryptografie-mailinglist. De zoektocht naar een mogelijkheid om zonder derde partij veilig transacties over netwerken te kunnen doen, was al zo'n twee decennia gaande, maar tot dan toe niet helemaal succesvol. Nakamoto voegde een aantal technieken samen, waarbij een keten ontstaat die het probleem oplost van het meer dan eens kunnen uitgeven van hetzelfde digitale geld. Met andere woorden: je kunt niet je digitale geld kopiëren en meer dan één transactie uitvoeren, net zoals je twintig euro niet onder het kopieerapparaat kunt leggen om het meer dan eens uit te geven.
In de fysieke wereld is het normaal om vertrouwen te hebben dat een transactie ook echt plaatsvindt. Je kunt de ander immers zien; je kunt het direct beoordelen. In de digitale wereld is dat lastig. Nakamoto zorgde er met bitcoin voor dat je er zonder vertrouwen in de andere partij van uit kunt gaan dat een transactie plaatsvindt én dat de ontvanger zeker weet dat de waarde niet ineens met een ander gedeeld moet worden. Een van de onderdelen van dat bitcoinprotocol is het gebruik van een keten van blokken die door middel van hashes aan elkaar gekoppeld zijn, toen nog zonder de naam die de keten later zou krijgen: 'blockchain'.
De exacte werking laten we hier buiten beschouwing; in het kort komt het erop neer dat de veiligheid van het netwerk zit in het aantal nodes dat in het netwerk zit en die meerekenen aan de transacties, de blokken zelf en de verbinding tussen de blokken. Hoe meer computers, hoe veiliger het netwerk via een proof-of-workprincipe. Om een transactie uit het verleden te wijzigen, is ten minste de helft van de rekenkracht van het hele netwerk nodig. Zo zie je dat het in het begin mogelijk was om transacties uit het verleden te veranderen, maar dat dit met het huidige bitcoinnetwerk vrijwel onmogelijk is, omdat je niet eens de benodigde hoeveelheid hardware bijeen kunt brengen om ook maar één blok te wijzigen. En dan moet je ook de hele keten die daarna komt nog wijzigen.
Nu staat ‘bitcoin’ vooral voor elektronisch geld. Nakamoto noemt het 'een volledig peer-to-peer- elektronisch contantgeldsysteem zonder vertrouwde derde partij, zoals een bank of een overheid'. Je vertrouwt het netwerk dat in stand wordt gehouden door nodes en miners die ook een klein beetje van de muntjes kunnen verdienen door bij te dragen aan de stabiliteit van het netwerk. Dat verdienen gaat in de vorm van een beloning voor het als eerste 'vinden' of berekenen van zo'n blok of door een klein plukje van de transactiekosten te krijgen die elke transactie met zich meebrengt. In feite voer je bij het overmaken van bitcoins naar een ander bitcoinadres niets anders uit dan een transactie. En voor een transactie maakt het niet uit of die een geldelijke waarde vertegenwoordigt of iets heel anders.
Al snel na de incarnatie van bitcoin kwam er een hele reeks afgeleiden, inclusief simpele vormen van smart contracts, eigenlijk scripts die worden toegevoegd aan een transactie, waardoor meer mogelijk is dan alleen de transactie zelf. Denk bijvoorbeeld aan oracles, zeg maar input van buiten de blockchain, of het niet kunnen uitvoeren van een transactie zonder dat die door verschillende mensen is ondertekend, ofwel multisig.
Een ingewikkelder type blockchain was nodig voor het uitvoeren van smart contracts. Het bekendste daarvan is op dit moment ethereum, waarin het mogelijk is om vrijwel Turing-complete applicaties uit te voeren. Vitalik Buterin bedacht de basis van dat systeem in 2013 op negentienjarige leeftijd en het ging live op 30 juli 2015.
Een combinatie van een smart contract en een interface heet een dApp, waarbij het smart contract zorgt voor de feitelijke acties en waarbij de interface, vaak een webinterface, zorgt voor de interactie met het contract op de desbetreffende blockchain. Ethereum is echter niet de enige blockchain met smartcontractfunctionaliteit; denk ook aan NEO, Cardano en Icon.
Drie projecten, drie inzichten
Twee van de projecten waar we naar kijken, maken gebruik van ethereum en een van NEO. Voor beide ketens geldt dat ze bestaan uit een hoofdmunt of token en een manier om kleine beetjes te betalen voor het uitvoeren van een applicatie óp die blockchain. Dit is voor te stellen als het draaien van een computerprogramma. Om het programma te laten draaien, moet je wat geld betalen en als het geld op is, stopt het programma. Dat is maar goed ook, anders zouden apps eeuwig kunnen blijven draaien en zo het netwerk vast laten lopen.
GUTS
Medio 2015 bedacht een van de oprichters van GUTS dat het mogelijk moest zijn de ethereumblockchain te gebruiken voor het vastleggen van het eigenaarschap van concertkaartjes en zo ticketfraude op de secundaire markt tegen te gaan. Kasper Keunen, blockchaindeveloper bij GUTS, vertelt dat begin 2016 eerst een testnet van ethereum voor kaartjes voor cabaretier Jochem Myjer werd gebruikt. De verkoop liep prompt vast door een te grote toestroom van klanten in één keer. Het toonde ook aan dat snellere netwerken dan dat van bitcoin schaalproblemen hebben. Inmiddels is GUTS al een hoop stappen verder en gaan ze samen met Hekwerk Impresariaat tickets verkopen.
De oplossing ligt in het combineren van een centraal en een decentraal geregeld onderdeel binnen het systeem van GUTS. Eén deel is een applicatie die door middel van een constant veranderende QR-code ook de ticketfraude door kopiëren tegengaat en het andere deel is een smart contract en een daaraan gekoppeld token in de ethereumblockchain.
Het token met de naam GET, ofwel Guaranteed Entrance Token, wordt daartoe gekocht door de organisator van een evenement. Binnen dat smart contract wordt de prijs vastgelegd, zodat de klant zelf niets merkt van de volatiliteit van ether. Alle transacties, ook die voor de klanten, worden uiteindelijk in de ethereumblockchain vastgelegd. Iedereen heeft dus een eigen ethereumnummer, maar dat hoef je niet te weten. Al kun je er wel zelf naar op zoek gaan.
Keunen zegt dat het belangrijkste uitgangspunt van GUTS is dat het bruikbaar moet zijn voor normale mensen en voor de theaters die het systeem aan de andere kant moeten gebruiken, terwijl die eigenlijk geen verandering willen.
Giveth
Goede doelen worden gezien als belangrijke toekomstige klanten voor publieke blockchains, omdat hun gevers transparantie verwachten. Verschillende initiatieven zijn daarvoor opgekomen, waaronder Giveth. De naam zegt het al: het werkt met ethereum. Een van de ontwikkelaars van Giveth is Satya van Heummen. Hij geeft aan dat het geen bedrijf is in de klassieke vorm en dat Giveth moet zijn wat het zelf aanbiedt: volledige transparantie. Giveth noemt zichzelf een ‘charity’ en heeft geen werknemers. Het is een stichting met alleen mensen die meehelpen ontwikkelen om smart contracts te bouwen en zo andere goede doelen te helpen om zogenaamde Decentralized Altruistic Communities, DAC’s, op te bouwen.
Giveth heeft zichzelf opgelegd de transparantste DAC te zijn die je je kunt voorstellen. Het krijgt donaties in ether. Die donaties worden vastgezet in het smart contract waarmee voor dat specifieke doel wordt gewerkt. Binnen zo’n project hebben verschillende mensen functies waarmee ze bepaalde zaken kunnen uitvoeren. Stel, iemand verzint dat een onderdeel van een dApp in het Nederlands moet worden vertaald. Dan kan die persoon dat aanvragen en daar een prijs aan verbinden, bijvoorbeeld 0,5 eth voor drieduizend woorden. Dit project wordt goedgekeurd en vervolgens gaat die persoon ermee aan de slag. Als het klaar is, controleert iemand of iets binnen het smart contract of aan de eisen is voldaan, en als het klopt, wordt de persoon uitbetaald.
Donateurs kunnen vervolgens zien wat er met hun donatie is gebeurd en waar die is terechtgekomen, volledig helder en transparant. Er zit wel een addertje onder het gras: al je inkomsten en uitgaven zijn inzichtelijk.
Op dit moment verkeert het systeem nog in de alfafase en kunnen bepaalde, veelgevraagde zaken nog niet, zoals het zorgen voor belastingvoordeel bij doneren. Organisaties als Amnesty en de Verenigde Naties zijn echter zeer geïnteresseerd in dit soort technieken, niet in de laatste plaats omdat het met een blockchain veel makkelijker is om gelden van a naar b te krijgen. De VN heeft zelf al gebruikgemaakt van ethereum voor het verdelen van gelden onder tienduizend Syrische vluchtelingen, zodat die zelf hun voedsel kunnen kopen, in plaats van gewoon voedsel te droppen. Dit scheelt veel kosten en organisatie.
VDT Network
VDT Network maakt gebruik van de blockchain van NEO om decentraal videorenderservices in te huren of om zelf te verhuren. De bedenkers van VDT bouwden namelijk zelf ooit een renderapplicatie Vidiato en gebruiken daarvoor nu nog externe servers waarmee je per server licenties moet afsluiten. Dean van Dugteren, oprichter van VDT, vertelt daarover dat ze ineens te maken kregen met een grote prijsstijging. Zo kwam hij op het idee om het proces te decentraliseren en te verbinden met decentrale renderfarms.
Via een dApp op NEO kun je zo van verschillende diensten gebruikmaken zonder zelf te weten dat je daarmee verbinding maakt. Ook kun je eventueel je eigen cpu- of gpu-kracht verhuren via het decentrale netwerk. Alle zaken zoals verificaties van bestanden gebeuren niet op de NEO-chain zelf, maar daarbuiten.
De NEO-blockchain is iets jonger dan ethereum, maar dient een vergelijkbaar doel. In tegenstelling tot bitcoin en ethereum gebruikt NEO dBFT, een manier om de veiligheid van het netwerk te behouden zonder dat er constant extreem veel rekenkracht in moet zitten. Die andere twee gebruiken Proof of Work, al wil ethereum naar Proof of Stake. Hoe die beide systemen exact werken, gaat te ver om hier uit te leggen, maar het komt er bij dBFT op neer dat bezitters van de tokens, in dit geval dus NEO, altijd automatisch Gas krijgen uitgekeerd. Bij PoW moet iedereen constant meerekenen, terwijl er steeds maar één 'winnaar' kan zijn.
NEO heeft nog een voordeel voor programmeurs; je hoeft geen nieuwe programmeertaal aan te leren, zoals bij Ethereum Solidity. Je kunt gewoon uit de voeten met C#, Python, VB.Net, F#, Java en Kotlin. Het is de bedoeling dat er nog meer bijkomen.
NEO is verder nog een beetje anders dan ethereum en bitcoin. Je kunt niet zomaar zelf een node opzetten, dat gebeurt handmatig. Om een node te worden moet je goedgekeurd worden. Op dit moment heeft KPN een node in Nederland. Ook kun je alleen maar hele NEO’s bezitten. De brandstof voor het netwerk, het ‘gas’, net als bij ethereum, kan wel in kleinere eenheden verdeeld worden. Uiteindelijk wil NEO in 2020 honderdduizend transacties per seconde bereiken.
Tot slot
Deze drie voorbeelden laten op uiteenlopende manieren zien dat het benutten van de mogelijkheden van decentrale systemen nog ver van de normalemensenwereld af ligt. GUTS probeert echter met een hybride systeem een snelle start te maken en er zijn op kleine schaal al daadwerkelijk nuttige toepassingen in gebruik. Aan de andere kant zijn al die experimenten hard nodig om werkelijk bruikbare en nuttige diensten te verzinnen en daadwerkelijk te laten werken.
Tot slot: dit artikel gaat over publieke blockchains. Er wordt ook veel geëxperimenteerd met private blockchains, maar volgens velen ben je dan vreemd bezig. En inderdaad: doe dan iets anders, zou je zeggen. Gebruik een decentrale database zonder de ingewikkelde extra laag van een blockchain. Blockchains verdienen eigen toepassingen; we moeten geen oude wijn in nieuwe zakken willen stoppen.
Meer weten over blockchaintechnologie? Tweakers organiseert op donderdag 29 maart een Meet-Up over blockchain in Eindhoven. De kaarten zijn helaas al uitverkocht, maar er zal ook een livestream zijn. Vergeet dus niet om de 29e rond 19:00 de frontpage van Tweakers te checken.
Tweakers Magazine
Een variant van dit artikel verscheen eerder in het Tweakers Magazine, dat elke twee maanden wordt verstuurd naar alle Hero- en Elite-abonnees. Wil jij dit soort artikelen ook als eerste lezen en daarnaast profiteren van alle voordelen die een abonnement biedt, check dan de Aboshop voor meer info. Je bent al Hero-abonnee vanaf 3,75 euro per maand. Jullie steun wordt enorm gewaardeerd.