De redelijkheid is ver te zoeken in die smart contracts #legaltechtuesday

Smart contracts: zelfdenkende software die buiten de greep van één partij automatisch voorwaarden checkt en afgesproken handelingen uitvoert. Daarover schreef ik een paar columns geleden. Het onderwerp blijft tot de verbeelding spreken, want zeg nou zelf wie wil er geen slim contract dat zonder tussenkomst van een advocaat of rechter netjes nagekomen wordt? En het klinkt ook zo logisch, dat je contractuele afspraken niet opschrijft in juridische woordenwolken maar als duidelijke, stap-voor-stap instructies waar een computer gewoon mee aan de gang gaat.

Een smart contract heet ‘smart’ omdat de verbintenissen en de wijze van nakoming niet in gewone taal zijn opgeschreven maar in uitvoerbare instructies. In principe komt dat neer op een heleboel beslisregels. Is de leverdatum bereikt, zet het vermogensrecht dan op naam van ontvanger. Is er een betaling ontvangen, verreken dan eerst de nog verschuldigde rente op oude vorderingen en pas daarna boek je op de openstaande vorderingen zelf. Staat er in het faillissementsregister de naam van de leverancier, zet dan de betaling stop.

Dit klinkt redelijk basaal en dat is het ook. Maar praktisch is het wel, want veel van dit soort afspraken zijn dingen die gewoon automatisch bijgehouden en gecheckt kunnen worden. En het kan bijdragen aan vertrouwen wanneer partijen elkaar niet kennen en elkaar niet voor de rechter kunnen slepen. Als dan het contract, pardon het computerprogramma gewoon doet wat er is afgesproken en niemand kan dat halverwege beïnvloeden of omkopen, dan is zo’n risicovolle transactie misschien toch het ondernemen waard.

Maar zodra je dergelijke basale afspraken overstijgt, wordt het erg ingewikkeld. Je krijgt dan te maken met subjectieve toetsen, en hoe kan een computerprogramma – hoe slim ook – daarop verifiëren? Dat een website opgeleverd is, kun je automatisch nog wel nagaan. Maar of ‘ie mooi is, schrijf daar maar eens een statement voor. Daar kom je niet uit, vrees ik. Dan moet je ‘mooi’ kwantificeren tot objectieve technische eisen en ik weet niet hoe gelukkig je daarvan wordt (kleur A en kleur B verschillen minstens 30 tinten in de Pantone waaier, zoiets?)

Verder is er nog een vrij fundamenteel probleem: de redelijkheid (en billijkheid) is ver te zoeken in smart contracts. Het zijn immers computerprogramma’s, en die staan erom bekend rechtlijnig en compromisloos te opereren. Staat er een fout in, dan wordt die fout netjes uitgevoerd. Dit terwijl een fout in een ‘dom’ contract – stel, een nul vergeten in de verkoopprijs – altijd nog rechtgezet kan worden bij de rechtbank.

Punt is natuurlijk hoe je aantoont dat iets een foutje is. Die vergeten nul krijg je waarschijnlijk nog wel erbij gepraat met de eerdere contractconcepten of het spreekwoordelijke bierviltje. Een verkeerde rechtskeuze die niemand opviel in het proces is alweer wat lastiger recht te trekken. Maar een goed pleidooi kan alsnog de redding bieden.

Een belangrijke factor daarbij voor mij is dat een traditioneel contract (dat klinkt toch mooier dan ‘dom’) opgezet is met uitspraken over de gewenste uitkomst. “A verkoopt aan B het goed C”. Bij smart contracts wordt met programmeertaal gewerkt, en dat betekent instructies die de uitkomst moeten opleveren. Maar daar zit een subtiel verschil tussen. Hoe weet je of een verkeerde instructie fout is, als je niet weet wat de gewenste uitkomst is? Als je zegt, het smart contract is de afspraak, dan is die instructie dus niet fout. Misschien ongewenst, achteraf gezien, maar er staat dat het goed naar X moet dus gaat het naar X.

