Claire Leveneur est Maître de conférences en droit privé, Université Paris-Est Créteil, LDP. Son intervention est basée sur les recherches menées dans le cadre de sa thèse : Les smart contracts, Etude de droit des contrats à l’aune de la blockchain, Dalloz, Nouvelle bibliothèque de thèses, vol. 236, 2024.
Depuis une dizaine d’années, il est possible de faire fonctionner sur certaines blockchains des smart contracts, c’est-à-dire des programmes informatiques qui s’exécutent automatiquement dès que les conditions prédéterminées sont indiquées comme remplies. Ces smart contracts, que l’on peut traduire en français, non pas par l’expression « contrats intelligents », qui serait trompeuse quant à la réalité et à la portée de l’instrument, mais par la périphrase « programmes informatiques auto-exécutants », sont présents sur de très nombreuses blockchains et permettent d’exécuter une diversité d’opérations sur celles-ci .
Pour mémoire, Nick Szabo(1) explique que, à la manière d’un distributeur automatique, le smart contract permet de garantir l’exécution sans faille d’une transaction à compter de son acceptation, selon des conditions prédéfinies. Le smart contract est donc un programme informatique rédigé suivant une logique conditionnelle : si…tel évènement se produit, alors… telle action sera exécutée. Le programme exécute les actions les unes après les autres, en suivant exclusivement les instructions données.
Si l’exécution automatique d’actions programmées peut certes représenter un grand avantage pour celui qui en bénéficie, puisque l’aléa humain s’en trouve écarté, elle recèle toutefois des écueils parfois troublants du point de vue du respect des droits des parties. Le programme informatique n’est en effet dirigé que par le code informatique, et ne répond pas spécifiquement au droit : il obéira aux instructions données, infailliblement, sans prendre en compte une règle de droit interdisant une telle action, ou toute autre donnée extérieure. Des utilisateurs de smart contracts sur une blockchain pourraient alors se retrouver dans des situations d’exécution illicite ou indue.
Peut-on mobiliser les smart contracts comme des outils au service d’une utilisation contractuelle ? Pourrait-on utiliser un smart contract pour exécuter des clauses d’un contrat ? Mieux, pour conclure directement un contrat ? Le smart contract serait alors le support d’un véritable contrat entre les parties.
Pour autant, il n’existe à ce jour aucune réglementation, ou presque, de ces smart contracts utilisés quotidiennement. On pourrait même se demander si les smart contracts, de purs programmes informatiques, sont véritablement susceptibles d’être réglementés par le droit, et en particulier par le droit des contrats. L’interrogation est légitime, au regard du cadre d’utilisation des smart contracts aujourd’hui : les blockchains, du fait de leurs racines anarcho-libertariennes.
Mais les smart contracts, comme toutes les applications des blockchains, doivent être soumis au droit. Dès lors qu’ils sont utilisés au service des contrats, le droit des contrats pourrait leur être applicable. Il n’est nul besoin de prévoir d’ores et déjà une règlementation nouvelle ; le droit positif recèle de richesses lui permettant de s’adapter le plus souvent aux nouveautés technologiques et sociétales. En cas de difficulté toutefois, on peut prévoir quelques adaptations techniques des smart contracts – ce qui est d’ailleurs demandé par le Data Act du 13 décembre 2023, dans son article 30, préconise d’introduire certaines fonctions dans les smart contracts utilisés pour les transferts de données, on y reviendra.
Comment utiliser les smart contracts alors ? Le plus évident est l’utilisation de ces programmes informatiques pour exécuter des clauses de contrat. C’est ce qui permet de comprendre pourquoi la commission d’enrichissement de la langue française a proposé en 2021 de les traduire par le terme « automate exécuteur de clauses ». Toutefois, on peut aller plus loin que cela : les smart contracts peuvent aussi permettre la rencontre d’une offre et d’une acceptation, et ainsi être le support d’un contrat, en même temps que sa modalité d’exécution. Nous dirons quelques mots de ces deux volets et des éventuelles difficultés qui peuvent se rencontrer pour se conformer au droit des contrats.
Smart contract et exécution du contrat
Le smart contract qui exécute les clauses d’un contrat est programmé informatiquement. Il est ensuite déployé sur une blockchain, ce qui lui confère les caractéristiques d’immuabilité et de transparence propres à la blockchain. Dès que les conditions prévues dans la programmation sont remplies, son exécution est alors irrésistible, tel un seau posé sur une porte en équilibre ne peut que se renverser sur la prochaine personne à pousser la porte.
Programmé dans un langage informatique inflexible, il n’offre en principe pas de place pour une certaine humanité contractuelle mais assure l’efficacité de l’exécution des clauses contractuelles. La rédaction des smart contracts en code informatique impose en effet de respecter les contraintes de la programmation informatique, qui suit une grammaire stricte. Le smart contract ne peut effectuer que les actions prévues initialement : on dit qu’il est déterministe. Il n’a d’ailleurs aucune intelligence pour décider en autonomie des actions nouvelles qui n’auraient pas été programmées.
À cette inflexibilité native s’ajoute l’immuabilité due à l’enregistrement du smart contract dans une transaction inscrite immuablement dans la blockchain concernée. L’inflexibilité est renforcée, puisque, en principe, aucune modification ne peut être faite ultérieurement dans le smart contract – tant que la possibilité n’a pas été programmée en amont.
L’avantage de cette inflexibilité informatique réside dans l’efficacité économique qu’offre ainsi le smart contract pour l’exécution de clauses contractuelles informatisables. Les parties ont la certitude que le smart contract s’exécutera tel qu’il a été programmé, sans variation possible et sans nécessité d’interprétation – c’est une promesse d’exécution parfaite, d’efficacité à toute épreuve, une force obligatoire renforcée du contrat. En contrepartie, l’inflexibilité a pour corollaire des coûts importants de programmation, puisqu’il est nécessaire d’anticiper toutes les issues possibles dès la conception du smart contract, et s’accompagne de risques incompressibles d’erreurs de programmation informatique, avec l’impossibilité de les corriger a posteriori.
L’exécution par smart contracts s’oppose ainsi à la flexibilité et à la souplesse du droit des contrats, qui recourt à des notions floues, à des standards, et qui laisse une place importante à l’appréciation des parties voire du juge – autrement dit, qui laisse une place importante à l’humain. Le smart contract ne laisse en principe pas de place à la révision pour imprévision, à l’exception d’inexécution, ou à tout pouvoir discrétionnaire du créancier d’une obligation.
On peut proposer d’assouplir légèrement les smart contracts, pour que l’outil s’accorde mieux avec la logique contemporaine du droit des contrats, davantage propice à une certaine justice contractuelle. Trois fonctions informatiques peuvent être programmées dans tout smart contract de façon standardisée, que l’on retrouve d’ailleurs dans le Data Act, comme évoqué tout à l’heure.
- Une fonction stop ou pause aura pour effet l’arrêt temporaire du smart contract. Cette fonction permettra de prendre en compte l’imprévu ou de nouvelles circonstances en donnant aux parties le temps de renégocier le contrat, ou encore un cas de force majeure donnant lieu à un cas d’impossibilité d’exécution temporaire ; la fonction est également utile pour le respect d’un délai légal de réflexion. La fonction proposée permet d’éviter une exécution indue du smart contract dans certains cas, et donc des restitutions peu évidentes à mettre en œuvre.
- Une fonction selfdestruct sera nécessaire pour programmer l’arrêt définitif du smart contract, avec une action subséquente return to sender, afin de renvoyer les actifs stockés à l’adresse du smart contract à leur émetteur. Cette fonction rendra plus simple l’application du droit des contrats dans de nombreuses situations, principalement pour mettre en œuvre l’anéantissement du contrat : résolution, révocation unilatérale ou consensuelle, nullité, caducité, terme ou condition résolutoire, clause résolutoire, clause de dédit, droit de rétractation. Là encore, cette fonction évite une exécution automatique non voulue ou illicite d’un smart contract exécutant des clauses contractuelles juridiquement privées d’effet.
- La dernière fonction vise à pallier l’immuabilité des smart contracts, puisqu’il s’agit de programmer un accès modificatif, dont le déclenchement recommandé est multilatéral, pour éviter une modification du smart contract à l’insu de l’une des parties. L’idée est de donner une possibilité de modification du smart contract par le déploiement d’un smart contract secondaire. La fonction est utile en cas d’avenant entre les parties, ou pour toute modification subséquente à une interprétation du contrat, ou encore pour mettre en œuvre une condamnation à s’exécuter ou à restituer.
Pour terminer sur le recours aux smart contracts comme outil d’exécution du contrat, il est recommandé aux parties de rédiger dans leur contrat une clause de recours au smart contract, notamment pour anticiper les questions de preuve, d’interprétation (avec une priorité donnée aux clauses rédigées en langage classique « naturel » et non informatique), de modification, mais aussi de responsabilité en cas de dysfonctionnement. Il paraît important que dans un contrat de gré-à-gré, chaque partie devrait être responsable du fonctionnement du smart contract quant à ses obligations respectives, afin de responsabilité les parties et les inviter à vérifier sérieusement le code informatique du smart contract qu’elles s’apprêtent à signer cryptographiquement.
Enfin, une attention particulière pourra être apportée à l’aménagement des sanctions de l’inexécution et aux restitutions à mettre en œuvre le cas échéant.
Smart contract et formation du contrat
Disons quelques mots dans un second temps, assez bref, sur la possibilité d’utiliser un smart contract comme support du contrat, comme révélateur d’un accord de volontés qui se formerait directement sur la blockchain.
Il est en effet envisageable d’utiliser exclusivement le programme informatique pour mener une opération donnée sans avoir rédigé de contrat classique au préalable – par exemple, un prêt en bitcoin, ou plus complexe, un nantissement adossé à un prêt. Vous avez là un pur smart contract, qui révèle l’accord de volontés des parties, scellé au moment de l’activation du smart contract de prêt, et prévoyant l’intégralité de la relation contractuelle : envoi des fonds à l’emprunteur, modalités de remboursement (durée, taux, sanctions), droit de rétention, etc.
Des initiatives permettent aussi de rédiger un contrat hybride, où les clauses du contrat prennent en partie une forme classique en langage naturel juridique, en partie une forme informatique afin de prévoir dès la rédaction du contrat son exécution par smart contract : par exemple, un contrat de travail avec versement automatique du salaire toutes les 24h ou toutes les semaines ; indemnités de rupture automatiquement calculées et versées, etc.
Ces possibilités ont d’ailleurs été étudiées par la commission des lois britanniques, qui a rendu un rapport présentant les mêmes conclusions : il est possible d’utiliser un smart contract dans le cadre d’une relation contractuelle dans trois cas : le pur smart contract, le contrat hybride, et le smart contract d’application d’un contrat classique – dans ce dernier cas, le smart contract sert seulement à exécuter un contrat. Retenez que, d’un point de vue contentieux, un juge pourra tout à fait juger que l’opération menée par smart contract est constitutive d’un contrat, et en déduire des sanctions applicables en cas d’inexécution du contrat, ou encore écarter la qualification de vol de crypto actifs si ceux-ci ont été transférés en vertu d’un contrat, dont le negotium (l’opération recherchée) est révélé par les termes du smart contract…
Un point important doit être gardé à l’esprit toutefois : il est impératif d’identifier les parties au smart contract si l’on veut pouvoir un jour avoir recours au juge. Car si le cocontractant est sous pseudonyme, il est presque illusoire de pouvoir l’assigner en justice… C’est pourquoi la forme hybride d’un contrat aussi rédigé en langage informatique, ou le contrat classique prévoyant une exécution par smart contract, ont plus de chance d’être utilisés par les parties voulant s’assurer un recours judiciaire le cas échéant. À défaut, il faudra tenter de recourir à la justice sur blockchain, par le biais d’un tribunal arbitral où les arbitres sont des utilisateurs et la solution est choisie suivant la théorie des jeux…
Vous pouvez donc avoir recours à des smart contracts en gardant à l’esprit qu’il faut anticiper les questions de responsabilité en cas de dysfonctionnement, bien sûr avoir identifié les parties, mais aussi prévoir des fonctions informatiques permettant d’adapter le cours du smart contract si le contrat initial était amené à évoluer. Je vous remercie pour votre attention.