Partager cet article

Les smart contracts : définition, implications et limites
Articles / Chroniques

Les smart contracts : définition, implications et limites

Introduction

Le terme “smart contract” a été proposé pour la première fois en 1994 par Nick Szabo, un informaticien, juriste et cryptographe également connu pour ses travaux sur les monnaies digitales et notamment Bitgold, l’un des précurseurs de Bitcoin.  Dans l’un de ses articles universitaires, il propose la mise en place de programmes informatiques imitant la structure de contrats traditionnels pour répondre aux enjeux liés à la démocratisation d’Internet et à la digitalisation des échanges.

Depuis leur invention, les smart contracts n’ont jamais réellement été employés, et ce n’est que depuis peu que l’on commence à entendre parler de ce type de programme au potentiel illimité. Leur récente popularité est due à l’essor de la technologie blockchain sur laquelle leur exécution repose et en particulier leur déploiement au sein de la blockchain Ethereum.

Que sont concrètement les smart contracts ? En quoi la technologie blockchain joue-t’elle un rôle indispensable à leur égard ? Qu’est-ce que la blockchain Ethereum, et comment a-t elle contribué à la standardisation des smart contracts ? Enfin quels sont les apports des smart contracts et leurs limites ?

Fonctionnement des Smart Contracts

Les smart contracts sont des programmes informatiques contenant des conditions vérifiables simplement. Les parties à l’origine de l’accord doivent s’accorder sur les conditions du smart contract. Celles-ci s’apparentent donc aux termes d’un contrat traditionnel. Dès lors que les conditions sont remplies, le programme va s’exécuter automatiquement. Le procédé est le suivant : Si “la condition” est réalisée, Alors “le programme” est exécuté.  L’exécution ne nécessite pas l’intervention humaine. Les smart contracts sont réellement autonomes.

Les smart contracts peuvent exister et fonctionner via une base de données classique, mais il ne s’agit alors que de simples programmes informatiques automatisés. Ce genre de programmes existent depuis toujours. C’est l’emploi de la technologie blockchain et ses attributs qui leur donnent tout leur sens.

Comme nous le savons, la blockchain est une base de données décentralisée et répliquée entre tous les noeuds d’un réseau pair-à-pair. Contrairement à une base de donnée traditionnelle maintenue par une entité quelconque, la blockchain est inviolable, résistante à la censure et auditable par tous. Un smart contract, de par son inscription au sein de la blockchain, prend les caractéristiques de cette dernière. En pratique, cela signifie que dès lors que deux parties se sont mises d’accord sur les conditions d’un smart contract, il ne peuvent plus revenir dessus, et il sera inscrit de manière transparente sur la blockchain.

Tout le monde peut ainsi vérifier un smart contract mais personne ne peut l’annuler ou le rompre. Il est résistant à la censure, tout comme la blockchain.

La Blockchain Ethereum ou l’Essor des Smart Contracts

L’idée d’exploiter au maximum le potentiel des smart contracts revient à Vitalik Buterin, le fondateur d’Ethereum. Passionné de Bitcoin dès 2011 et membre actif de la communauté Bitcoin (il co-fonde notamment Bitcoin magazine la même année), il se rend compte du potentiel de la technologie blockchain en tant que registre immuable et résistant à la censure pour l’élaboration des smart contracts et ainsi la concrétisation du projet initié par Nick Szabo. Voyant que la blockchain bitcoin et le langage employé par sa communauté de développeurs sont inadaptés pour la programmation de smart contracts complexes, il débute le développement d’Ethereum en 2014.

Ethereum reprend la plupart des caractéristiques majeures de Bitcoin comme son consensus de Preuve de Travail (PoW), bien que la transition vers la Preuve d’Enjeu (PoS) soit prévue. La grande différence entre les deux protocoles réside dans le langage de programmation qu’ils utilisent. Ainsi, les développeurs Ethereum ont créé le langage Solidity spécialement pour la rédaction de smart contracts au sein d’Ethereum. C’est un langage “Turing-Complet” qui permet d’implémenter une logique sophistiquée au sein des smart contracts d’Ethereum et ainsi de les rendre beaucoup plus personnalisables que sur Bitcoin.