Een berucht voorbeeld is de zogeheten DAO-hack uit 2016. The DAO is een gedecentraliseerd investeringsvehikel dat opgezet is middels een berg van die slimme contracten, gebruik makend van de Ethereum-blockchainimplementatie. In een van die contracten stond een foutje, althans een onbedoelde feature, waardoor een bijdehantje in staat was om gratis geld te krijgen. Legaal. Hoewel het namelijk evident is dat The DAO dit niet heeft gewild, zijn er geen illegale hacks of dergelijke uitgevoerd. Het stelsel van smart contracts had namelijk een gaatje: iemand die een bepaalde onvoorziene aanvraag indiende en daarna introk, kreeg als een soort afrondingsfoutje meer geld terug dan hij betaald had bij die aanvraag.

Wie dit zou doen bij een papieren contract, zou meteen weten dat dit niet gaat werken. De stap naar de rechter zou waarschijnlijk niet eens nodig zijn. Maar in dit smart contract geval is dat lang zo evident niet. Als je namelijk zegt, de afspraak is wat het smart contract doet, en het smart contract doet iets anders dan jij had beoogd, wat is dan de legale uitkomst? Precies. Ook als dat in strijd met de redelijkheid is.

Het wordt dus tijd die redelijkheid in te gaan bouwen in software. Maar daar moet eerst een nieuwe programmeertaal voor komen vermoed ik.

Arnoud

Betalen voor dataverkeer veroorzaakt door een inbraak

data-traffic-spike.pngEen lezer vroeg me:

In januari is mijn (zakelijke) website gehackt. Diegene heeft vervolgens heel veel dataverkeer veroorzaakt, o.a. door spam te versturen vanaf de site. De hoster heeft dit na een paar dagen gemerkt en het lek gerepareerd. Hij meldde me dat dit door een bug in het controlepanel van de site (Directadmin) was veroorzaakt. Dat is dus de software die hij aanbiedt om de site te beheren.

Vervolgens stuurt hij me doodleuk de rekening voor het extra dataverkeer! In de voorwaarden staat namelijk dat ik moet betalen voor alle dataverkeer boven de 4 gigabyte, en hij zegt nu dat het niet uitmaakt dat het een hacker is geweest. Dat kan toch niet zomaar?

Ik hoop dat iedereen hier het met me eens is dat dit inderdaad niet zomaar kan. Maar goed, daar kom je niet ver mee bij de kantonrechter. Je zult moeten uitleggen waarom die bepaling in de algemene voorwaarden niet op deze manier kan worden toegepast, ook al staat er dat al het extra verkeer voor rekening van de klant komt.

Artikel 6:248 BW biedt de mogelijkheid om de contractsbepalingen naar redelijkheid en billijkheid aan te vullen of zelfs in te perken. Stel er staat in een huurcontract dat de verhuurder “op elk moment” toegang tot het pand kan verlangen voor inspectie. Als het gaat om een woonhuis, dan volgt uit de redelijkheid en billijkheid dat hij dat niet op vrijdagnacht om 03:25 kan eisen, maar zich moet beperken tot normale tijden. En waarschijnlijk ook wel dat hij een afspraak moet maken voordat hij naar binnen mag. Bij een datacentrum of opslagruimte zou dat iets anders liggen. Er zijn dan eerder redenen om zomaar om 03:25 naar binnen te gaan, dus het kan dan best redelijk zijn dat de verhuurder ineens binnen staat.

Het lijkt me dat je met dit artikel ook deze interpretatie van het contract van tafel kunt krijgen. Het is volstrekt onredelijk dat de klant moet betalen voor dataverkeer dat een derde veroorzaakte door een een fout in een controlepaneel onder het beheer van de leverancier. Daarom mag deze contractsregel in deze situatie redelijkerwijs niet toegepast worden (edit: zin half afgemaakt).

Als het nou zelfgekozen software was, dan kon ik wel wat zien in het standpunt van de leverancier. De bug is dan binnen de risicosfeer van de klant, die kiest voor die software en moet dan de gevolgen dragen voor exploitatie van die bug. Denk aan forumsoftware die slecht beveiligd is, of een zelfgeschreven mailscript waar een spammer mee aan de haal gaat.

Hoewel in zo’n geval de klant wellicht een beroep op overmacht kan doen, als hij alles heeft gedaan om de software dicht te timmeren en er toch een fout in bleek te zitten. Maar ergens wringt dat: het kan toch niet de bedoeling zijn dat de hoster dan dat meerverkeer gaat betalen?

Arnoud