Le terme de « smart contract » a été inventé par des « geeks » (il semble que le terme d’informaticien soit daté). C’est un ensemble de règles de gestion codé pour un traitement automatisé. Lâchons le mot : « logiciel ». Le terme, produit d’une rare francisation réussie en informatique, paraîtra suranné à quelques-uns, et s’il n’est pas idéal, a le mérite d’éviter la confusion provoquée par celui de contrat.
Dans le vocabulaire informatique, le terme de contrat n’a pourtant rien d’abusif. Il s’emploie depuis des années, autant que ceux de « clause » ou d’ « argument ». Le « contrat IDL », où IDL signifie Interface Definition Language, désigne, dans une technologie apparue dans les années 90, appelée CORBA et aujourd’hui largement tombée dans l’oubli, les règles qu’un objet informatique doit respecter pour invoquer une fonction portée par un autre objet informatique. Personne ne s’était interrogé à l’époque sur la question de savoir si ce contrat IDL était un contrat au sens juridique du terme. Quand l’architecture des web services a apporté, plus tard, le contrat WSDL – inutile de développer l’acronyme -, ce terme n’avait pas non plus débordé du monde informatique.
Dans la mesure où la blockchain est un registre, un support pour y mettre des données, il fallait bien qu’un nom soit donné au jeu de règles de cohérence et de traitement auquel ces données doivent être soumises. Dans le modèle historique de l’architecture client-serveur, tout processus s’exécute soit sur le poste de l’utilisateur soit sur un serveur connu à l’avance (l’avènement du Cloud complique un peu). La chaine de blocs – pour passer au français – obéit quant à elle à un modèle décentralisé. Le smart contract s’exécute sur la machine qui, parmi plusieurs autres, a résolu la première une fonction mathématique, et ainsi validé le « bloc ». Parce qu’il rompt avec le modèle d’architecture dominant dans l’informatique de gestion depuis 30 ans, ce nouveau mécanisme d’exécution pouvait donc bien être qualifié d’ « élégant », en l’occurrence vraie traduction de l’anglais smart.
Pourquoi, alors, le smart contract fait-il l’objet d’un débat persistent chez les juristes ?
Premier argument invoqué, son exécution est différée dans le temps. Avec pour exemple sempiternel la police d’assurance : on signe le contrat, et le sinistre qui survient plus tard déclenche, à travers ce qu’on appelle un « oracle », un processus de dédommagement embarqué dans le smart contract. Pourtant, l’exécution différée est très banale en informatique. Les ingénieurs systèmes Unix parlent d’un ‘cron’, les développeurs d’application d’un ‘agent’, et les compagnies d’assurance savent depuis longtemps exécuter des dédommagements avec le degré qu’il faut d’automatisme. Rappelons aussi que le contrat MATIF, né en 1986, comble automatiquement les moins-values des investisseurs en obligations d’Etat. C’était il y a 32 ans.
Autre argument, le smart contract étant en open source, on ne pourrait l’attribuer à un développeur en particulier. L’open source est en effet le modèle naturel de la chaine de blocs – pour autant qu’elle soit publique, ce qui n’est pas le cas de la majorité des projets de chaines de blocs d’aujourd’hui. Cependant, l’open source ne donne pas d’indication en matière de responsabilité. C’est un modèle de propriété intellectuelle, que le droit positif sait traiter depuis des décennies. De plus, l’offre propriétaire se développe et de nombreuses entreprises choisiront de payer une licence d’utilisation à un éditeur de smart contract.
Enfin, il n’y aurait pas de responsable de traitement au sens du RGPD, au motif que ce traitement s’exécute sur une machine appartenant à une personne non identifiable. Pourtant, la chaine de blocs n’est à cet égard qu’une variante ultime du nuage informatique, dans lequel non seulement la machine n’est pas identifiable, mais son hébergeur ne l’est pas non plus. L’hébergeur n’est qu’un sous-traitant facultatif qui, même au sens du RGPD, ne porte pas seul la responsabilité du traitement. Bref, le responsable de traitement du smart contract, c’est celui qui l’a installé.
Le smart contract ne révèle donc aucun vide juridique. En revanche, il reste que l’idée est séduisante d’utiliser le smart contract comme support de description et d’exécution des clauses d’un contrat entre deux participants de la chaine de blocs. Cette idée n’est d’ailleurs pas nouvelle. Les gestionnaires d’actifs financiers ont ainsi déjà cherché à mettre en œuvre un « moteur de règles » prenant en charge les clauses sociales, environnementales ou éthiques (par exemple, pas d’actions de fabricants d’armements) inscrites au mandat de gestion qu’un investisseur institutionnel leur aura fait signer. Mais restituer avec précision et fidélité la prose d’un contrat sous forme de code exécutable automatiquement est compliqué et relève de l’analyse sémantique.
Et si on invitait les spécialistes de l’ingénierie du langage dans ce débat ?