June 4, 2021

L’ère des smart contracts

5 MIN READ – TEAM XSL LABS

Share on facebook
Share on twitter
Share on linkedin
Share on telegram
Share on whatsapp

L’ère des smart contracts

Dans la lignée de nos articles concernant les technologies utilisées par XSL Labs, comme l’IPFS et le ZKP (que vous pouvez retrouver sur notre blog), nous allons aujourd’hui nous pencher sur les « smart contracts », afin de comprendre leur histoire, leurs enjeux, et comment ils s’insèrent dans notre projet.

Si vous vous intéressez de près ou de loin à la blockchain, vous avez déjà pu lire ou entendre cette expression, qui se traduit en français “contrat intelligent”.

Les contrats intelligents sont des programmes informatiques, dont le contenu contient les termes d’un accord, et qui sont capables d’exécuter ces termes.

Leur créateur, Nick Szabo, s’intéresse dès les années 1990 à l’évolution de la pratique du droit des contrats. Il définissait alors les contrats intelligents comme étant des protocoles de transaction informatisés, généralement accompagnés d’une interface graphique, qui permettent de formaliser et sécuriser des transactions sur les réseaux informatiques.

Pour lui, l’essor du numérique permet d’envisager de nouvelles façons de formaliser des relations entre des individus. Dans les faits, il s’agit ici d’écrire des lignes de code de type « si, alors » (condition, conséquence) afin d’automatiser des accords entre des individus. Il voit ici une façon de sécuriser des contrats, c’est-à-dire empêcher leur rupture par une des parties.

Dans son article « Formalizing and Securing Relationships on Public Networks »(1), Nick Szabo voit dans le distributeur automatique un ancêtre à l’idée des contrats intelligents. Le distributeur constitue le contrat, n’importe quelle personne peut effectuer une transaction avec le vendeur.

Dans les faits, l’acheteur insère ses pièces, choisit son produit, et le distributeur va automatiquement donner le produit à l’acheteur (le distributeur exécute un code, le vendeur n’a pas besoin d’agir ni d’être présent pour que le contrat de vente soit conclu).

Toujours selon l’auteur, les contrats intelligents permettent d’aller plus loin : ils peuvent concerner toutes sortes de biens qui ont un lien avec le numérique. Dans le cadre des systèmes de sécurité des automobiles, un contrat de vente sous la forme d’un contrat intelligent donnerait à l’acheteur les « clés cryptographiques » permettant d’utiliser le véhicule. De la même manière que pour le distributeur, l’acheteur et le vendeur n’ont pas besoin de se faire confiance, et il devient impossible de voler un véhicule.

Les contrats intelligents sont intimement liés à la blockchain. En effet une des caractéristiques de la blockchain fait que les informations qui y sont entrées sont immuables : une fois inscrites sur la blockchain, les données sont permanentes. Elles ne peuvent pas être modifiées ni effacées. On peut ainsi déployer des contrats intelligents en étant certain qu’ils ne pourront pas être rompus.

Dans les faits, de nombreuses entreprises se sont déjà intéressées au potentiel des contrats intelligents dans le cadre de contrat simples. Par exemple, dès 2017, le groupe d’assurances AXA a lancé le programme Fizzy (2). Il s’agissait d’une assurance couvrant les retards des trajets aériens. L’idée était qu’en cas de retard d’un vol, le souscripteur du contrat d’assurance était automatiquement indemnisé. En effet un contrat intelligent était déployé sur la blockchain Ethereum, qui vérifiait auprès d’un oracle les retards sur les vols et procédait à l’indemnisation le cas échéant.

Ceci permettait d’éviter les démarches en vue de se faire indemniser : dès lors qu’un retard était constaté, l’indemnisation était automatique.

L’expérience Fizzy a malheureusement pris fin en 2019, n’ayant alors pas rencontré son public. Elle a toutefois pu démontrer l’intérêt des contrats intelligents dans un tel secteur.

Comme on a pu le constater précédemment, les contrats intelligents, de par leur nature de programmes et leur lien avec les blockchains, ont de multiples avantages par rapport à des contrats classiques.

D’une part, leur exécution est automatique : lorsque les conditions qui ont été inscrites dans le contrat intelligent sont remplies, alors le programme va automatiquement procéder à l’exécution de la contrepartie. Il est donc impossible de tricher avec le système, et de décider de ne pas remplir son engagement. Par exemple le risque d’impayé n’existe plus.

D’autre part, les transactions effectuées par le biais d’un contrat intelligent sont sécurisées. On peut conclure un contrat avec un parfait inconnu sans avoir à lui faire confiance. Le code informatique seul impose les termes du contrat, d’où l’adage « in code we trust », et ce code est inscrit sur la blockchain, il est donc public et immuable.

Enfin, potentiellement, le contrat intelligent supprime des intermédiaires coûteux. On peut imaginer que demain la location de logement sur Internet soit gérée par des contrats intelligents. Dans un futur où l’accès à un logement est géré par un code d’accès et non plus des clés physiques,  une gestion via contrat intelligent devient possible sans intermédiaire, supprimant ainsi son coût.

En revanche, les contrats intelligents ont également quelques faiblesses auxquelles il faut s’intéresser.

D’une part, ils sont des algorithmes à exécution automatique, leur contenu consiste en des lignes de code, et comme tout code, il peut contenir des failles, qui ne sont pas réparables une fois que le contrat est déployé sur la blockchain. En 2016, l’exploitation d’une faille informatique présente sur un contrat intelligent de la Decentralized Autonomous Organization avait eu des conséquences dramatiques pour la blockchain Ethereum (3). La sécurité des contrats intelligents est donc une priorité absolue, d’où le recours à des audits voire des bug-bounties : récompenser des personnes qui détecteraient des failles dans les programmes.

