Au début du XXIème siècle ont été développées de multiples technologies innovantes qui ont très vite impacté de manière substantielle notre économie. Des exemples frappants sont à trouver dans l’émergence des plateformes en ligne, du Cloud, de l’Internet of Things (IoT), ou de la technologie Blockchain. Ce dernier exemple mérite une attention toute particulière : créée à l’origine comme le support technologique du Bitcoin, la blockchain n’a cessé de gagner en popularité auprès de divers acteurs économiques, et d’étendre considérablement son champ d’application. L’une des implémentations les plus remarquables de cette technologie aujourd’hui réside dans son extension au domaine contractuel. La blockchain a en effet été utilisée pour créer ce qu’on appelle les “Smart Contracts”, ou contrats intelligents. Une première définition de surface peut en être donnée : un Smart Contract désigne un ensemble d’instructions renseignées sous forme de code informatique (comme C++, Javascript, Solidity, Golang), qui permettent à l’ordinateur d’exécuter automatiquement les dispositions d’un accord lorsque les conditions prédéterminées sont réunies. Ce logiciel est stocké dans une blockchain et les conditions permettant de le déclencher sont vérifiées par la blockchain.
Cette courte définition fait déjà apparaître une tension fondamentale entre les Smart Contracts et la sphère juridique, qui est une tension que l’on pourrait qualifier de linguistique. Les logiques juridiques et informatiques mettent en oeuvre deux sortes de langages, ou de “code” ayant des caractéristiques bien distinctes.
Le langage juridique est celui du langage naturel, par nature souple et ambigüe. Il est sujet à interprétation, que cela soit par les parties dans le cadre de leurs relations contractuelles, ou par le juge, lorsque ce dernier apprécie au cas par cas comment certaines dispositions doivent être appliquées au cas de l’espèce. La souplesse du langage juridique est telle que le juge adoptera parfois une interprétation pouvant aller totalement à l’encontre de la loi au regard de préoccupations d’équité.
Le code informatique est un langage précis et formel. Il applique une logique implacable qui ne laisse pas la place à l’interprétation, et ne peut donc pas couvrir de situations imprévues, ou prendre en compte les spécificités propres au cas d’espèce. Ce qu’il perd en souplesse, le langage informatique le gagne cependant en précision en évitant les situations d’incertitude ou d’interprétations divergentes.
Le Smart Contract s’exprime en code informatique, mais en régulant les relations contractuelles entre les parties, il s’intègre à la sphère du droit, domaine du langage juridique. De plus, il s’appuie sur une technologie bien particulière et encore relativement nouvelle, la blockchain. Ces premières observations soulèvent dès à présent un certain nombre d’interrogations quand à la relation qu’entretient le Smart Contract avec la sphère juridique. Un morceau de code peut-il véritablement être qualifié de contrat, ou doit-il adopter une autre qualification juridique ? Quels sont les opportunités et enjeux créés par le Smart Contract ? Au regard de ces opportunités et challenges, et de la qualification juridique des Smart Contracts, comment intégrer ces derniers à l’ordre juridique afin de les réguler ? Le droit commun peut-il être adapté, ou un droit nouveau doit-il être créé pour cela ?
Nous répondrons à ces différentes interrogations par étapes. Dans une première partie, qui servira de base à notre analyse, nous définirons plus en détail le Smart Contract avant d’en déduire sa qualification juridique (I.). Une définition et une qualification claire du Smart Contract nous permettra ensuite d’identifier les opportunités ouvertes par les Smart Contracts tout comme les difficultés qu’ils peuvent entraîner au regard du droit des contrats (II.). Enfin, au vu de tous ces éléments (définition, qualification, opportunités et difficultés) nous déterminerons comment les Smart Contracts pourront être intégrés à l’ordre juridique français, par une simple adaptation de ce dernier, loin de la complète révolution annoncée par certains pour le moment (III.).
Les Smart Contracts, objets juridiques non identifiés ? Définition et qualification des Smart Contracts
Avant toutes choses et pour que notre analyse sur l’intégration des Smart Contracts à l’ordre juridique français repose sur des bases solides, il nous faut les définir (A.) puis les qualifier (B.) de manière claire et précise.
A. Blockchain et Smart Contracts, définitions
Comprendre la notion de Smart Contract suppose dans un premier temps de comprendre correctement la technologie à laquelle il est entièrement adossé et qui fait sa spécificité : la blockchain. La blockchain est par essence un système de stockage et de transmission d’informations, permettant à ses utilisateurs d’échanger des fichiers informatiques et se concrétisant par une base de données contenant l’historique de tous les échanges effectués entre ses utilisateurs depuis sa création. Ce système s’échange et de stockage est cependant particulier, car il est entièrement décentralisé, transparent et infalsifiable. Cela se déduit de son mode de fonctionnement, qui peut être résumé comme suit : la blockchain est composée de “nœuds”, qui sont les machines faisant partie de la blockchain car ayant installé un logiciel spécifique qui le leur permet ; chaque nœud a la même place dans la blockchain. Un utilisateur effectue la transaction de fichiers informatiques (exemple : des Bitcoins, qui ne sont rien de plus que de tels fichier) vers un autre utilisateur (d’un nœud à un autre). Cette transaction est vérifiée par l’ensemble des autres noeuds du réseau qui doivent, pour valider les transactions, résoudre des opérations mathématiques cryptographiques complexes (ce procédé est connu sous le nom de mining1). Si la transaction est validée par plus de la moitié des nœuds du réseau, elle est datée (par un timestamp) puis ajoutée à la base de donnée contenant l’intégralité des autres échanges effectués. Cette base de données est accessible par tous les utilisateurs de la blockchain. La version mise à jour de la base de données est utilisée comme base cryptographique servant à vérifier la transaction suivante par les mineurs. A partir de ce fonctionnement, on en déduit que la blockchain est un système :
Décentralisé. Les transactions ne passent par aucune autorité centrale, elles sont vérifiées par l’intégralité des nœuds du réseau.
Transparent et infalsifiable. Toutes les transactions sont accessibles dans leur ordre chronologique à tous les utilisateurs de la blockchain au travers de la base de données au sein de laquelle elles sont successivement inscrites. Il est impossible de falsifier une transaction, à moins de posséder plus de 50% des nœuds du réseau2, car chaque transaction doit être approuvée par plus de 50% de ces nœuds. Il est également impossible de re-écrire des informations concernant une transaction, car tous les autres blocks suivant la transaction à modifier devraient être régénérés de manière simultanée (ce qui ne peut être de nouveau fait que si on possède plus de 50% des nœuds de la blockchain).
Ce système ainsi résumé a pu s’étendre bien au-delà des moyens de paiement électroniques décentralisés, et s’implémenter dans le domaine contractuel. Comme nous l’avons dit en introduction, les Smart Contracts utilisent le système de la blockchain pour exécuter des obligations de manière automatisée : on le comprend mieux désormais que le mécanisme de la blockchain a été explicité. Le Smart Contract est un morceau de code inclut dans une blockchain (il est donc inaltérable). Lorsqu’un certain nombre de conditions sont rassemblées3, la transaction comprise dans le contrat s’exécute dans la blockchain de manière automatique (le logiciel déclenche la transaction seul), fiable (la transaction est vérifiée par l’ensemble des nœuds du réseau) et définitive (il est impossible de revenir sur la transaction qui est inscrite en tant que bloc dans la base de données de la blockchain). Nous reviendrons sur les intérêts d’un tel procédé, mais il est clair que les gains en coûts de transaction et le caractère certain de l’exécution de l’obligation sont importants. Prenons un exemple. Une personne A se met d’accord avec une personne B : A fournira des fonds pour le projet de B actuellement en crowdfunding. Si le projet de B n’atteint pas une certaine somme et ne peut donc voir le jour, les fonds seront rendus à A. Par un contrat classique, A serait forcé de surveiller le montant atteint à la date limite, et compter sur B pour lui rendre son argent si le montant n’a pas été atteint. Un Smart Contract permet d’automatiser et d’exécuter de manière fiable les obligations des deux parties dans le cadre d’un tel contrat : à la date limite, le code composant le Smart Contract déclenche la vérification du montant obtenu en crowdfunding, et si celui-ci est insuffisant, il enclenche la transaction restituant l’argent à A de manière automatique, fiable, et définitive. Un autre exemple imaginable est celui de l’assurance dite indicielle (liée à un indice tel que la température ou le niveau de pluie). Ainsi, un Smart Contract conclu entre l’agriculteur et l’assureur peut stipuler qu’un paiement soit effectué après 30 jours sans précipitations. Le smart contrat est alimenté par les données pluviométriques du service national de météorologie, qui permettent de déclencher automatiquement dans la blockchain le paiement après 30 jours de sécheresse, sans l’intervention d’un expert ni nécessité de déclaration ou revendication de l’assuré4.
Voici en définitive la définition d’un Smart Contract. Il s’agit d’un morceau de code informatique qui permet l’exécution automatique, fiable et définitive des obligations comprises dans une relation contractuelle en s’appuyant sur la technologie blockchain.
B. Les Smart Contracts sont-ils des contrats ? La qualification juridique des “contrats” intelligents
Comment qualifier juridiquement les Smart Contracts à partir de cette définition ? Un certain nombre d’auteurs ont pu affirmer que le Smart Contract est en réalité un contrat comme les autres. C’est par exemple le point de vue de Alexander Savelyev dans son article Contract law 2.0: ‘Smart’ contracts as the beginning of the end of classic contract law5. Partant d’une définition généralement acceptée en Europe du terme de contrat comme un accord de volonté conclu en vue de produire des effets juridiques6, l’auteur affirme que puisque le Smart Contract requiert la volonté des parties pour devenir effectif, alors il s’agit bien d’un contrat. Que ce dernier soit automatisé ou non, les parties expriment leur volonté lorsqu’elles décident d’entrer dans la relation juridique formée par le Smart Contract, ce dernier étant donc de nature contractuelle.
Cette position est cependant le fruit de multiples confusions conceptuelles. Le Smart Contract, malgré son nom qui peut induire en erreur, n’est pas en lui-même un contrat, il est seulement un mode d’exécution technique du contrat. La séparation entre d’une part le contrat, accord de volonté entre deux ou plusieurs parties en vue de produire des effets juridiques, et d’autre part le Smart Contract, logiciel permettant l’exécution de ce contrat, doit être bien claire pour produire une qualification juridique précise du Smart Contract. Le Smart Contract est le mode d’exécution d’une relation contractuelle qui existe cependant indépendamment de lui. Il fait bien sûr partie du contrat, car les parties se sont mises d’accord pour que le contrat soit exécuté au travers d’un Smart Contract, mais le contrat ne se résume en aucun cas au Smart Contract qui n’en est que la modalité d’exécution technique.
Pour illustrer cette séparabilité conceptuelle entre d’une part l’objet juridique du contrat, et d’autre part le logiciel permettant son exécution technique, prenons l’exemple de la vente d’une table. Mr X souhaite acheter une table à Mr Y. Les deux parties se mettent d’accord sur ce transfert de propriété, mais en précisent les modalités d’exécution : ce n’est que lorsque la société de transport aura effectivement délivré la table au domicile de Mr X (ou, en son absence, au point de dépôt le plus proche) que le paiement sera effectué. Mr X et Mr Y, tous deux utilisateurs d’une blockchain publique (Etherum par exemple), décident que leur contrat et ses modalités particulières d’exécution seront mis en oeuvre au travers d’un Smart Contract. Ce dernier est inséré dans la blockchain et codé afin que, dès lors que la société de transport notifie la délivrance de la table au domicile de Mr X ou au point de dépôt le plus proche, les fonds correspondant au paiement de la table soient délivrés à Mr Y de manière fiable, sécurisée et définitive par le biais de la blockchain. Personne n’argumenterait ici que le Smart Contract est en soi un contrat : il est bien clair qu’il ne s’agit que d’un outil permettant une exécution particulière d’un contrat existant de manière indépendante, et on aurait pu imaginer un autre mode d’exécution (Mr Y aurait très bien pu détenir un chèque de Mr X, chèque qu’il n’aurait encaissé qu’à la confirmation de la livraison). On a bien d’une part un contrat (accord de volonté sur la vente de la table et sur les modalités d’exécution de cette vente), et d’autre part un logiciel qui permet de l’exécuter d’une certaine façon (Smart Contract transférant les fonds à réception de la table).
Cet exemple était volontairement simple pour les besoins de la démonstration. Dans la réalité, plusieurs facteurs créent la confusion entre le Smart Contract, simple logiciel, et contrat, accord de volonté :
Premièrement et simplement le nom de Smart Contract. Il faut cependant se rappeler que le langage juridique n’est pas toujours aligné au langage commun.
Deuxièmement, cette confusion peut être amenée par le fait que le Smart Contract SUPPOSE un accord de volonté pour exister. Il est vrai que pour que le mode d’exécution technique d’un contrat produise des effets, il faut qu’il soit adossé à un contrat, et donc à un accord de volonté. Mais le fait que le Smart Contract suppose un accord de volonté pour exister, qu’il en ait besoin pour être effectif, ne veut pas forcément dire qu’il EST cet accord de volonté. Pour reprendre l’exemple précédent, le Smart Contract implémentant le paiement automatique de Mr Y à la réception de la table SUPPOSE qu’un accord de volonté ait été conclu entre Mr X et Mr Y sur le transfert de la table en contrepartie d’un paiement ; le fait que cet accord de volonté soit un pré-requis à l’existence même du Smart Contract ne veut cependant pas dire que le Smart Contract incarne en lui-même cet accord de volonté. Il peut s’agir ici d’une confusion menant à considérer le Smart Contract comme un contrat.
Enfin, et c’est sûrement la source de confusion la plus importante, dans la plupart des cas l’accord de volonté constituant le contrat est exprimé à l’occasion de l’accord sur le Smart Contract, de manière simultanée. Reprenons une nouvelle fois l’exemple précédent et imaginons, comme c’est le cas la plupart du temps pour les Smart Contracts, que Mr X et Mr Y ne se soient jamais rencontrés ou n’aient jamais exprimé leur volonté de vendre la table avant qu’ils ne se mettent d’accord sur le fait d’établir un Smart Contract. C’est alors en se mettant d’accord sur le mode d’exécution du contrat (le Smart Contract) qu’ils vont également exprimer l’accord de volonté constituant le contrat et ses modalités d’exécutions. Ce contrat sera implicite et n’aura pas de matérialisation concrète, mais il existera. En d’autres termes, lorsque Mr X et Mr Y se mettront d’accord sur le fait d’utiliser un Smart Contract transférant les fonds à la réception de la table, ils exprimeront simultanément et de manière implicite leur volonté de transférer la propriété de la table et les modalités de ce transfert, créant en parallèle un contrat de vente. Mais il faut bien voir que cela ne change rien à la nature du Smart Contract. Même si c’est en se mettant d’accord sur les modalités d’exécution du contrat que les parties auront exprimé leur volonté et créé simultanément le contrat de vente sous-jacent7, ce contrat reste cependant conceptuellement distinct du logiciel qui constitue son mode d’exécution.
Cette position distinguant le contrat „accord de volonté“ d’une part, et le Smart Contract „logiciel permettant de l’exécuter d’autre part“, est partagée par un certain nombre d’auteurs tel que Primavera de Filippi, chercheuse au Cersa (CNRS) et au Berkman Center for Internet & Society à l’Université d’Harvard, qui affirme: “un Smart Contract est un logiciel. Au vu de leur appellation, on a tendance à les assimiler à des contrats, mais ils n’ont pas en eux-mêmes d’autorité juridique. Lorsqu’un contrat juridique existe, le smart contract n’est qu’une application technique de ce contrat“.
Il est temps de conclure cette première partie. Nous avons donc pu voir jusqu’ici que le Smart Contract est en réalité un logiciel permettant une exécution automatique, fiable et définitive des obligations d’un contrat par le biais de la technologie blockchain. A partir de cette définition, nous avons également pu voir que le Smart Contract seul ne peut être qualifié juridiquement de contrat : sa valeur juridique est celle d’un mode d’exécution technique du contrat. Le Smart Contract est un élément qui fait indiscutablement partie de la relation contractuelle (l’accord de volonté porte également sur le mode d’exécution du contrat), mais il en est conceptuellement distinct.
Une fois cette qualification juridique faîte, nous pouvons poursuivre notre réflexion sur la relation qu’entretient le Smart Contract avec le système juridique français. On ne peut en effet s’empêcher de remarquer que ce mode d’exécution technique du contrat reste tout de même particulier : il s’agit d’un mode d’exécution qui est automatique et définitif de par son intégration de la technologie blockchain. Il est en outre mis en oeuvre par du code informatique. Quelles sont les conséquences des spécificités du mode d’exécution d’un contrat par Smart Contract ? Quelles sont les avantages que pourrait présenter ce mode d’exécution ? Quelles sont les potentielles difficultés qui pourraient voir le jour pour les contrats exécutés au travers d’un Smart Contract ?
Un mode d’exécution contractuel particulier : opportunités et difficultés créées par le Smart Contract
Nous verrons dans cette partie que les spécificités de ce mode d’exécution contractuel créent à la fois des opportunités intéressantes en termes contractuels (A.), tout en posant également un certains nombre de difficultés pour le droit des contrats actuel (B.). Appréhender de manière complète ces opportunités comme ces potentielles difficultés est essentiel pour déterminer comment intégrer le Smart Contract à l’édifice juridique français. Il s’agira de répondre aux difficultés sans neutraliser les bénéfices du recours au Smart Contract.
A. De multiples opportunités
L’exécution d’un contrat par Smart Contract a de multiples avantages :
Une telle exécution permet premièrement une réduction sensible des coûts. L’exécution automatique des obligations permet en effet de réduire le temps ou les ressources mobilisées dans le cadre d’une exécution manuelle. La réduction des coûts s’incarne également par la possibilité de se passer d’intermédiaires dans la définition des obligations contenues dans le contrat. Comme nous l’avons remarqué en première partie, le contrat sous-jacent au Smart Contract est bien souvent défini en même temps que l’adhésion au Smart Contrat, et les obligations que permet d’exécuter automatiquement le Smart Contract seront globalement les obligations contenues dans le contrat sous-jacent. On peut ainsi se passer de juristes ou autres intermédiaires pour définir ces dernières.
La relation contractuelle pourrait être plus précise. Comme l’affirme Bruno Ancel, “le langage informatique est plus précis que le langage humain s’agissant des garanties et des conditions. Là où l’homme peut interpréter les mots, la machine applique le programme tel qu’il a été conçu, ce qui réduit les incertitudes“.
Le Smart Contract permet une exécution certaine du contrat, de par la technologie blockchain. Le contrat est exécuté de manière automatique et fiable par l’insertion de ses différentes clauses et des transactions au sein de la blockchain. Ce qui protège contre les exécutions imparfaites ou les inexécutions. Le caractère certain de l’exécution du contrat peut représenter un avantage pour la partie faible en la protégeant de toute rupture ou modification inopportune par l’autre contractant aussi puissant soit-il.
Le contrat est exécuté de manière définitive et immuable. Les transactions effectuées dans le cadre de l’exécution du contrat ne peuvent être modifiées ou annulées à posteriori une fois qu’elles ont été insérées dans la blockchain.
Ainsi, le Smart Contract est un mode d’exécution du contrat qui permet une exécution peu chère, précise, certaine et immuable. Il s’agit ici des principales opportunités offertes par les Smart Contract, même si bien d’autres peuvent encore être notées. Certains y voient même un outil de liberté, comme Bruno Ancel : “Certains penseurs comme Marcel Gauchet ou Pierre Rosanvallon du Collège de France avaient souligné la nécessité de redonner plus de pouvoirs aux citoyens. C’est un peu l’idée sous-jacente des smart contracts: il s’agit en effet de programmes informatiques qui exécutent des données validées par les parties en dehors de tout contrôle extérieur. […] Le développement des interactions entre les individus via une plateforme décentralisée succède à la foi aveugle et inconditionnelle dans la puissance publique”. Quoi qu’il en soit, ces différentes opportunités devront être prises en compte lors de l’intégration des Smart Contracts à l’édifice juridique français, afin de ne pas les neutraliser.
B. Les frictions potentielles avec le droit existant
Au-delà des multiples avantages que présentent les Smart Contract, leur implémentation est également susceptible de créer des frictions avec le droit des contrats tel que nous le concevons aujourd’hui.
La première potentielle difficulté posée par les Smart Contract concerne la nullité du contrat et les vices du consentement. Les transactions sont mises en oeuvre par le Smart Contract de manière automatique et irréversible : une fois effectuées et vérifiées, elles sont datées puis incluses dans la blockchain de manière définitive, comme nous l’avons vu dans la première partie. On ne peut revenir sur ces transactions à moins de posséder plus de 50% des noeuds du réseau et de régénérer l’intégralité des blocs suivants. Comment dans ce cadre annuler un contrat de manière rétroactive et faire comme s’il n’avait jamais existé, alors même qu’il est inscrit de manière irréversible dans la blockchain ? Un contrat formé suite à “des manœuvres ou des mensonges” (article 1138 Code Civil sur le dol) sera malgré tout exécuté de manière automatique et irréversible. L’erreur sur les qualités essentielles de la prestation (article 1133 Code Civil) n’empêchera pas non plus cette exécution définitive, pas plus que la violence (article 1142 Code Civil), le défaut de capacité à contracter, ou que n’importe quel autre vice du consentement entraînant en temps normal la nullité du contrat, qui ne pourra trouver à s’appliquer comme pour les autres contrats lorsqu’une exécution par Smart Contract aura été choisie. Et c’est le cas alors même que les contrats mis en exécution par Smart Contract sont particulièrement vulnérables à de potentiels vices de consentement : comme relevé dans la première partie, les contrats sous-jacents aux Smart Contracts sont souvent conclus en même temps que les parties se mettent d’accord sur l’exécution par Smart Contract, à partir du contenu du Smart Contract. Elles ne se sont souvent jamais rencontrées, ce qui favorise les manipulations ou les fraudes par exemple liées à l’âge du contractant.
La seconde difficulté se rapporte également au caractère immuable du Smart Contract et est relative à l’imprévision et à la modification du contrat. En effet, l’article 1195 du Code Civil précise qu’en cas de “circonstances imprévisibles lors de la conclusion du contrat rendant l’exécution excessivement onéreuse pour une partie qui n’avait pas accepté d’en assumer le risque, celle-ci peut redemander une renégociation du contrat à son cocontractant“. Imaginons que les parties à un contrat essaient de mettre en application cet article et de modifier le contrat qui les unit, exécuté par le biais d’un Smart Contract. Elles en seront incapables en raison du mode d’exécution particulier qu’elles ont choisi : le Smart Contract est en effet inséré au sein de la blockchain et ne peut donc en aucun cas être modifié, toute modification que les parties tenteraient d’apporter à leur contrat serait privé d’effet au stade de l’exécution du contrat en raison du caractère immuable du Smart Contract.
Une troisième difficulté réside dans l’application possible de la théorie de l’acceptation des risques au contrat exécuté par Smart Contract, et le caractère informé des parties contractantes. Si l’on considère les Smart Contracts comme un simple outil de communication à l’instar du fax ou du téléphone qui sont les vecteurs de la volonté des individus, dans ce cas, l’utilisateur assume l’entière responsabilité en cas de difficulté liée aux Smart Contracts, et aucune obligation spécifique n’est liée à l’utilisation de ce mode d’exécution particulier. Une telle solution se basant sur l’acceptation des risques ne semble cependant pas entièrement convaincante, puisqu’elle réduit à néant la protection de la partie la plus vulnérable. Il est au minimum important pour les utilisateurs de savoir de quelle manière le logiciel a une influence sur la conclusion du contrat, et les conséquences de ce mode d’exécution particulier.
On peut également s’interroger quant aux problématiques de respect de la vie privée et d’utilisation de données personnelles. Le caractère transparent de la blockchain et la possibilité pour l’intégralité des noeuds du réseau d’accéder à la base de donnée contenant le Smart Contract pourrait potentiellement poser problème au vu du RGPD / des données personnelles et de la protection de la vie privée.
Les Smart Contracts posent ensuite un certain nombre d’interrogations relatives au régime de responsabilité qui leur sera associé. On peut distinguer deux grandes questions :
Celle de la responsabilité elle-même : quel régime de responsabilité retenir en cas de défaillance du logiciel ? Imaginons par ailleurs qu’un Smart Contract dépende d’un “oracle” (un site boursier indiquant au Smart Contract la valeur d’une action par exemple), que se passera-t-il si cet oracle fournit des informations erronées au Smart Contract ? Comment gérer également la question de la responsabilité dans le cas où l’exécution par Smart Contract porterait préjudice à un tiers ?
Celle de l’imputabilité : une fois déterminé le régime de responsabilité lié aux spécificités de l’exécution par Smart Contract, qui sera responsable des préjudices liés aux défaillances du Smart Contract ou des oracles desquels il dépend ?
Enfin, l’utilisation des Smart Contracts inclut également des problématiques de sécurité. Les Smart Contracts sont écrits en code informatique et comme tout morceau de code, ils peuvent comporter un certain nombre de failles qu’un hacker ou que des individus mal intentionnés pourraient utiliser afin de manipuler les transactions à leur avantage. Non seulement les Smart Contracts sont vulnérables aux attaques car ils sont écrits en code, mais les conséquences de ces attaques pourraient être également significatives, car les transactions entraînées par les Smart Contract sont inscrites dans la blockchain, et sont donc irréversible. Le hack de juin 2016 sur la blockchain Ethereum est un exemple retentissant de cette problématique liée à la sécurisation des Smart Contract : la plateforme DAO (organisation autonome fonctionnant dans le système de la blockchain Ethereum) a en effet été la cible d’une attaque. Une faille présente dans le code des smart contracts a permis à un hacker de détourner sur une adresse non contrôlée près d’un tiers des capitaux. Notons malgré tout que les acteurs apprennent de ces failles et trouvent des moyens pour répondre à de telles attaques.
Au terme de cette seconde partie, il apparaît clairement que le mode d’exécution particulier que représente le Smart Contract bouscule le droit des contrats tel que nous le concevons aujourd’hui. Ouvrant de multiples nouvelles opportunités, les Smart Contract créent aussi un certain nombre de tensions dans leur relation avec la sphère juridique. Pour tirer pleinement partie de ce nouvel objet ayant pénétré la sphère contractuelle, la régulation des Smart Contracts devra répondre à ces divers challenges tout en capitalisant sur les opportunités qu’ils ouvrent.
Intégrer “intelligement” les Smart Contracts à l’édifice juridique
Nous verrons dans un premier temps que le simple ajout d’une sous-section 3 ajoutée à la section consacrée aux effets du contrat entre les parties suffira pour répondre aux quatres premières interrogations soulevées dans la seconde partie (A.). Dans un second temps, nous étudierons spécifiquement les questions de la responsabilité et de la sécurité dans le cadre de la défaillance ou de failles d’un Smart Contract (B.).
A. L’ajout d’une sous-section 3 et les règles spécifiques au mode d’exécution par Smart Contract
Si nous avions considéré les Smart Contracts comme des contrats à part entière, deux solutions se seraient offertes à nous. Premièrement, soumettre les Smart Contracts au droit commun. Ce qui est hautement irréaliste, puisque cela aurait signifié coder l’intégralité du Code Civil pour l’intégrer à l’exécution de chaque Smart Contract, ce qui n’aurait pas seulement été fastidieux, mais également impossible puisque des incompatibilités auraient subsisté (en cas d’annulation du contrat, le retour au statu quo ante, le fait de réputer non écrites les clauses abusives ou la prise en compte de décisions de justice accordant un délai de grâce sont impossibles dans un Smart Contract). Deuxièmement, soumettre les Smart Contracts à un droit spécifique et les doter d’une totale autonomie juridique. Ce qui aurait également posé un certain nombre de difficultés (Catherine Barreau en relève en particulier deux : “Cette démarche est susceptible de soulever deux difficultés : comment créer la confiance nécessaire au développement de cet outil ? L’usage de cet outil pourrait-il être ouvert à tous les contrats et à toutes les parties ?“). Les difficultés liées à ces deux solutions ne se posent pas ici dans la mesure où nous avons démontré que le Smart Contract devait être juridiquement considéré comme un mode d’exécution technique d’un contrat, et non pas comme un contrat en soi. Partant de cette qualification juridique, l’intégration des Smart Contract ne nécessite que l’ajout d’une sous-section 3 à la section consacrée aux effets du contrat entre les parties (articles 1193 à 1198 Code Civil). Le contrat restera soumis au droit commun des contrats, cependant ses effets particuliers (de par son mode d’exécution par Smart Contract) imposeront la mise en oeuvre de règles particulières, définies dans cette section destinée aux effets du contrat. Une simple adaptation du droit des obligations suffira ainsi à intégrer le Smart Contract à l’édifice juridique, loin de la déconstruction annoncée par un certain nombre d’auteurs.
Ces règles particulières viseront à apporter des réponses aux interrogations soulevées dans la seconde partie, sans neutraliser les opportunités offertes par les Smart Contracts. L’ambition n’est pas ici d’être exhaustif, mais de simplement proposer des pistes de réflexions afin de répondre aux principales interrogations soulevées :
Parmi les dispositions les plus importantes de cette sous-section figurerait d’abord celle venant délimiter le champ d’application du recours aux Smart Contracts. Les Smart Contracts pourraient concerner uniquement les contrats créant des obligations ayant pour objet des prestations claires, peu sujettes à interprétation et relativement simples à exécuter. Cela permettra de limiter les vices du consentement liés à l’erreur (interrogation n°1), tout comme le besoin pour les parties de modifier le contrat (interrogation n°2).
Une exigence d’information renforcée pourrait également être mise en place dans le cadre de ces Smart Contracts. Allant au-delà de l’article 1112-1 actuel du Code Civil portant sur l’obligation pré-contractuelle d’information, les parties à un contrat exécuté par Smart Contract devront être informées très précisément à la fois de la nature des prestations exécutées par Smart Contract, tout comme des conséquences de ce mode d’exécution particulier. Cela permettra encore une fois de réduire les risques de vice du consentement (interrogation n°1), mais aussi de répondre aux difficultés liées à la théorie de l’acceptation des risques (interrogation n°3).
Compte tenu des caractères intrinsèques de la chaîne de blocs et de l’impossibilité de neutraliser l’exécution des obligations enregistrées, et a fortiori de les modifier, une autre disposition de cette sous-section pourrait rendre possible le versement d’une indemnité compensatrice du préjudice subi par l’exécution d’obligations nulles, réputées non écrites, ou devenues excessivement onéreuse. Cette compensation pourrait exister, qu’elle ait été prévue dans le Smart Contract ou non (interrogation n°1 et n°2).
Enfin, le Code Civil pourrait favoriser le recours aux zero-knowledge proofs pour les contrats révélant des informations personnelles ou particulièrement sensibles concernant les parties. Les zero-knowledge proofs sont un concept cryptographique permettant la vérification d’un énoncé mathématique sans révéler les informations qui fondent la véracité de cet énoncé (typiquement, cela pourrait permettre de vérifier une transaction dans la blockchain sans avoir accès aux détails de cette transaction)8. Le principal problème subsistant avec les zero-knowledge proof réside dans la lenteur du procédé de vérification par rapport au mining classique, mais il s’agit d’une piste intéressante pour concilier Smart Contract et respect de la vie privée (interrogation n°4).
B. Régime de responsabilité et considérations de sécurité
Les interrogations liées au régime de responsabilité ne semblent pas pour le moment nécessiter de nouvelles dispositions législatives particulières : les règles actuelles peuvent suffire. La jurisprudence devra cependant définir comment ces règles seront appliquées, du point de vue du régime et de l’imputabilité. 3 cas de figures peuvent être envisagés :
Le Smart Contract ne fonctionne pas correctement, et les parties au contrat exécuté par Smart Contract s’en trouvent lésées. Il semble que le régime de responsabilité à retenir ici pourrait être celui, classique, de la responsabilité pour faute, et que cette faute puisse être imputée au programmeur du Smart Contract.
L’oracle sur lequel se base le Smart Contract pour vérifier les conditions auxquelles sont soumises l’exécution des obligations fournit des informations erronées. Encore une fois, il semble ici que le régime de responsabilité pour faute devra être retenu, et que cette faute puisse être imputable à l’oracle chargé de transmettre les informations (sauf si les informations sont devenues incorrectes à cause de leur mauvais traitement par le Smart Contract, c’est alors au programmeur que la faute sera imputable).
La défaillance du Smart Contract porte préjudice à un tiers : on pourrait dans ce cas notamment envisager la responsabilité du fait d’un produit défectueux, imputable au programmeur9.
Enfin, les considérations de sécurité pourrait faire l’objet de dispositions particulières dans la sous-section dédiée aux Smart Contracts. Au vu à la fois des potentielles vulnérabilités liées à la nature du Smart Contract (écrit en code) et des conséquences significatives que peuvent avoir l’exploitation de ces failles de sécurité, une obligation spécifique de sécurisation du code des Smart Contract pourrait être définie dans le Code Civil. Les programmeurs seraient ainsi obligés de vérifier la synthaxe de leur code (et particulièrement la vérification de leurs inputs – input sanitization), mais aussi les potentiels détournement de fonctions pourtant correctement écrites.
Il est désormais temps de conclure ce travail. Nous avons pu, dans une première partie, définir puis qualifier le Smart Contract, mode d’exécution technique d’un contrat sous-jacent. Nous sommes partis de cette base d’analyse pour relever, dans une seconde partie, les différentes opportunités et difficultés posées par le Smart Contract dans la sphère juridique contractuelle. A partir de tous ces éléments, nous avons pu proposer la régulation des Smart Contracts par l’ajout d’une sous-section à la partie du Code Civil portant sur les effets du contrat entre les parties. Des dispositions particulières sont nécessaires afin de réguler convenablement l’utilisation des Smart Contracts. Mais s’ils sont intégrés intelligemment à l’édifice juridique, les Smart Contracts pourront représenter de véritables atouts sans nécessiter une reconstruction complète de notre droit des contrats. Au-delà de la sphère juridique française, les discussions pourraient utilement être portées à l’échelon régional, voire international. La blockchain étant un système par nature décentralisé, une vision juridique globale des différents enjeux mentionnés au cours de ce travail serait en effet bienvenue. Le modèle proposé ici, s’il est basé sur une intégration au Code Civil et donc au droit français, pourrait tout à fait servir de modèle à de telles réflexions qui doivent, comme les propositions faites dans ce travail, permettre au Smart Contract d’entrer dans la sphère juridique tout en laissant l’innovation se développer librement et sans contraintes excessives.
Quentin Roland
1 : Les mineurs sont récompensé en gagnant la monnaie, ou token de la blockchain qui permet de faire des transactions. Par exemple, en Bitcoin.
2 : Ce qui reste théoriquement possible, notamment concernant Bitcoin, détenu en majorité par quelques acteurs importants qui pourraient s’entendre pour falsifier une transaction. Ce n’est cependant pas dans leur intérêt, car faire ceci mettrait en danger la crédibilité du système dans son ensemble.
3 : Ces conditions reposent souvent sur des informations externes à la blockchain. Pour que le Smart Contract puisse vérifier ces conditions et enclencher les transactions dans la blockchain, il faut qu’il ait accès à ces informations : par exemple dans le cadre de paris sportifs, il faut que le Smart Contract puisse déterminer le vainqueur du match pour ensuite allouer les sommes en fonction. Ces informations externes sont fournies par ce que l’on appelle des “oracles”, qui sont en fait une série de sources d’informations certifiées provenant d’un ou de plusieurs opérateurs spécialisés, un site de nouvelles sportives disposant d’un API dans le cadre de notre exemple.
4 : Dans ces deux exemples, les oracles étaient premièrement le site de crowdfunding permettant d’accéder au montant récolté, et deuxièmement le service national de météorologie permettant de mesurer les précipitations.
5 : Alexander Savelyev (2017), Contract law 2.0: ‘Smart’ contracts as the beginning of the end of classic contract law, Information & Communications Technology Law, 26:2, 116-134.
6 : Plus précisément, c’est le texte du Draft of a Common Frame of Reference (DCFR) qui est repris : A contract is an agreement which is intended to give rise to a binding legal relationship or to have some other legal effect. It is a bilateral or multilateral act’. Cette définition est reflète tout à fait la position française sur la nature du contrat.
7 : Précisément parce qu’un accord sur le mode d’exécution d’un contrat suppose un contrat comme vu au point 2.
8 : . Goldreich, S. Micali, and A. Wigderson, Proofs that Yield Nothing but Their Validity or all Languages in NP Have Zero-Knowledge Proof Systems, Journal of the ACM, vol. 38, no. 3, pp. 690–728, 1991.
9 : L. Nancy Birnbaum, Strict Products Liability and Computer Software, 8COMPUTER/L. J. 135, 144 n.64 (1988) – Bev Litulewood & Lorenzo Strigini, The Risks of Software, Sci. AM., Nov. 1992, at 62, 62-63.