Home Expertise Smart Contracts

Smart Contracts

Wat is een smart contract?

Smart contracts zijn toepassingen die op een blockchain geplaatst kunnen worden. In zijn essentie is een smart contract een deterministisch computerprogramma dat op een blockchain wordt gerepliceerd en uitgevoerd. Deterministisch betekent simpel gezegd: if A then B. Smart contracts maken het voor partijen daarmee mogelijk om hun afspraken in onwijzigbare programmacode te gieten, die - zodra aan de voorwaarden daarvoor is voldaan ('if A') - geautomatiseerd worden uitgevoerd ('then B').

Een tweetal voorbeelden
•    Als de frisdrankautomaat registreert dat de cola bijna op is ('if A'), dan komt overeenkomstig het smart contract - gesloten tussen de uitbater en leverancier - een koop- en leveringsovereenkomst tot stand ('then B'). Als de frisdrankautomaat registreert dat de cola is bijgevuld ('if A'), dan wordt overeenkomstig het smart contract automatisch tot betaling overgegaan ('then B').
•    Als het smart contract op grond van de informatie uit diverse daaraan gekoppelde databestanden (zoals de basisregistratie personen, het kadaster of een register van een vertrouwd instituut) en de bevindingen van de ambtenaar (zie hierover onder 'Oracles en smart contracts') constateert dat aan alle subsidievoorwaarden is voldaan ('if A'), dan wordt overeenkomstig het smart contract de subsidie toegekend ('then B').

Daar komt weinig slimmigheid bij kijken. In wezen voert een smart contract uit wat het is opgedragen. Van enig nadenken of proactiviteit is geen sprake. De noodzakelijke slimmigheid wordt juist gevraagd van de jurist en anderen die bij het formuleren van de afspraken betrokken zijn (de afspraken moeten juridisch houdbaar zijn en de bedoeling van de partijen weergeven), de programmeur van de code (deze code mag geen codeerfouten bevatten en mag niet te manipuleren zijn) en allen gezamenlijk bij het vertalen van de afspraken in de code. Omdat het blockchain betreft, moet hierbij rekening gehouden worden met diverse aspecten van de afstemming tussen het juridische en deze specifieke techniek (daarover meer in ons whitepaper Juridische aspecten Blockchain). Uit ervaring weten wij dat werken in de blockchain juridisch heel goed mogelijk is, mits recht en techniek vanaf het begin samenwerken en goed naar elkaar luisteren.

Een smart contract is van zichzelf dus niet slim. Het gaat ook niet noodzakelijk om een contract (een overeenkomst), in juridische zin. Er zijn diverse 'verschijningsvormen' denkbaar. Naast de overeenkomst kan bijvoorbeeld gedacht worden aan schenking, het oormerken van subsidiegelden, het verlenen van een vergunning of het toezicht houden. Daarmee komen niet alleen andere privaatrechtelijke rechtshandelingen in beeld, maar ook bestuursrechtelijke rechtshandelingen en vormen van bestuursrechtelijk optreden waarbij besluitvorming, toezicht en handhaving als het ware in elkaar opgaan. Hoe een smart contract juridisch wordt geduid, hangt uiteindelijk helemaal af van de specifieke toepassing (lees daarover meer in het rapport 'Smart contracts als specifieke toepassing van de blockchaintechnologie').

Juridische vragen omtrent smart contracts

Dat het smart contract geen revolutie zal ontketenen die juristen overbodig maakt, mag duidelijk zijn. Maar welke juridische vragen spelen er zoal bij de toepassing van smart contracts? Op een meta-niveau speelt in de eerste plaats de vraag in hoeverre het recht gevangen kan worden in code.

In meer algemene zin spelen daarnaast bijvoorbeeld vragen met betrekking tot de rechten, verantwoordelijkheden en aansprakelijkheid van de programmeur, het platform dat de smart contract-functionaliteit aanbiedt en wat de doorslag geeft als het misgaat. Ook ten aanzien van het toepasselijk recht en hoe in de toepassing het recht op bescherming van persoonsgegevens geborgd kan worden, kunnen vragen ontstaan. Bijvoorbeeld bij het handelen van bestuursorganen, waaronder dat in het kader van de besluitvorming, spelen daarnaast ook nog specifieke juridische vragen. Zoals wat de betekenis is van de algemene beginselen van behoorlijk bestuur voor het werken met smart contracts en geautomatiseerde besluitvormingsprocessen.

Oracles en smart contracts

Om te kunnen vaststellen of aan de voorwaarden voor de uitvoering van een smart contract is voldaan, zal veelal input van buiten de blockchain nodig zijn. Bijvoorbeeld de bevestiging dat het pakketje is afgeleverd, dat de subsidieaanvrager in de betreffende gemeente woonachtig is of dat bepaalde weersomstandigheden waartegen verzekerd is zich hebben voorgedaan.  Een blockchain zelf is echter 'doof en blind': de blockchain kan niet zelfstandig informatie van buiten ophalen. Hier komen zogenaamde oracles in beeld. Met een oracle kunnen (feitelijke) informatie, oordelen en beslissingen die van belang zijn voor de executie van een smart contract - maar daar zelf geen onderdeel van uitmaken - in de blockchain worden gebracht. Achter een oracle kan bijvoorbeeld een externe informatiebron schuilgaan, zoals een database of register van een vertrouwd instituut. Maar het kan ook gaan om een partij of een persoon, zoals een beslissingsbevoegde, notaris of ambtenaar. De partijen die gebruik maken van het smart contract accepteren op voorhand de informatie of het oordeel van het oracle en de betekenis daarvan voor de executie van het smart contract.