De term blockchain smart contracts doet bij veel mensen de wenkbrauwen nog wel een beetje fronsen, maar waarschijnlijk zullen dit soort contracten over niet al te lange tijd gemeengoed zijn. Slimme contracten zijn autonome overeenkomsten die draaien op de blockchain, een onveranderlijk en gedistribueerd netwerk. Een platform met een enorm potentieel.
Gedistribueerd netwerk
Blockchain smart contracts zijn uitvoerbare programma’s die draaien in een onveranderlijke, decentrale en gedistribueerde database. Een database waar alle inputs en outputs wereldwijd op eenzelfde en consistente manier worden onderhouden door middel van een bepaald protocol. Een protocol waarbij gedistribueerde consensus (overeenstemming) wordt bereikt tussen verschillende computers.
Decentrale applicaties en gedistribueerde systemen
Dit is natuurlijk een redelijk ingewikkelde definitie van een technologie die ook zeker gecompliceerd is. De hele community rondom de blockchain bestaat voornamelijk uit mensen, die gespecialiseerd zijn in crytocurrency. Echter zullen blockchainnetwerken in de nabije toekomst voor iedereen de normaalste zaak van de wereld zijn. We zullen gewend raken aan decentrale applicaties, de blockchain-programmeertalen, en de gedistribueerde systemen.
Solidity
Een van die programmeertalen is de Ethereum programmeertaal. Ethereum is een openbaar blockchainplatform dat is uitgerust met een virtuele machine die helemaal turingvolledig is. Die Ethereum programmeertaal heet Solidity. De blockchain smart contracts die geschreven zijn in Solidity kunnen draaien in die virtuele machine. De code is ontworpen door de eigenaar van zo’n contract en iedereen in het blockchainnetwerk kan er een interactie mee aangaan. De blockchain smart contracts hebben de bijzondere eigenschap dat ze zichzelf automatisch kunnen uitvoeren.
Miners
De uitvoering van een blockchain smart contract geschiedt door de zogenaamde ‘miners’ op het netwerk. Zij voeren de contractcode uit met de inputs en outputs, zoals die gespecificeerd zijn binnen een transactie. Hierna wordt er een wiskundige berekening uitgevoerd door de miners (er wordt als het ware een algoritmische puzzel opgelost). Een blockchainnetwerk bestaat uit allemaal ‘nodes’. Nodes zijn computers die ‘luisteren’ naar de andere nodes. De nodes controleren de data en de geldigheid ervan en geven die data dan weer door. De miners (dit zijn mensen), gebruiken daar speciale software voor.
Consensus en de staat van het netwerk
Als de wiskundige puzzel is opgelost, dan wordt er een nieuw blokje aan de blockchain toegevoegd en wordt het hele netwerk geüpdatet. De staat van het netwerk is dan overal hetzelfde en daar zijn alle nodes het op dat moment dan ook over eens. Er is dus overeenstemming (consensus) bereikt tussen alle nodes. De miner die het algoritmische probleem oplost, wordt beloond voor zijn of haar inspanningen.
Ethereum blockchain en gas
De huidige uitvoering van code in de virtuele machine, geschiedt door middel van een bron die we ‘gas’ noemen. Dat gas moet je eigenlijk zien als de functie van een blokje op datzelfde moment. Het gas vertegenwoordigt dus het blokje. Het gas wordt verbruikt tijdens het uitvoeren van een transactie en kan dus ook opraken. Ten aanzien van de Ethereum programmeertaal Solidity geldt dat blockchain smart contracts noodzakelijkerwijs, volledige programma’s zijn. Dat houdt dus in dat ze eindig zijn. Ze houden dus in principe op te bestaan.
Ether en tokens
De basisstructuur van een smart contract is een constructie waarbij een bepaald token is vastgepind aan een bepaalde hoeveelheid omringende tokens op de Ethereum blockchain. We noemen deze tokens ‘ether’. De blockchain smart contracts stellen gebruikers in staat om waarde met elkaar uit te wisselen, zoals het uitvoeren van transacties. Hoe succesvol dit soort slimme contracten in de toekomst zal gaan worden is nog moeilijk te voorspellen, maar dat het potentieel erg hoog is, dat is wel duidelijk.
Cryptocurrency en Bitcoin
De eerste blockchains werden ontworpen om kleine en relatief eenvoudige processen uit te voeren. Veelal waren het transacties die gebaseerd waren op cryptocurrency zoals de bitcoin. De techniek is nu verder ontwikkeld en er kunnen nu meer complexe operaties worden uitgevoerd in het netwerk, zoals het toepassen van volwaardige programmeertalen.
Onveranderbaar, permanent en geen censuur
Omdat deze programma’s op een blockchain draaien, hebben ze een uniek karakter ten opzichte van andere vormen van software. Allereerst wordt het programma vastgelegd op de blockchain en wordt daarmee onveranderlijk, permanent en blijft vrij van iedere vorm van censuur. Ten tweede kan het programma ‘op eigen houtje’ blockchain-assets controleren en cryptocurrency’s opslaan en transporteren. Hierna wordt het programma automatisch uitgevoerd door de blockchain. De uitvoering van de programma’s zoals de blockchain smart contracts, zal precies zo gebeuren als dat ze geschreven zijn. Niemand kan het proces veranderen of verstoren.
Blockchain-code
Ontwikkelaars en andere specialisten die zich bezighouden met de blockchaintechnologie gebruiken de term blockchain smart contracts vaak om de blockchain-code aan te duiden. De term was voornamelijk verbonden met het Ethereum project, omdat Ethereum zich graag wil vestigen als platform voor slimme-contract-code. Vandaag de dag wordt de term in algemene zin gebruikt om te verwijzen naar ieder complex programma dat is opgeslagen en wordt uitgevoerd in de blockchain.
Financiële transacties
Blockchain smart contracts hoeven niet te lijken op gewone contracten. De code kan een voorwaardelijke financiële transactie vertegenwoordigen, maar bijvoorbeeld ook een bestuurlijke applicatie die stemmingen van leden bijhoudt. In veel gevallen zijn blockchain smart contracts geïsoleerd, maar zijn ze een klein onderdeel van een grotere applicatie. Iedere dapp, DAO of andere op de blockchain gebaseerde applicatie is specifiek gebouwd om smart-contract-code uit te voeren in het blockchainnetwerk. Welke Ethereum applicatie het ook betreft, Augur, Slock.it of misschien wel Boardroom, ze zijn allemaal opgebouwd uit smart-contract-code.
Autonoom handelen op de juiste momenten
Blockchain smart contracts kunnen balansen bijhouden van cryptocurrency’s of zelfs andere slimme contracten beheren. Als de smart contracts eenmaal zijn gecreëerd kunnen ze autonoom handelen en de noodzakelijke acties uitvoeren, precies op de juiste momenten.
Iets andere kijk op smart contracts
Mensen die werken in de financiële wereld of in de juridische sector, kijken iets anders tegen de slimme contracten aan dan dat ik hierboven heb beschreven. Zij zien blockchain smart contracts als ‘specfieke smart-contract-code’ en een manier om de blockchaintechnologie te gebruiken voor het aanvullen of vervangen van wettelijke contracten. De code wordt dan in principe gebruikt om overeenkomsten tussen partijen te vertalen, te controleren en uit te voeren.
Voldaan aan alle condities
Deze wettelijke blockchain smart contracts zullen vaak een combinatie zijn van slimme-contract-code en wat meer traditionele contracttaal. Stel nu dat bijvoorbeeld een leverancier van bepaalde goederen een overeenkomst aangaat met een winkelier, door middel van een smart contract in een blockchainnetwerk. De condities waaronder de betaling moet worden uitgevoerd, zijn omschreven in de code. Het contract wordt automatisch uitgevoerd, op het moment dat de bestellingen zijn afgeleverd en aan alle condities uit de overeenkomst is voldaan.
Clausule
Het ligt voor de hand dat de winkelier graag wil dat er in het contract een clausule wordt opgenomen, waarin wordt bepaald dat de winkelier schadeloos wordt gesteld door de leverancier, als er ondeugdelijke of defecte producten worden afgeleverd. Het heeft vooralsnog geen zin om een dergelijke clausule op te nemen in een blockchain smart-contract-code. Dat komt omdat een dergelijke clausule (nog) niet in staat is om zichzelf automatisch uit te voeren. Als er een geschil tussen de winkelier en de leverancier ontstaat, dan moet de schade namelijk op een bepaalde manier worden geïnterpreteerd en beoordeeld door middel van een (eventueel) juridisch proces. Het interpreteren en beoordelen van schades is nog steeds mensenwerk.
Hybride vorm
Commerciële overeenkomsten zitten vaak boordevol clausules die partijen moeten beschermen tegen allerlei soorten risico’s en aansprakelijkheden. Deze factoren zijn niet altijd geschikt om in smart-contract-code te verwerken. Dat houdt dus in dat wettelijke blockchain smart contracts voorlopig nog een hybride vorm nodig hebben, waarbij code en gewone taal met elkaar samensmelten.
Kunnen blockchain smart contracts worden beschouwd als wettelijk uitvoerbaar?
Waarschijnlijk wel, echter is het natuurlijk nog redelijk onontgonnen gebied. De blockchaintechnologie en de slimme contracten hebben nog maar net hun intrede gedaan, maar de ontwikkelingen gaan hard. Datgene wat een contract tot een wettelijke overeenkomst maakt, zijn de afspraken die partijen met elkaar maken. De juridische basis voor een wettelijk contract hangt minder af van de vorm waarin een overeenkomst wordt gegoten. Alles kan in principe een overeenkomst worden. Net zoals dat een mondelinge afspraak of een e-mail-correspondentie ook wettelijk kunnen zijn.
Gedecentraliseerde smart IoT
Blockchain smart contracts zullen steeds vaker worden gekoppeld aan IoT-apparaten. Door de groeiende infrastructuur van slimme apparaten – zeker de apparatuur die tot op zekere hoogte autonoom functioneert – en de blockchaintechnologie, zullen al deze objecten eenvoudig op een commerciële manier met elkaar verbonden kunnen worden. Een wasmachine die zijn eigen wasmiddel bestelt? De auto die zelf betaalt voor het opladen? Het wordt de gewoonste zaak van de wereld. De combinatie van IoT en de blockchain is een gouden combinatie.
Belemmerde groei door achterblijvende wetgeving
Echter, transacties tussen apparaten en machines vereisen nog steeds een bepaalde mate van vertrouwen om commercieel gezien levensvatbaar te zijn. Er zou een situatie kunnen ontstaan waarbij door de technologie heel snel nieuwe markten ontstaan, maar dat deze nieuwe afzetgebieden in hun groei worden belemmerd, enkel en alleen omdat de wetgeving niet voldoende is aangepast op de nieuwe technologieën of veel lang op zich laat wachten. Hier ligt natuurlijk een uitdaging voor juristen en onze overheden.
Automatiseren van financiële markten
Er zijn wereldwijd veel verschillende soorten contracten, slechts enkele van hen kunnen worden aangemerkt als blockchain smart contracts. Een wettelijk contract kan bijvoorbeeld een mondelinge afspraak zijn met iemand om je badkamer te renoveren, in ruil voor financiële derivaten, die elektronisch kunnen worden verhandeld op de financiële markten. We zullen de komende jaren steeds vaker financiële instrumenten zien in de vorm van smart contracts. Het vertalen van gewone financiële contracten naar code, kan ervoor zorgen dat financiële markten meer en meer geautomatiseerd zullen worden. Het grote voordeel daarvan is natuurlijk dat veel ingewikkelde processen en systemen op het gebied van de handel en dienstverlening, vereenvoudigd kunnen worden.
Financiële instrumenten
Deze slimme financiële instrumenten bestaan op dit moment nog niet op grote schaal, maar ontwikkelaars zijn al wel druk in de weer met het bouwen van dergelijke applicaties. Financiële instrumenten zijn maar één vorm van blockchain smart contracts, waarbij voordeel behaald kan worden door middel van blockchain-code. Naarmate deze slimme contracten meer verfijnd worden, zullen we ze snel tegenkomen in allerlei verschillende sectoren. In de vastgoedwereld, bij overheidsinstellingen, de gezondheidszorg, de energiebranche, de farmaceutische industrie, de supply chain, maar ook bijvoorbeeld als het gaat om de registratie van intellectueel eigendom, zoals auteurs– en muziekrechten.
Stabiele en voorspelbare overeenkomsten
Ontwikkelaars van blockchaintechnologie en decentrale applicaties zien echter nog veel meer mogelijkheden voor de blockchain smart contracts, dan alleen maar in de hoedanigheid van een wettelijk contract. Er zullen waarschijnlijk geheel nieuwe vormen van commerciële overeenkomsten ontstaan. Commercie is namelijk afhankelijk van mensen die stabiele, voorspelbare overeenkomsten met elkaar kunnen en willen aangaan. Solide contracten en een duidelijke wetgeving zijn de belangrijkste voorwaarden, om partijen te stimuleren om met elkaar handel te drijven. Als dat vertrouwen er niet is, dan zijn mensen ook niet bereid om risicovolle zaken met elkaar te doen.
Op de hoogte blijven van de ontwikkelingen op het gebied van blockchaintechnologie? Meld je dan nu aan voor de blogpost!
Laat een reactie achter