Ensuite, même si le contrat lui-même est consigné sur la blockchain, et qu’il est public et immuable, il peut nécessiter de faire appel à un oracle, comme c’était le cas de Fizzy que nous avons évoqué, et il faut donc pouvoir faire confiance à cet oracle. Ainsi il existe toujours des intermédiaires dès lors que les conditions du contrat nécessitent d’interroger des bases de données en dehors du réseau. Cependant des projets tels que Chainlink visent à résoudre ce problème, il s’agit de créer des oracles eux-mêmes décentralisés.

Enfin, du fait que les blockchains fonctionnent via leur propre actif, et que celui-ci peut connaître des fluctuations importantes, un montant enregistré sur le contrat intelligent peut voir sa valeur grandement modifiée une fois rapportée en monnaie fiat, il existe donc une certaine incertitude en termes de montants en fonction des cours. Cependant de nouvelles technologies rendent possible l’utilisation de stablecoins, qui permettent ainsi de pallier ce risque.

L’expression « contrat intelligent » renvoie à l’idée même des contrats. Dans les faits, un contrat intelligent peut très bien formaliser les termes d’un contrat, mais il ne peut pas pour autant s’y substituer. En effet le droit régit très précisément cette matière. Sans entrer dans les détails, par exemple un contrat n’est valide que lorsque les parties y consentent de façon libre et éclairée. Or à moins d’être informaticien, comprendre le contenu d’un contrat intelligent est complexe, il est donc difficile d’apporter un consentement valable en droit à l’exécution d’un code informatique qu’on ne comprend pas.

Ainsi, le contrat intelligent ne peut être que le support d’un contrat au sens classique du terme, dont il facilite l’exécution, mais ne peut pas le remplacer. Seul, il est dénué de valeur juridique.

Il est facile d’envisager des cas concrets d’utilisation des contrats intelligents, même si tout reste à faire pour les intégrer au monde numérique de demain.

En reprenant l’hypothèse de contrats intelligents simples, on peut par exemple envisager que des projets de crowdfunding recourent à ces programmes : des utilisateurs financent le projet, et si l’objectif de financement est atteint, alors les fonds récoltés sont libérés vers le créateur du projet. En revanche, si l’objectif n’est pas atteint, alors les fonds sont retournés vers les investisseurs.

De la même manière, on peut imaginer que les paris sportifs soient gérés par des contrats intelligents, et non plus par les sites classiques de paris. Il suffit alors d’intégrer la consultation d’un oracle afin de vérifier les résultats de l’évènement en question et ainsi redistribuer l’argent des paris entre les gagnants.

Il faut bien entendre que les contrats intelligents ont encore tout à prouver et gagneront en popularité au cours du temps. Les exemples précédents montrent qu’on peut effectivement s’affranchir de différentes plateformes et ainsi supprimer les coûts liés : typiquement la rémunération de ces intermédiaires qui sont des sociétés à but lucratif.

A présent que nous avons étudié les tenants et aboutissants des contrats intelligents, nous pouvons envisager d’autres utilisations de ceux-ci.

En effet, si l’optique de Nick Szabo était de préparer la sécurisation des relations contractuelles entre des individus, son approche et la pratique des contrats intelligents tendraient à limiter leur potentiel. En soi, il s’agit simplement de programmes informatiques dont le potentiel dépasse les échanges financiers, leurs possibilités sont en fait virtuellement infinies.

Chez XSL Labs, c’est un contrat intelligent qui permet la création des SDI.

Le sujet DID (le propriétaire du SDI) crée sa paire de clés publique/privée, conserve la clé privée puis transfère la clé publique au contrat intelligent. C’est grâce à celui-ci que des échanges avec des tiers deviennent possibles, puisqu’il permet de mettre à disposition cette clé publique, des références et informations que l’utilisateur choisit de partager au cas par cas. Ce contrat intelligent, outre la création de SDI et la mise à jour de celui-ci, agit ainsi comme annuaire permettant au sujet DID de gérer ses attributs. Le contrat intelligent est utilisé comme un lieu de rassemblement de l’information hors données sensibles, permettant à l’utilisateur d’assembler son document DID (DDO).

Enfin, le contrat intelligent permettra également le cas échéant la délégation du contrôle du SDI (ce qui permet notamment la mise en place d’un contrôle parental).

Comme vous pouvez le voir, ce programme décentralisé est un véritable moteur de l’écosystème, aux fonctions multiples.

Vous pouvez retrouver ce contrat intelligent sur notre github (https://github.com/XSL-Labs).

Les contrats intelligents sont donc amenés à prendre de l’ampleur au cours des années et décennies à venir. S’ils étaient envisagés dès les années 1990, et que le Bitcoin a apporté les premières transactions, c’est sous la blockchain Ethereum, pensée pour les contrats intelligents, que les premières applications concrètes de programmes ont pu voir le jour. A chaque génération de blockchain, les possibilités s’ouvrent davantage, il est donc probable que de plus en plus d’acteurs décident de recourir à ces procédés afin de gagner en fiabilité, en rapidité et en sécurité s’agissant de l’exécution de programmes sur la blockchain.


(1) pour aller plus loin : https://journals.uic.edu/ojs/index.php/fm/article/view/548/469

(2) https://www.axa.com/fr/magazine/axa-se-lance-sur-la-blockchain-avec-fizzy

(3) https://medium.com/swlh/the-story-of-the-dao-its-history-and-consequences-71e6a8a551ee

Copyright © 2020 XSL Labs – All rights reserved