Blockchain et gouvernance. Pourquoi un Smart Contract n’est pas un Contrat.

« Code is Law » est l’un des slogans les plus connus pour expliquer le fait qu’une transaction, une fois qu’elle a été exécutée sur une blockchain, ne peut plus être modifiée ni altérée par quiconque et ceci sans le contrôle d’un organe central. Le parallèle est tentant : les programmes écrits pour une blockchain font office de loi car ils s’appliquent automatiquement et les comportements qui y sont décrits sont respectés par construction.

Cette caractéristique des Smart Contracts est en fait vraie pour tout programme informatique : l’ordinateur exécute aveuglément le code en respectant exactement les instructions qu’on lui donne. La propriété supplémentaire des blockchains est que la base de données étant inaltérable, on ne peut pas modifier son état et notamment les « soldes » des comptes en monnaie virtuelle sans l’accord des propriétaires des adresses. C’est cette dernière propriété qui fait qu’en réalité, « Code is Law » est une affirmation fausse du point de vue de la loi telle qu’elle existe dans le droit et qu’un Smart Contract n’est en réalité pas un contrat au sens juridique.

En effet, un Smart Contract est écrit par un développeur (un être humain, en tous cas pour le moment) et exécuté par des machines (l’ensemble des nœuds de la blockchain). Si l’exécution du contrat est infaillible car exactement conforme à ses termes (le code), sa rédaction ne l’est pas. L’aventure de TheDAO cet été en est un exemple flagrant. Le contrat passé entre les investisseurs au sein de TheDAO et les futurs projets comportait au moins une clause dont l’application stricte a conduit au transfert d’environ 40 millions de dollars selon une modalité qui, si elle était possible sur le contrat (sinon elle n’aurait pas pu s’exécuter), n’avait pas été anticipée par les contractants, ni même par les rédacteurs du contrat.

L’article 1128 du code civil français consacre le principe de la volonté des parties concernant la formation du contrat :

  • Les parties ont-elles voulu s’engager ? Il faut vérifier leur consentement.
  • Étaient-elles aptes à le vouloir ? C’est le problème de leur capacité.
  • Qu’ont-elles voulu ? Il faut un objet à leur engagement (art. 1163 du code civil).

Ainsi, avons-nous tous réellement la capacité à contracter un engagement rédigé dans un Smart Contract ? La réponse est évidemment non. Il était possible à tout un chacun de se rendre compte de la faille qui résidait dans le Smart Contract de TheDAO et de voir que cette clause du contrat n’était pas conforme à l’objet de l’engagement, mais une seule personne l’a vue et en a profité.

Le second problème concerne la réversibilité et la possibilité de rompre l’engagement. Une fois le transfert prévu par le Smart Contract mais pas prévu par les contractants effectué, il a été impossible de revenir simplement à la situation antérieure sans contrevenir aux principes fondamentaux de la blockchain. Dans le cas d’un contrat classique, quand il est avéré que l’une des parties n’était pas en capacité de contracter, le contrat est annulé par un tribunal et ses effets annulés également. Le tribunal force la partie qui a tiré profit de la situation à rembourser la partie lésée, par un moyen de saisie si nécessaire. Ceci est impossible sur une blockchain si cela n’a pas été prévu dès la création des « contrats ». Une seconde raison pour laquelle un Smart Contract n’est pas un contrat.

Quelles sont les solutions ?

A court terme, pour qu’un Smart Contract se rapproche d’un contrat, il est nécessaire, d’une part de le faire rédiger, auditer et valider par une personne en capacité de le faire, et d’autre part de permettre la réversibilité des actions exécutées suite à la signature de ce contrat si un organisme autorisé (un tribunal par exemple) en décide ainsi.

Dans le langage des développeurs, nous parlons de « Patterns » à propos de programmes informatiques développés en respectant certains principes définis à l’avance, ou de « Frameworks » quand ces programmes réutilisent du code existant et s’exécutent au sein d’un environnement prédéfini, en en respectant les principes de fonctionnement. Il est nécessaire aujourd’hui que des développeurs et des juristes travaillent main dans la main pour créer des patterns de smart contracts et des frameworks dont la structure et les caractéristiques respectent le droit de la juridiction dans laquelle ils s’appliquent.

About fabrice.croiseaux

Mail User
This entry was posted in Non classé. Bookmark the permalink.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *


*