Blog

Smart contracts, smart genoeg?

In het verlengde van de blockchainhype dient zich een relatief nieuw IT-fenomeen aan: het smart contract.

In het verlengde van de blockchainhype dient zich een relatief nieuw IT-fenomeen aan: het smart contract. Het gaat daarbij om een doorontwikkeling van de blockchaintechnologie tot een volledig geautomatiseerd contractsysteem. Smart contracts zijn kleine computerprogramma’s met gecodeerde partijafspraken, waarmee de gebruikers transacties kunnen verrichten.

Belangrijkste kenmerk van smart contracts is dat ze zichzelf autonoom, dus zonder verdere beïnvloeding van buitenaf, uitvoeren. Bovendien zijn ze geschreven in ondubbelzinnige programmacodes die op een blockchain staan, zodat iedere transactie door de blockchaindeelnemers wordt geverifieerd. Een correcte, snelle en goedkope nakoming van de vastgelegde afspraken zou daarmee zijn gegarandeerd en conflicten en kosten van juridische bijstand zouden voortaan tot het verleden behoren.

Vooropgesteld dat ook over de onderliggende blockchaintechniek veel vragen bestaan, beperk ik mij tot enkele bijzondere aandachtspunten bij het gebruik van smart contracts in privaatrechtelijke verhoudingen, meer in het bijzonder voor het vastleggen en uitvoeren van partijafspraken. De eerste vraag die zich aandient is of het inderdaad mogelijk en zo ja ook wenselijk is om beïnvloeding van buitenaf bij het gebruik van smart contracts volledig uit te sluiten. Ook de uitvoering daarvan zal in de praktijk immers vaak afhankelijk worden gesteld van ten tijde van het schrijven van de programmacode onzekere toekomstige gebeurtenissen.

Bijvoorbeeld dat een zaak voor een bepaalde datum moet zijn geleverd, wil tot betaling mogen worden overgegaan. Of dat pas betaald mag worden nadat is vastgesteld dat een geleverde zaak aan bepaalde kwaliteitseisen voldoet. Computers kunnen (nog) niet zelf waarnemen of daaraan is voldaan en dus is externe input nodig. Soms gebeurt dat geautomatiseerd, bijvoorbeeld door koppeling van een blockchain met externe databestanden. Soms ook is menselijke interventie vereist bijvoorbeeld voor de beoordeling van de kwaliteit van een geleverde zaak. Maar kan, met name in dat laatste geval, nog sprake zijn van een smart contract dat zichzelf immers zonder beïnvloeding van buitenaf zou uitvoeren? Bij de beantwoording van die vraag zal de vrije beoordelingsruimte die de derde daarbij wordt gelaten, ongetwijfeld bijzondere aandacht krijgen.

Programmeerfouten

Smart contracts kunnen weinig anders dan programmacodes lezen en uitvoeren. Maar programmacodes kunnen fouten bevatten of zijn gebaseerd op verkeerde interpretaties van partij-afspraken. Met name het risico van programmeerfouten is niet denkbeeldig want het programmeren van smart contracts staat bekend als uiterst lastig en programmeerfouten zouden zich dan ook al diverse keren hebben voorgedaan. Ook het juist interpreteren en omzetten van partijbedoelingen, voor contractjuristen meestal al geen sinecure, zal een lastige opgave voor programmeurs zijn. Daar komt bij dat de vertaling daarvan in een programmacode meestal niet door partijen of hun juridisch adviseurs kan worden gecontroleerd omdat die, anders dan bij hoge uitzondering, niet in staat zijn programmacodes te lezen. Er bestaat dus een kwade kans dat de programmacode niet doet wat partijen hebben beoogd. Het ontwerpen van (erkende) standaarden voor het programmeren van afspraken in smart contracts en het inrichten van specifieke daarop gerichte audits, kan daarvoor wellicht uitkomst bieden.

Interventie van derden kan ook om andere redenen zinvol zijn. Partijen die afspraken vastleggen in een smart contract moeten uitgaan van de situatie zoals zij die op dat moment kennen en van ontwikkelingen zoals die zich op dat moment laten inschatten. De ervaring leert echter dat ontwikkelingen vaak minder voorspelbaar blijken dan gedacht. Ook bij gebruik van een smart contracts kunnen zich ontwikkelingen voordoen (overlijden, ziekte, faillissement, beslagen, wetswijzigingen) die een uitvoering van het smart contract onwenselijk of zelfs onmogelijk maken. Ons verbintenissenrecht kent een grote mate van flexibiliteit om daarop in te spelen, waaronder de mogelijkheid de rechter te verzoeken de gevolgen van een overeenkomst te wijzigen of de overeenkomst (deels) te ontbinden als ongewijzigde instandhouding daarvan naar maatstaven van redelijkheid en billijkheid niet door de wederpartij mag worden verwacht.