La fondation derrière Ethereum a “démocratisé” et cadré l’utilisation des smart contracts par la proposition et la création de standards. Les standards sont tout simplement des règles d’écriture du code pour les différents types de smart contracts. Le standard ERC 20, qui fera l’objet d’un prochain article, est le standard utilisé pour la création de tokens sur la blockchain Ethereum. C’est ainsi l’utilisation de smart contracts standardisés qui a permit l’essor d’une toute nouvelle forme de levée de fonds en actifs digitaux  : l’Initial Coin Offering (ICO) que nous présenterons plus en détail dans un prochain article.

Cas d’Usages et Intérêts des Smart Contracts

Le caractère décentralisé et automatisé du contrat permet à deux partenaires de nouer une relation commerciale sans qu’ils aient besoin de se faire confiance au préalable, sans autorité centrale ou intermédiaire. Comme nous l’avons vu, une fois le contrat accepté, c’est le système lui-même et non ses agents, qui garantit son exécution.

Cette automatisation laisse envisager :

  • une diminution drastique des frictions,
  • une réduction des délais de paiement,
  • un abaissement du risque d’erreur.

De plus, les règles qui régissent le smart contract peuvent recouvrir tout événement vérifiable en ligne. Elles peuvent concerner, par exemple, le paiement automatique d’une livraison à domicile une fois signé électroniquement, le versement des gains au vainqueur d’un pari sportif dès le match terminé ou encore l’ouverture de la porte d’une voiture une fois le paiement envoyé au loueur. Il existe une quantité infinie de champs d’applications à l’utilisation de smart contracts. On pourrait retrouver l’utilisation de smart contracts dans tous les secteurs économiques comme un moyen d’automatiser des tâches et de gagner du temps. Leur potentiel est aujourd’hui impossible à mesurer tant leur champ d’application est vaste.

L’emploi de smart contracts permet de garantir le transfert de propriété sur internet, chose impossible jusqu’alors et rendu possible grâce à l’emploi de la blockchain.

Problèmes Rencontrés par les Développeurs

Les smart contracts ont cependant des limites et contraintes que les communautés  de développeurs souhaitent adresser.

L’immuabilité apportée par la blockchain rend ainsi impossible toute modification d’un smart contract, une fois exécuté. Impossible donc de revenir en arrière dans le cas où un smart contract aurait été mal rédigé. Cette immuabilité, qui est souvent considéré comme une qualité, et qui donne son intérêt à la technologie blockchain, est donc aussi le talon d’Achilles des smart contracts. Une erreur dans le smart contract ou encore l’absence d’audits professionnels et sérieux peut entraîner des conséquences désastreuses, comme nous rappelle l’histoire de theDAO. Ce projet, qui devait être financé par ICO a dû être abandonné suite à un vol massif de tokens ETH. Le smart contract de l’ICO avait des failles critiques que les hackeurs ont su exploiter pour voler les éthers en séquestre.

De plus, et en dépit de leur appellation, les smart contracts ne sont pas des contrats à proprement parler. Ils n’ont en aucun cas une quelconque autorité juridique.

Les smart contracts sont avant tout des programmes exécutables et enregistrés sur une blockchain et tout au mieux l’application technique d’un contrat juridique.

Conclusion

C’est indéniable, les smart contracts sont au goût du jour ! Le lancement d’Ethereum a ressorti du placard cette idée vieille d’il y a plus de 20 ans mais jusqu’alors impossible à appliquer. Ces programmes, couplés à la technologie blcokchain, permettent l’automatisation du transfert de valeur par internet sans intérmédiaire pour vérifier et effectuer le paiment-livraison.

Le potentiel des smart contracts est encore difficile à estimer mais beaucoup d’entreprises se penchent sur la question de leur implémentation au sein de leurs processus. Elles y voient déjà un outil qui leur permettraient de supprimer beaucoup d’intermédiaires et de leur faire ainsi gagner temps et argent dans leur fonctionnement.

Les smart contracts ont cependant des limites qui sont liées à la nature immuable de la blockchain et qu’ils adoptent de facto. La non-reversibilité des smart contracts en cas d’erreur dans leur écriture est ainsi ce qui fait leur force et à la fois ce qui les rend vulnérable. Cependant, il faut bien tenir compte de la jeunesse de la blockchain, technologie sous-jacente des smart contracts, et de la ferveur des développeurs à trouver des solutions aux obstacles qui barrent encore la route à leur adoption finale !

Un coup de pouce pour cet article ?

2+

Partager cet article

Laisser un Commentaire

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>