La technologie de la blockchain se développe dans de nombreux secteurs d’activité très diversifiés, de la finance à la musique. Ainsi, il est délicat d’évoquer la blockchain, alors qu’en pratique, il existe des blockchains (publique, privée, etc). L’une des innovations issues de cette technologie qui attise aujourd’hui la curiosité du monde juridique est les smart contract.
Il n’existe pas aujourd’hui de traduction officielle en français du mot blockchain. Le droit français n’envisage pour le moment la blockchain que comme un possible « dispositif d’enregistrement électronique partagé ». Il est fait référence à cette notion au sein de l’article 120 de la loi n°2016-1691 du 9 décembre 2016 relative à la transparence, à la lutte contre la corruption et à la modernisation de la vie économique, dite loi Sapin II, et au sein de l’article L223-12 du Code monétaire et financier, issu de l’article 2 de l’ordonnance n°2016-520 du 28 avril 2016 dite « ordonnance minibons ». Or la blockchain n’est pas le seul « dispositif d’enregistrement électronique partagé » envisageable, bien qu’il s’agisse du plus intéressant actuellement.
Mathias Avocats fait le point avec vous sur les smart contracts et leur potentiel.
Qu’est-ce qu’un smart contract ?
Les smart contract ont pu être défini comme « des clauses qui sont programmées pour exécuter des actions spécifiques » (Pelle Braendgaard, « Unpacking the term ‘Smart Contract’« ). Au contrat traditionnel, qui définit les obligations des parties et leurs modalités, on superpose un programme informatique, qui vérifie automatiquement que les conditions sont remplies et exécute les termes du contrat en conséquence.
Pour permettre cette interactivité, il faut que les conditions puissent être vérifiées via la blockchain sur laquelle le smart contract vient se superposer, et que les conséquences qui en découlent puissent être déclenchées depuis cette blockchain. Ainsi, le smart contract tel qu’on l’entend aujourd’hui consiste en des lignes de codes, stockées sur une blockchain, qui s’active à la suite de transactions sur cette blockchain, qui y lit et écrit des données.
L’idée même du smart contract n’est pas nouvelle. En 1997, Nick Szabo, ingénieur informatique et chercheur en cryptographie qui fût un temps désigné comme le créateur du bitcoin, décrit dans un article intitulé « Formalizing and Securing Relationships on Public Networks » les possibilités offertes par l’avancée des nouvelles technologies à l’exécution de contrats. Ainsi, pour lui, nombre de contrats peuvent être exécutés plus aisément si les biens objets du contrat comprennent un code informatique assurant la mise en œuvre des stipulations contractuelles.
On peut partir de l’exemple simple du contrat de vente. Le smart contract permettrait d’assurer que, lorsque le vendeur transmet le bien, il reçoive effectivement la somme correspondante en échange, et inversement, que l’acheteur qui paie le prix soit assuré de recevoir le bien.
Pour illustrer l’intérêt du mécanisme du smart contract, Nick Szabo donne un exemple simple : un contrat de location de voiture. Dans le cadre de ce contrat, une personne paye régulièrement des échéances pour pouvoir utiliser la voiture auprès de son loueur. Le smart contract va vérifier automatiquement à chaque échéance si le montant dû est bien payé par le locataire de la voiture. Tant que le paiement est effectué, le locataire sera la seule personne à pouvoir utiliser la voiture, en s’authentifiant. En cas de non-paiement, la voiture est automatiquement bloquée et ne peut être utilisée par le locataire, et le loueur en récupère le contrôle.
Jusqu’à présent, le smart contract n’est resté qu’une théorie, faute d’architecture permettant sa mise en œuvre. Avec la blockchain, l’idée de mettre en place des smart contracts a pris plus d’ampleur et tend à se concrétiser.
Pourquoi des smart contrats ?
Recourir à un smart contract présente plusieurs avantages.
Dans certaines situations contractuelles, les parties peuvent ne pas avoir totalement confiance l’une envers l’autre : les enjeux financiers sont importants, des facteurs extérieurs au contrat peuvent influer soudainement sur la volonté des parties d’exécuter leurs obligations …
Actuellement, dans ces situations, un intermédiaire humain intervient dans lequel les parties ont confiance. Cet intermédiaire coûte de l’argent, et, étant humain, il est corruptible, faillible et partial.
Le smart contract permet d’éliminer le recours à cet intermédiaire humain en le remplaçant par du code informatique auditable par toutes les parties. Les actions de cet intermédiaire sont prévues par une série d’instructions que les parties peuvent consulter en toute transparence mais qui ne peuvent être modifiées unilatéralement, grâce à l’utilisation de la blockchain.
Si la partie A failli à son obligation dans le cadre du contrat, le smart contract permet de détecter cette violation, et d’appliquer automatiquement la sanction contractuelle prévue et/ou de ne pas lui faire parvenir la contrepartie prévue par la partie B.
Des scénarios plus complexes sont envisageables. Ainsi, on peut imaginer l’automatisation de services administratifs, comme par exemple l’obtention d’une carte grise : l’individu remplit une déclaration, les informations qu’il a inscrites sont vérifiées sur la blockchain, le smart contract s’assure que les conditions nécessaires à la délivrance de la carte grise sont réunies, et délivre ou non le document.
La principale utilisation qui est faite actuellement de la blockchain concerne les monnaies virtuelles comme le bitcoin ou l’ether. Les transactions financières passées via la blockchain présentent en effet des avantages conséquents : traçabilité des fonds, fraudes difficiles, coût par transaction faible …
Quels obstacles aux smart contracts ?
Néanmoins, il convient de noter que le smart contract reste à un stade primitif de développement aujourd’hui, et pose des questions persistentes.
Le smart contract n’a pas vocation à remplacer le contrat juridique : il se superpose à lui pour en assurer l’exécution. Le smart contract reste soumis à la loi : le recours à l’expertise juridique est toujours de mise. Il sera toujours en outre possible de saisir un juge pour en obtenir l’annulation, qu’il soit automatisé ou non.
Le smart contract connait des limitations techniques. On l’a évoqué plus haut : toute condition devant être vérifiée et toute conséquence devant être exécutée doivent se trouver à la portée du programme informatique.
Or aujourd’hui, les blockchains ne sont pas, dans leur majorité, interopérables ou interconnectées. Cela limite les informations auxquelles le logiciel du smart contract aura accès. En cas d’échange d’argent, les parties seront contraintes, pour bénéficier de la fiabilité de la blockchain, de recourir à sa monnaie virtuelle, ce qui implique l’élaboration d’un système de conversion de cette monnaie. De même, les conditions devant être exécutées devront être accessibles via la blockchain ce qui, dans le cadre des blockchains publiques, impliquent qu’elles soient visibles par tous : pour certaines informations cela pose un problème de confidentialité. Ce problème peut être partiellement résolu par l’usage de blockchains privées ou de consortiums, mais la transparence de la blockchain est alors réduite.
Une des difficultés majeures qui peut bloquer le développement réel des smart contracts, c’est le risque lié à une faille dans le code. En juin 2016, une attaque au sein de la blockchain Ethereum a permis à un ou plusieurs personnes malveillantes non identifiées d’exploiter une faille dans le code et de subtiliser 3,6 millions d’ethers (1 ether étant au moment de l’attaque valorisé à 20 dollars). Cette attaque a mené à une grande controverse au sein des participants à cette blockchain publique sur les suites à donner.
Le smart contract est soumis aux mêmes contraintes que tout programme informatique. Il est donc susceptible de contenir des failles de sécurité ou encore des bugs. Dans le cadre de l’exécution de contrat cela pourrait occasionner des préjudices conséquents. Qui serait alors responsable de ce préjudice ? Comment apporter la preuve et Comment justifier de l’opposabilité de cette dernière ?Le smart contract soulève des questions de sécurité juridique.
De plus, le smart contract doit, en plus d’être négocié par les parties comme tout contrat juridique, être rédigé en langage informatique. Or un contrat juridique bien rédigé peut être compris par des parties ne bénéficiant pas d’expertise juridique particulière. Ce n’est pas le cas pour un logiciel, dont le code source est en principe imperméable pour quiconque n’a pas de connaissances poussées, non seulement en informatique, mais aussi dans le langage de programmation employé. Les parties ne peuvent donc être assurées sans avoir recours à un expert que le code source est dénué de failles et qu’il correspond bien aux obligations qu’elles entendent contractualiser.
Quelles applications pour les smart contracts ?
Pour le moment, il convient d’être prudent quant aux applications des smart contracts.
Il faut privilégier la simplicité : plus simple sera le contrat, moins il y aura de chance qu’il contienne une faille pouvant être exploitée. Paradoxalement, cela réduit aussi l’intérêt du smart contract : ce type de contrat simple pourra tout aussi bien être passé par une méthode plus traditionnelle.
A l’heure où de nombreux projets visant à exploiter les bénéfices de la technologie disruptive de la blockchain voient le jour, il convient de faire le point. Avant de se lancer dans des projets ambitieux autour de la blockchain, il est essentiel de réfléchir aux usages et aux applications visées. Il faut ainsi déterminer les bénéfices qui résulteraient de l’usage de la blockchain et du smart contract plutôt que d’autres méthodes plus classiques pour chaque application, qui seraient plus faciles à mettre en place et tout aussi efficaces.