Maar smart contracts kennen die flexibiliteit ‘van nature’ niet. Het maatwerk, nodig om op zulke ontwikkelingen in te spelen, laat zich nu eenmaal moeilijk vooraf definiëren en programmeren. Doet zich zoiets voor, dan rest alleen aanpassing van het smart contract. Maar daarmee moet, behalve de wederpartij, een meerderheid van de deelnemers aan het blockchainnetwerk instemmen. Of die daartoe bereid zijn en dan ook nog eens zo snel dat het smart contract tijdig kan worden aangepast, is onzeker. Bovendien kunnen aan het verkrijgen van die meerderheid en aan het aanpassen van de programmacode, aanzienlijke kosten verbonden zijn. En ook dan zal de principiële vraag rijzen of zo’n aanpassing zich wel verhoudt met de ‘onveranderbaarheid’ van een blockchain als hoeksteen van het daarin te stellen vertrouwen.

Juridische kwalificatie

Gaan gebruikers van een smart contract alleen een technische interactie met elkaar aan of ontstaat er (ook) een juridisch relevante rechtsverhouding die in geval van fouten of onverwachte ontwikkelingen, juridische gevolgen kan hebben? Bijvoorbeeld omdat een smart contract als (elektronische) overeenkomst kan worden gekwalificeerd?

Vooropstaat dat programmacode niet in de plaats van de wet kan treden. Ook als partijen hun relatie hebben vastgelegd in programmacode blijft de wet gewoon van toepassing. Maar welke wet? Blockchains zijn gedecentraliseerde en gedistribueerde databases waarbij de deelnemers zich over de gehele wereld kunnen bevinden. Ze hebben geen vaste locatie, zodat het lastig is om te bepalen welk recht van toepassing is als de deelnemers geen rechtskeuze hebben gemaakt. Komt desondanks in een concreet geval vast te staan dat het Nederlands recht van toepassing is, dan moet aan de hand daarvan worden beoordeeld of er sprake is van een overeenkomst. Daarvoor moeten de afspraken van de gebruikers van het smart contract in ieder geval bepaalbaar zijn en daarover moet tussen hen wilsovereenstemming bestaan. Maar ook dat zal niet altijd eenvoudig kunnen worden vastgesteld, zeker niet als partijen hun afspraken enkel hebben laten vastleggen in een programmacode. Dat die ook nog eens kunnen komen uit landen met geheel verschillende contractculturen, maakt die vaststelling nog lastiger.

Zou de conclusie desalniettemin luiden dat het beoordeelde smart contract een overeenkomst is, dan kan dat weer andere gevolgen hebben. Zou dat bijvoorbeeld een overeenkomst zijn die volgens de wet schriftelijk moet worden aangegaan, dan dient de identiteit van partijen met voldoende zekerheid te kunnen worden vastgesteld. Een eis die op gespannen voet lijkt te staan met het ‘anonieme’ karakter van een blockchain. Trouwens, ook over de ‘onaantastbaarheid’ van smart contracts zal als er sprake is van een overeenkomst discussie kunnen ontstaan. Bijvoorbeeld over de vraag wat onaantastbaarheid nog aan ruimte laat voor uitleg van contractsbepalingen als partijen van mening verschillen over de strekking van hun afspraken. En wat dat betekent als een smart contract nietig zou blijken te zijn wegens strijd met de wet, openbare orde of goede zeden, en alles zoveel mogelijk moet worden teruggebracht in de oude toestand.

Willen partijen bij een smart contract hun afspraken ook een controleerbare juridische status geven, dan doen zij er in ieder geval verstandig aan die afspraken ook vast te leggen in een schriftelijke of digitale overeenkomst. Lang niet alle smart contracts zullen immers overeenkomsten in juridische zin zijn. Tegelijkertijd kunnen dan afspraken worden gemaakt en vast- gelegd over onderwerpen die zich überhaupt slecht lijken te lenen voor uitvoering in de vorm van een smart contract, zoals aansprakelijkheid, toepasselijk recht en geschilbeslechting. Het eigenlijke smart contract is dan vooral bedoeld voor een geautomatiseerde uitvoering van de overeenkomst.

Slagen om de arm

Ondanks mogelijke voordelen als sneller, veiliger en goedkoper roept het gebruik van smart contracts veel vragen op. Vragen die niet of alleen met de nodige slagen om de arm kunnen worden beantwoord. Voorzichtigheid bij het gebruik van smart contracts lijkt daarom geboden, zeker zolang er geen erkende standaarden bestaan voor het omzetten van juridische terminologie in programmacodes. Op dit moment zijn smart contracts daarom hooguit geschikt voor gebruik door en tussen consumenten bij kleine repeterende transacties met een grote mate van voorspelbaarheid ten aanzien van het verloop daarvan. Grotere zakelijke contracten, zeker contracten die nu nog tot in detail plegen te worden uitonderhandeld, lenen zich niet voor omzetting in programmacode. En zelfs als ook dat technisch mogelijk zou worden, doen partijen er verstandig aan zich te realiseren dat uitzonderingen en onverwachte ontwikkelingen in de contractpraktijk meer regel dan uitzondering zijn en dat niet alleen juristen regelmatig met elkaar van mening verschillen over de vraag hoe afspraken moeten worden uitgelegd.

Plaats een reactie

U moet ingelogd zijn om een reactie te kunnen plaatsen.
Registreren