Comprendre les smart contracts

L’économie des smart contracts est encore embryonnaire mais semble promise à un très bel avenir. De nombreuses applications décentralisées dans les secteurs de la santé, l’assurance, ou encore les chaînes d’approvisionnement (pharmaceutiques, agro-alimentaires, cosmétiques, etc.) sont actuellement en cours de développement et visent à éliminer les intermédiaires pour simplifier les processus et ainsi réduire les coûts pour le consommateur.

Comme il est distribué par des milliers d’ordinateurs, une grande entreprise est empêchée de les garder, ce qui élimine la bureaucratie, la censure et les coûts / temps importants impliqués dans ce processus, qui, subsidiairement, est le gardien jusqu’à présent. Si nous combinons les principes d’un contrat intelligent avec la créativité de nombreux développeurs sur la planète, il en résulte à des coûts qui frôlent la gratuité des possibilités inédites et accessibles à tous.

En somme, l’argent devient programmable. Une fonction dont les États qui historiquement, frappaient monnaie, pourraient se saisir. Des écosystèmes sans autorité, des figures qui soumettent leurs membres à leur volonté. Nous parlons d’un monde plus juste que l’ancien avec les contrats papiers et d’applications régies par des tiers de confiance. Ce sera une économie dans laquelle les crypto-actifs joueront un rôle essentiel.

Fonctionnement du smart contract

La confiance est un concept clé en droit des contrats. Le problème de confiance se pose notamment en rapport avec la crainte, souvent légitime, de devenir victime d’un comportement opportuniste à l’occasion d’un échange.

Au moment de l’exécution du contrat, ce type de comportement peut se manifester sous forme d’inexécution ou de mauvaise exécution des obligations contractuelles. Un contrat est donc un accord entre deux ou plusieurs parties, un environnement où il est défini ce qui peut être fait, comment cela peut être fait, ce qui se passe si quelque chose n’est pas fait. Jusqu’à présent, les contrats étaient soit des documents verbaux, soit des documents écrits coûteux avec un problème d’interprétation concernant le contenu des contrats.

Un autre problème avec les contrats traditionnels est qu’ils peuvent être signés des deux côtés par l’une des deux parties, sans que l’autre ne soit au courant. Cependant, dans le cas de smart contracts, ceci n’est pas possible car ils nécessitent la clé de signature digitale, qui est seulement connue pas l’individu qui en est propriétaire.

Définition du smart contract

Le contrat intelligent s’appuie sur des «scripts» écrits avec des langages de programmation, il est capable de s’exécuter et de se faire honorer, de manière autonome et automatique, sans intermédiaires ni médiateurs. Toutes les écritures comptables relatives à ces échanges de valeurs numériques sont systématiquement inscrites dans la blockchain. De la sorte tous les transferts d’actifs, sont à la fois publics, prévisibles et irrévocables.

L’idée derrière les smart contracts est assez simple. Ils sont exécutés sur une base de logique simple, Si/Alors

Algorithme de smart contract

  • SI vous me transférer l’objet A, ALORS le montant (argent, crypto) vous sera versé
  • SI vous transférez une certaine quantité d’actifs numériques (crypto-devise, par exemple, ether, bitcoin), ALORS l’objet A vous sera envoyé
  • SI je termine le travail, ALORS les crypto-actifs stipulés dans le contrat me seront transférés
  • Contrainte WHEN :

Le facteur temps dans les smart contracts est défini par des conditions pour que les termes de l’accord contractuel soient exécutés. C’est le cas avec un contrat hashed timelock (HTLC), qui est un type de contrat intelligent utilisé dans les applications blockchain. Il réduit le risque de contrepartie en créant un séquestre basé sur le temps qui nécessite une phrase de passe cryptographique pour le déverrouillage. Concrètement, cela signifie que la personne qui reçoit les fonds dans le cadre d’une transaction doit effectuer deux actions pour accéder aux fonds : saisir la phrase de passe correcte et demander le paiement dans un délai précis. S’ils saisissent une phrase de passe incorrecte ou ne réclament pas les fonds dans le délai imparti, ils perdent l’accès au paiement.

Les avantages des smart contracts

  • Sécuriser un accord
  • Limiter les coûts intermédiaires, comme notaires ou avocats
  • Réduire les risques d’erreurs et d’interprétations
  • Simplifier les transactions entre différents acteurs
  • Éliminer les risques d’impayés
  • La confiance, pilier de la société

La confiance apportée par le smart contract

La technologie de la blockchain apporte donc un moyen de régler le problème de confiance. L’absence de confiance mutuelle entre les individus dans une société rend indispensable le recours à des figures de confiance. Le rôle de ces entités consiste souvent à constater la véracité et l’authenticité de certaines informations utilisées dans les interactions entre les individus. En s’appuyant sur les données sécurisées de la blockchain, le contrat intelligent permet donc d’instaurer de la confiance entre deux acteurs qui ne se connaissent pas et ainsi faciliter une transaction commerciale.

Il est probable que la formidable croissance de la blockchain soit directement liée à une crise de confiance, en réponse d’abord à la crise économique de 2008. Tout secteur qui nécessite un tiers de confiance ou de la contractualisation comme les fournisseurs d’énergie, et bien sur les banques, peut envisager la blockchain.

Renforcement de la force obligatoire du contrat

Dans le cadre d’une relation contractuelle, les contrats intelligents pourraient renforcer aussi la notion de force obligatoire du contrat. Ils permettraient à la première échéance impayée de priver le débiteur de la jouissance du bien faisant l’objet du contrat. Une telle application peut s’avérer des plus efficaces. Par exemple, dans un contrat de location de voiture, un smart contract rendrait possible au moindre impayé de loyer de couper le logiciel du véhicule.

Il existe même des contrats intelligents dit « actualisables » qui offrent aux développeurs une plus grande flexibilité vis à vis de l’immuabilité des contrats. On dénombre de multiples manières de créer des contrats intelligents actualisables, avec différents degrés de complexité. Pour prendre un exemple simplifié, imaginons qu’un contrat intelligent est divisé en plusieurs contrats plus petits. Certains étant conçus pour être immuables, et d’autres possédant la fonction de « suppression ». Cela signifie qu’une partie du code des contrats peut être effacée et remplacée, alors que d’autres fonctionnalités resteront intactes.

Limites du smart contract

La traduction des clauses d’un contrat en langage informatique est limité. Si certaines stipulations contractuelles sont parfaitement traduisibles, car elles sont susceptibles de recevoir une définition précise, d’autres, en revanche, sont bien plus complexes à traduire : c’est le cas des clauses portant sur des éléments non objectifs. Par exemple la fameuse clause « utilisation inappropriée » que l’on retrouve dans de nombreux contrats papiers est trop floue pour être traduite en langage formel. La traduction de la clause visée demandera la détermination de l’ensemble des cas pouvant relever d’une utilisation inappropriée. Malheureusement, le fait de les énumérer intégralement va à l’encontre de l’esprit de ladite clause, soit donner une marge de discrétion à l’une des parties au contrat.

Valeur juridique du smart contract

Un manque de réglementations internationales axées sur la technologie blockchain (et les technologies connexes telles que les contrats intelligents, l’exploitation minière et les cas d’utilisation tels que la crypto-monnaie) rend ces technologies difficiles à surveiller. Les contrats intelligents sont également compliqués à mettre en œuvre car il s’agit d’un concept encore relativement nouveau et des recherches sont toujours en cours pour comprendre pleinement le contrat intelligent et ses implications.

Il est impossible de stopper un contrat une fois qu’ils a été envoyé à l’exécution. Cela peut créer de lourdes conséquences si les programmes sont de mauvaise qualité. Il y n’a une seule solution pour corriger un programme intelligent qui aurait ce genre de problème :la voix légal. Il apparaît donc comme incontournable que l’idée d’une plateforme décentralisée de cours de justice basée sur une blockchain puisse un jour être crée pour résoudre ces problèmes. Mais ne attendant nous sommes donc obligés de constater que le droit des contrats conserve sa pertinence quant à l’évaluation de la conformité de l’exécution. En effet, le contrat intelligent ne fait qu’une évaluation sommaire des conditions d’exécution du contrat. Le jugement porté par le contrat intelligent sur la réunion des conditions du contrat ne peut pas logiquement être considéré comme un jugement définitif sur la conformité de l’exécution avec les termes du contrat. En cas de litige, les tribunaux ou, dans certains cas, les instances d’arbitrage conservent le pouvoir exclusif de se prononcer sur la conformité de l’exécution ou sur l’inexécution d’un contrat. Le droit des contrats offre ainsi un ensemble de règles pour faciliter la qualification et l’interprétation du contrat.

En 2017, en mettant en œuvre le Décret sur le développement de l’économie numérique, la Biélorussie est devenue le premier pays à légaliser les contrats intelligents et en 2018, un rapport du Sénat américain déclarait: « Si les contrats intelligents peuvent sembler nouveaux, le concept est ancré dans le droit des contrats de base. Habituellement, le système judiciaire règle les différends contractuels et applique les conditions, mais il est également courant d’avoir une autre méthode d’arbitrage, en particulier pour les transactions internationales. Avec les contrats intelligents, un programme applique le contrat intégré au code « . Un certain nombre d’États américains ont adopté une législation sur l’utilisation des contrats intelligents, comme l’Arizona, le Nevada, le Tennessee et le Wyoming.

En France, le statut juridique des contrats intelligents reste incertain. Cependant, les lois actuelles pourraient dans certains cas permettre de donner aux contrats intelligents valeur contractuelle car dans les situations où le contrat intelligent répond aux conditions de validité posées par l’article 1128 du code civil (à savoir le consentement et la capacité de contracter des parties ainsi qu’un contenu licite et certain ), il y a fort à parier que le juge lui octroie la qualification juridique de contrat. Cela est la conséquence du principe communautaire de neutralité technologique issu de la directive 2000/31/CE. Quasiment tout semble prêt afin que les smart contracts donnent un nouveau souffle à la vie des affaires en France.

Signature électronique et smart contract

Dans l’optique de créer des processus dématérialisés et automatisés, la signature électronique est complémentaire au smart contract. La signature électronique permet de certifier la conclusion d’un contrat, et le smart contract de garantir son exécution. Ces deux solutions combinées, lorsque les smart contracts bénéficieront d’un cadre légal défini en France et en Europe, permettront de renforcer sensiblement la sécurité des processus contractuels, et de réduire les conflits liés à la contractualisation.

Histoire du smart contract

Souvent associé au protocole Ethereum qui se positionne comme une version programmable de Bitcoin et qui élargit considérablement le champ des applications décentralisées, le terme était utilisé dès 1998, pour décrire des objets dans la couche de service de gestion des droits au sein du Stanford Digital Library Project.

Le premier à promouvoir le concept de contrat intelligent est le scientifique et cryptographe Nick Szabo, vers le début des années 1990, inspiré par des chercheurs comme David Chaum. Szabo utilisa ce terme pour décrire « un ensemble de promesses, spécifiées sous forme numérique, comprenant des protocoles dans lesquels les parties tiennent ces promesses ».

Mais les contrats papier ne sont pas les ancêtres des smart contracts pour autant. Ce n’est pas le remplacement d’un objet juridique par un autre, plus abouti. En fait, M. Szabo ne souhaite pas cantonner sa réflexion à l’intérieur des limites du droit.

Si les aspects juridiques ne peuvent être totalement refoulés de son raisonnement, c’est parce qu’il serait long et coûteux de repenser l’organisation sociale à partir de rien : il faut donc selon lui s’inspirer du droit comme système de régulation pour bâtir un ordre normatif distinct, plus puissant et plus efficace, d’où le terme de contrat « intelligent », qui souligne l’importance d’apporter des pratiques « hautement évoluées » au droit des contrats. Nick Szabo expliqua ensuite que les contrats intelligents rendraient très coûteux le non-respect des promesses faites et que, par le fait, les parties à un smart contract respecteraient nécessairement leurs engagements.

L’idée d’une devise numérique remonte aux années 80 bien avant le Bitcoin. Et l’un des premiers à avoir imaginé une telle monnaie est… Nick Szabo ! Son idée du « bit gold » en 1998 s’appuyait sur une architecture légèrement différente du Bitcoin, cependant il n’a jamais été concrétisé. Toutefois, les ressemblances sont suffisantes pour le considérer comme son ancêtre. Les contrats intelligents s’appuient d’ailleurs sur le concept de base du Bitcoin (envoi et réception d’argent sans intermédiaire de confiance, par exemple).

En mettant au point la blockchain, on a donc inventé un système très semblable au smart contract, même s’il est architecturé de manière différente. Cela dit, il a également apporté la solution à des problèmes que Nick Szabo n’a pas su résoudre, notamment en ce qui concerne la datation des transactions. Si Szabo y était arrivé, nous aurions peut-être vu la cryptomonnaie apparaître vers 98 !

Enfin, comme en témoigne la documentation du langage Solidity, qui permet de créer des smart contracts Ethereum, les contrats intelligents sont des lignes de code stockées sur une blockchain. Le concept d’automatisme invoqué par Nick Szabo est donc présent.

Technologie derrière le smart contract

Cryptographie asymétrique

La cryptographie à clé publique, également connue sous le nom de cryptographie asymétrique, représente une amélioration par rapport à la cryptographie à clé symétrique standard car elle permet de transférer des informations par l’intermédiaire d’une clé publique qui peut être partagée avec n’importe qui. Plutôt que d’utiliser une seule clé pour le chiffrement et le déchiffrement, comme c’est le cas avec la cryptographie à clé symétrique, on utilise des clés séparées (une clé publique et une clé privée).

Une combinaison d’une clé publique d’utilisateur et d’une clé privée crypte l’information, tandis que la clé privée du destinataire et la clé publique de l’expéditeur la décryptent. Il est impossible de savoir ce que la clé privée est basée sur la clé publique.

Par conséquent, un utilisateur peut envoyer sa clé publique à n’importe qui sans craindre que quelqu’un accède à sa clé privée. L’expéditeur peut crypter les fichiers dont il peut être sûr qu’ils ne seront décryptés que par la partie visée.

Blockchain

Un contrat intelligent est stocké sur une blockchain. Cette dernière, grâce à une gestion décentralisée, empêche en principe la falsification des données stockées, notamment parce que chaque nouveau bloc ajouté est irrémédiablement lié au précédent et parce qu’une copie est transmise à tous les membres du réseau. Effectivement, chaque transaction a recours à la cryptographie asymétrique.

En conséquence, modifier un élément d’un ancien bloc imposerait de réécrire toute l’histoire de la blockchain, et ce à une vitesse plus rapide que l’ajout des nouveaux blocs, ou nécessiterait de prendre le contrôle de la blockchain en détenant plus de 50 % du réseau

En effet, la blockchain vise à éliminer le plus possible l’incertitude et l’aléatoire, de telle sorte que se substituent à la confiance, elle-même toujours corrélée à la faillibilité d’un système, les notions d’assurance et de garantie. Assurance et garantie sont produites par l’itération de calculs dont les résultats sont considérés statistiquement satisfaisants, il en découle que c’est le domaine propre de l’humain qui disparaît progressivement au profit de procédures automatisées, fondées non sur la délibération mais sur la certification.

Comme un transfert de devise sur une blockchain, le déploiement d’un smart contract sur cette dernière s’effectue en envoyant une transaction depuis un portefeuille. La transac comprend le programme compilé pour le smart contract et l’adresse de destinataire spéciale. Ensuite cette transac est insérée dans un bloc lui-même inséré dans la blockchain. C’est le moment où le smart contract s’exécutera pour initialiser son état.

Un des attributs constitutifs de la blockchain régulièrement mis en avant pour justifier de son intérêt réside dans sa tolérance aux pannes et aux tentatives de falsification grâce aux algorithmes byzantins, et dans l’anonymisation de ses utilisateurs. Leurs identifications au sein du réseau se fait par une adresse unique alphanumérique, ainsi il n’est pas possible de savoir qui se cache derrière telle ou telle adresse. Ce la nécessite un registre consignant l’historique de toutes les opérations enregistrées et transacs sur le réseau depuis sa création. Sans toutes ces précautions, la blockchain serait rien de moins qu’un grand outil de surveillance généralisée, l’argent détenu par chaque personne relevant habituellement du secret bancaire.

Sans une autorité centrale, l’authenticité des données est contrôlée par un mécanisme qui produit un consensus parmi les membres du réseau. De surcroît, ces blocs sont inter-connectés par une fonction de hachage qui assure l’intégrité de chaque bloc.

Étapes du fonctionnement de la blockchain

1. Une transac est faite d’un point A vers un point B

2. Regrouper un ensemble de transacs dans ce qu’on appelle un bloc

3. Validation de ce bloc par les membres du réseau

4. Ajout horodaté du bloc à la chaîne de blocs à laquelle tous les utilisateurs ont accès

5. B reçoit la transac de A

La blockchain peut embarquer des contrats entre contreparties. Ces contrats sont visibles par leurs détenteurs, qui peuvent également permettre à d’autres de les voir : les smart contracts. N’importe qui peut vérifier sur la blockchain la bonne exécution du contrat et déterminer à qui appartient l’actif. Son code est transparent et disponible publiquement, on peut lire précisément quelle logique suit le smart contract lorsqu’elle reçoit par exemple des crypto-actifs. Mais s’exécutant automatiquement, il est impossible, sauf lignes de code prévues à cet effet, de les corriger. Une fois exécuté, impossible de revenir en arrière, au moins sur la blockchain.

Soulignons que chaque blockchain peut présenter une manière différente d’implémenter les smart contracts, et malgré que Bitcoin gère les smart contracts depuis longtemps, ils furent mis en avant par le créateur d’Ethereum, Vitalik Buterin, la plateforme la plus utilisée, mais de nombreuses autres blockchains existent dans l’univers de la crypto (Tron, Polkadot, Algorand…) permettent de faire des contrats intelligents.

Gestion des droits (Tokens)

Le contrat de token fournit des fonctionnalités en plus dans les tokens qu’il émet pour administrer leurs droits de propriété, en donnant aux détenteurs la bande passante dans un dApp (token d’utilité), le poids du vote dans un protocole (token de gouvernance), la participation dans une société (token de sécurité), la revendication de propriété d’un bien réel ou numérique (NFT), et plus encore. Par exemple, le token SIA est permet de payer les services décentralisés de stockage dans le nuage de Siacoin, tandis que le token COMP sert à participer à la gouvernance du protocole Compound.

Coût du contrat intelligent

Sur la blockchain Ethereum, un déploiement de contrat intelligent prend du gaz (Gwei). Selon la complexité du contrat, le déploiement d’un smart contract peut coûter des milliards de Gwei. Les contrats moins complexes comme un simple échange sont beaucoup moins chers. L’exécution de chaque contrat nécessite des frais de transaction qui dépendent donc de la puissance de calcul requise.

Les oracles, interfaces du monde réel

Si le recours à la blockchain permet de limiter les intermédiaires humains avec certaines opérations comme le transfert d’une œuvre dématérialisée, l’envoi d’un code d’accès, le rétablissement ou l’interruption d’un service en ligne, il n’est pas toujours possible de déclencher une condition sans une prise de décision de la part d’un tiers de confiance, par exemple l’obligation d’un vendeur de livrer un bien corporel ou bien à l’obligation d’un entrepreneur de réparer un objet. Les smart contracts ne suppriment donc pas tous les intermédiaires qui voient finalement leur pouvoir augmenter : on les appelle des oracles dans ce cas, des passerelles entre la blockchain et le monde réel. Autrement dit, il fournit les données du monde réel à la blockchain, en interrogeant, vérifiant et authentifiant les sources de données externes, puis relaie ces informations. Sans oracles, le contrat intelligent serait quasi inutile. Il ne connaîtrait que les données de son réseau.

Les oracles entrants donnent l’accès à des informations de l’extérieur à la blockchain ou au smart contract. Ils permettent aux entreprises d’automatiser différentes actions dépendantes de données externes. Le oracles sortants donnent au contraire au réseau le moyen d’externaliser ses données vers le monde réel. Par exemple, en domotique, ces types d’oracles sont très courants, car ils permettent, par exemple, d’ouvrir une serrure une fois authentifié. En fait les données transmises par les oracles peuvent se présenter sous de nombreuses formes. Des informations tarifaires par exemple, le process d’un paiement ou la température mesurée par un capteur.

Les oracles inter-chaînes assurent l’interopérabilité dans la blockchain, permettant la lecture et l’écriture d’informations entre différentes chaînes de blocs. Les oracles compatibles avec le calcul prennent de l’importance car ils fournissent un service de calcul moins chère que celle offerte par le réseau Ethereum. Ce service hors chaîne est sécurisé et permet de faire des calculs sur un jeu d’entrées.

À ce jour, le leader des oracles décentralisés est Chainlink. Crée en 2017, il a conclu depuis plus de 500 partenariats. Et le nombre de smart contracts l’utilisant augmente de façon exponentielle.

Les types d’oracles

Logiciels

Ce type d’oracle gère les données on-line. Les oracles logiciels extraient et commandent des infos en ligne telles que les prix des produits, les horaires de vol, la météo, la température etc. Toutes ces données sont ensuite envoyées au smart contract pour lequel elles ont été programmées. Tout cela dans le but dudit contrat intelligent de réaliser les actions correspondantes pour lesquelles il a été programmé.

Matériel

Certains smart contracts nécessitent des informations du monde réel. Les oracles matériels peuvent suivre justement des objets du monde réel grâce à des capteurs IoT, des lecteurs RFID ou de codes-barres. Ces dispositifs matériels permettent de monitorer des chaînes d’approvisionnement complètes via une blockchain, mais aussi la progression de tous types de moyen de transport ou le suivi d’une voiture personnelle.

Avantages des oracles blockchain

Confidentialité

L’identité des utilisateurs est gardée secrète. Les oracles ne savent pas comment un smart contract a été initié ou inclus dans une blockchain. On utilise d’ailleurs un protocole qui crypte les informations fournies par l’oracle avant de les inclure dans la chaîne.

Fiabilité des données

Les oracles sont conçus pour être résilients grâce à cette cryptographie. Très difficiles à corrompre car ils sont conçus pour prendre des informations de différentes sources. La certitude des données qu’ils offrent au système auquel ils sont connectés est au cœur de la conception des protocoles, avec divers systèmes pour renforcer leur sécurité, garantissant ainsi que les données offertes par ces oracles soient aussi fiables qu’exact. Bien sur la sûreté des données fournies par en amont par les services centralisés de confiance ne peut être garantie à 100 % (à vous de vérifier que le service envoie les données correctes), toutefois la centralisation reste un avantage.

Connectivité

Les oracles permettent aux smart contracts de se connecter hors chaîne bien sur à d’autres blockchains, mais aussi aux data providers, aux backends d’entreprise, aux Application Programming Interfaces disponibles sur le web, à l’Internet of Things, aux processeurs de paiement comme Stripe ou Paypal.

Libération de l’information

L’adoption massive de ce type d’outil passera à l’avenir par certains types d’incitation ou de récompense pour ses opérateurs, jusque-là mal rémunérés. Les fournisseurs de données sont pour l’instant les grands gagnant car ils peuvent vendre facilement leurs données directement à toutes les blockchains en passant par des services comme Chainlink, sans mobiliser de ressources supplémentaires ni recourir à de nouvelles infrastructures.

Oracles décentralisés

Loin du modèle décentralisé utilisé par la chaîne de bloc, les oracles ont été conçus de manière centralisée. Par conséquent, lorsque vous les utilisez, vous devez faire confiance aux informations d’une entité qui peut modifier quelque chose qui a été pensée pour ne pas l’être au départ.

Les oracles décentralisés ont été crées pour éviter ce risque. Un oracle décentralisé prend les données de plusieurs oracles et son algorithme se charge de communiquer au smart contract ce que la plupart des oracles proposent. La décentralisation du contrôle sur ces oracles est importante durant cette étape.

Anonymat, blockchain et RGPD

La protection des droits sur les données personnelles inscrites sur la blockchain du bitcoin se pose plus particulièrement avec l’entrée en vigueur en 2018 du Règlement européen relatif à la protection des personnes physiques à l’égard du traitement des données à caractère personnel et à la libre circulation de ces données (RGPD) qui s’applique au traitement automatisé de données à caractère personnel.

La position de la CNIL est de ne pas considérer la blockchain comme un traitement en soi, mais seulement les applications qui fonctionnent avec des blockchains, de façon à permettre une meilleure identification du responsable de traitement.

En ce qui concerne les droits personnels sur les données, garantis par le RGPD, elle invite les développeurs d’applications à réfléchir à des systèmes prévoyant le masquage des informations envoyées sur une blockchain publique sauf pour certains cas comme le droit à l’oubli qui nécessiteront des innovations techniques au niveau des protocoles eux-mêmes.

Solutions techniques d’anonymisation

Pour garantir l’anonymat d’une transaction sur la blockchain, la solution la plus simple reste de multiplier les adresses utilisées mais cela n’empêche pas un recoupement.

De manière plus complexe, il est possible de s’en remettre à un service de « mixage », qui propose de multiplier les échanges intermédiaires. Mais cela est assez peu utilisé suppose de faire une grande confiance au tiers qui en a la charge.

Bien plus avancées, des techniques cryptographiques permettent de prouver l’existence d’une transaction sans en révéler le contenu. Il s’agit en particulier des zk-SNARKs (« zero knowledge succinct non-interactive argument of knowledge »), qui sont des preuves « sans divulgation de connaissance ». Elles supposent toutefois que des paramètres spécifiques aient été créés par une entité de confiance.

Certaines crypto-devises sont entièrement dédiées à l’anonymat des transactions. On peut citer Monero ou Zcash, qui se classaient début 2018 parmi les trente cryptos les plus importantes en termes de capitalisation. Ces processus nécessitent toutefois des temps de calcul particulièrement importants.

A noter le projet Hawk, dans le domaine des assurances ou des transactions financières, propose en recourant notamment au mécanisme de preuve à divulgation nulle de connaissance, d’éviter que certaines informations touchant à la vie privée puissent être visibles par les autres utilisateurs sur une blockchain.

Des solutions insuffisantes

L’anonymat permet de protéger la vie privée, et il évite que des mineurs puissent pénaliser un utilisateur identifié en refusant de valider ses transactions. Malheureusement peu de solutions techniques arrivent à réunir les deux objectifs que sont l’anonymat et la fraude. Il faut cependant noter l’exception des blockchains à accès restreint qui permettent l’identification d’une entité ou d’un consortium responsable.

Il est vrai que l’on retrouve ici l’opposition classique entre la préservation de la vie privée et les préoccupations sécuritaires des États. Les solutions techniques semblent en effet remettre en cause les attributs intrinsèques des blockchains, recherchés par des utilisateurs désireux d’échapper à une régulation, étatique ou privée, considérée comme arbitraire.

Risques des smart contracts

À savoir tout de même, les smart contracts ne sont pas sans risques technologiques. En effet il existe un risque de failles, inhérent à tout programme informatique, pouvant être exploités par des hackers ou des pirates informatiques. Effectivement le code des contrats intelligents est le plus souvent ‘open source’. Si ce code est mal conçu, il peut permettre l’exploitation ses failles qu’il contient au détriment des autres utilisateurs. Il existe des moyens de diminuer le risque de piratage : l’utilisation de standards vérifiés et testés par la communauté, comme ERC-20 qui est largement utilisé pour créer de nouveaux jetons sur Ethereum ou encore le recours à des audits auprès de cabinets spécialisés.

Il y a eu lieu à de multiples reprises des piratages sur Ethereum, et ceci pour des montants colossaux : le cas le plus connu est le piratage du contrat de TheDAO en 2016, qui avait permis à quelqu’un de s’emparer de plus d’une centaine de millions de dollars. Cette évènement a conduit à la scission entre Ethereum (ETH) et Ethereum Classic (ETC) : Ethereum a en effet fait le choix d’annuler le transfert pour rembourser les investisseurs de TheDAO, alors que Ethereum Classic a préféré suivre le principe de l’immuabilité.

Ainsi, avant de procéder au déploiement sur le réseau, il faut s’assurer que tout fonctionne bien dans le code qu’on a écrit, car il est impossible (en principe) de modifier ou d’arrêter un contrat si on ne l’a pas programmé pour.

Le smart contract, une technologie controversée

Bouleversement de l’économique

La crise des subprimes a eu pour conséquence indirecte la désintermédiation, qui se traduit par la réduction du rôle de ces intermédiaires dans le circuit de distribution financier. Ce phénomène est accentué par l’émergence des blockchains et l’adoption de monnaies digitales. De nouveaux procédés redessinent le circuit de la transmission de valeur.

De plus en plus de dirigeants et d’entrepreneurs sont inquiets par l’effet que pourront avoir la blockchain et les contrats intelligents sur les business models actuels. La blockchain va clairement redonner du pouvoir au client en composant avec une complexité grandissante en mixant sécurité, décentralisation et transparence, mais aussi faciliter l’arrivée de nouveaux « stakeholders ».

L’immutabilité, atout ou faiblesse ?

Le site officiel d’Ethereum explique que le terme « intelligent » a été choisi parce que « lorsque les conditions d’exécution de ces engagements sont réunies, ceux-ci s’exécutent automatiquement sur la blockchain, en prenant en compte l’ensemble des conditions et des limitations qui avaient été programmées dans le contrat à l’origine ». Il peut sembler curieux que l’intelligence soit assimilée à un automatisme et non à la possibilité de s’adapter…

En tous cas, d’un point de vue juridique, les contrats intelligents pourraient poser plus de soucis que les contrats traditionnels car se pose le problème de l’immutabilité des blockchains face au besoin de réinjecter une intervention humaine. Une idéologie existe, soutenant qu’il serait bénéfique de rajouter une forme de gouvernance supplémentaire aux chaînes de bloc, managée par un savant jeu de contrats intelligents, pour fixer des cas possibles d’arbitrage en cas d’urgence. Au contraire, les puristes veulent empêcher toute intervention humaine et politique sur ces écosystèmes.

Le double-fort, une solution contraignante

Un smart contract peut être utilisé par exemple pour payer un bien vendu, mais il peut y avoir conflit autour du montant. C’est pour résoudre cette difficulté de l’interprétation du contrat intelligent que les sociétés BlackHalo ou Bithalo par exemple demande que le vendeur et l’acheteur créditent le prix de vente sur un compte bloqué. Si le versement du prix au vendeur ne se fait pas dans le délai imparti, l’argent déposé est alors envoyés à un tiers (dont les parties ne connaissent pas le nom) et sont alors perdues pour les deux parties. Tout ceci pour palier au fait qu’un smart contract classique ne peut pas intégrer de précisions ailleurs que dans le commentaire du programme, mais sans aucune incidence sur l’exécution de ce dernier dans la blockchain tout en augmentant le coût du smart contract. Il n’est cependant pas certain que ce système soit simple que les smart contracts classiques, notamment parce que le vendeur doit avoir suffisamment d’argent pour assurer le dépôt.

Développement informatique

Ethereum a révolutionné les smart contracts en 2015 avec les scripts, transformant la blockchain en un grand ordi planétaire qui exécute de nombreuses applis différentes en même temps. Les programmeurs gèrent leur propre ensemble de smart contracts et peuvent les éditer à tout moment sans avoir besoin d’un hard fork. Le langage de script permet d’abstraire la complexité du développement de bas niveau, ce qui permet aux développeurs de créer des smart contracts en quelques jours ou semaines au lieu de mois et d’années.

Liste des outils et technologies pour les Smart Contracts Ethereum

Solidity

Langage de programmation utilisé pour écrire des contrats intelligents sur Ethereum. Il utilise des classes et des méthodes, ce qui le rend assez similaire aux langages de programmation orientés objet. Il est créé au-dessus de la machine virtuelle Ethereum ou EVM.

Bien que vous puissiez effectuer des calculs arbitraires, vous pouvez utiliser Solidity pour envoyer et recevoir des jetons et stocker des états. Du point de vue de la syntaxe, ce langage de programmation de contrat intelligent sur Ethereum est influencé par C++, Python et Javascript.

Truffle

Truffle est un framework de développement Ethereum sur lequel développeurs peuvent écrire et tester leurs contrats intelligents créés. Ce framework est écrit en Javascript. Pour le langage de programmation Solidity, le cadre de développement Ethereum Truffle est fourni avec un compilateur. Vous pouvez importer des smart contracts compilés à partir de la bibliothèque JavaScript de Truffle Contract.

Web3.js

Web3.js est une API JavaScript d’Ethereum. Elle utilise des appels RPC pour interagir avec le réseau Ethereum.

Remix

Un IDE Web pour créer, exécuter et déboguer des contrats intelligents dans le navigateur. Avec Remix, nous n’avons pas besoin d’une machine de développement, car tout est inclus dans l’interface web.

Metamask

Extension de navigateur permettant à quiconque d’interagir avec les blockchains compatibles Ethereum, permettant la création d’une adresse. Il s’intègre également facilement avec Remix.

Ganache CLI

Dans le cadre de Truffle appelé TestRPC, il s’agit d’un client d’appel de procédure à distance Ethereum.

Parity

Pour gérer les comptes Ethereum ainsi que les jetons Ethereum, Parity est un client Ethereum sécurisé et rapide.

Node.js

Environnement d’exécution Javascript (programmation côté serveur). Vous pouvez l’utiliser pour tester la fonctionnalité du contrat intelligent Ethereum en toute sécurité.

Applications décentralisées

Blockcat, EtherParty ou My Wish veulent constituer des interfaces simples d’emploi via lesquelles quiconque, même sans expertise informatique, peut créer ses propres contrats intelligents.

Divers exemples de smart contracts

L’ICO

Les investisseurs peuvent effectuer de simples transactions en ethers, la monnaie Ethereum, à partir de laquelle peuvent être créés des tokens porteurs d’une valeur intrinsèque. Lors d’une ICO, la transaction est émise avant la création de ces tokens, mais s’effectue dans le cadre d’un contrat automatisé précis : ce n’est qu’au moment de la création du token que l’investisseur recevra sa quote-part en tokens, directement dans son porte-monnaie Ethereum, à un cours préalablement fixé.

Plusieurs milliards de dollars ont déjà été injectés dans des projets de toutes sortes, sans jamais passer par la phase banque ou capital-risque. De simples contrats intelligents, directement conclus entre des individus et des porteurs de projets. Effectivement ces contrats peuvent aussi être enrichi d’autres paramètres, comme le montant global recueilli : si un seuil n’est pas atteint (donc si la création du token n’a pas trouvé son public), rien ne se passe et l’investisseur est recrédité de son apport initial. Efficace et simple à mettre en œuvre.

Transactions financières… sans intermédiaire

L’usage des smart contracts va grandir en même temps que celle de l’IA. Les intermédiaires financiers et leur rôle sont impactés par ce bouleversement structurel qui rend accessible grâce à la blockchain les infos à l’ensemble d’un réseau. Les intermédiaires ne sont plus indispensables pour apporter la preuve et valider l’origine de tel ou tel fond ou encore produire l’historique des transactions.

La finance décentralisée

Les applications s’appuyant sur des smart contracts sont souvent nommées DApps (applications décentralisées) et englobent les technologies de la finance décentralisée (DeFi) qui ont pour ambition de transformer le secteur bancaire. Ces applications permettent aux détenteurs de cryptodevises de s’engager dans des transactions financières complexes (épargne, prêts, assurances) sans intermédiaire bancaire ou financier, de n’importe où.

Aujourd’hui, les banques peuvent utiliser des plateformes collaboratives pour utiliser des fonctionnalités « as a service » dans un modèle évolutif utilisant des applications proposées par des fintech. Les banques peuvent externaliser des tâches administratives même complexes, au fur et à mesure que le nombre d’API augmente. Les banques ressembleront de plus en plus à l’industrie automobile : la marque offre l’expérience client, tandis que le produit est composé d’une myriade de composants tiers de premier ordre.

Mais pour le moment, les banques doivent gérer encore de nombreux contrats financiers : c’est le rôle des back-offices. Presque tout ce que font les banques doit être associé à un contrat : calculer et effectuer des paiements d’intérêts, envoyer des confirmations etc. Les banques consacrent environ 80% de leurs revenus aux opérations et à l’informatique. Certaines pourront être déclenchées par des contrats intelligent. S’ils représentent les engagements juridiques des contrats financiers, par exemple, ils peuvent exécuter leurs propres événements du cycle de vie (tels que les calculs et les paiements d’intérêts).

Listes des smart contracts les plus populaires
Uniswap

Echanger certains types de cryptos sans fixation du taux de change par une autorité centrale, c’est une chose rendue possible grâce à cette plateforme d’échange décentralisée.

Compound

Obtenir directement un prêt sans passer par une banque, c’est possible grâce à cette plateforme basée sur des contrats intelligents qui permet en contrepartie à des investisseurs de toucher des intérêts.

USDC

Faisant partie d’une nouvelle catégorie de monnaie numérique connue sous le nom de stablecoins, l’USDC est une cryptodevise liée par contrat intelligent au dollar américain, qui lui donne la valeur d’un dollar américain.

On retrouve plusieurs autres types de smart contracts Ethereum selon les secteurs d’activité, comme le cloud décentralisé (Storj…), ou encore les plateformes de marchés prédictifs (Augur…).

A noter qu’il y a d’autres protocoles qu’Ethereum tous aussi prometteurs, tels NEO Cardano, Tezos, EOS etc, qui rendent également possible la programmation de smart contracts.

Assurance

En 2017, deux compagnies d’assurance, Atlas Insurance à Malte et Axa en France, ont testé des contrats d’assurance simplifiés et automatisables, pour des situations précises dont l’aboutissement est aisément vérifiable, pour dédommager par exemple les voyageurs aériens si leur vol est retardé. Le client envoie un montant donné via Ethereum et fournit son numéro de vol. Le prix du billet est un peu plus élevé mais si l’avion est en retard, le voyageur est crédité d’une somme pré-établie. Tout est automatique, avec peu ou prou de paperasse et quasiment aucune intervention humaine.

Les assurtech s’intéressent bien sur aussi aux smart contracts. Slock.it est une start-up allemande avec un slogan plutôt accrocheur : « louez, vendez ou partagez n’importe quel objet sans intermédiaire ». La jeune pousse, fondée en 2015, a pour objectif de rendre les objets entièrement autonomes… pour conclure directement des contrats avec eux !

Industrie 4.0

Des chercheurs ont démontré la faisabilité de contrats intelligents confidentiels qui pourraient intéresser les fabricants d’objets connectés, qui hésitent habituellement à explorer les nouvelles opportunités des smart contracts pour une question de confidentialité. La question qui se pose est de savoir si le statut juridique des smart contracts confidentiels sera reconnu au niveau mondial de manière à permettre de nouvelles relations commerciales numériques nationales et internationales.

Le respect des conditions de livraison peut être vérifié par des smart contracts. Prenons l’exemple d’un produit sensible qui ne doit pas être exposé un taux d’humidité trop élevé tout au long de la chaîne de distribution. Les parties passent alors par des contrats intelligents pour s’assurer que cette clause a bien été respectée, grâce à la technologie des objets connectés et à des capteurs (voir le paragraphe sur les oracles un peu plus loin). Au moment de la livraison chez le client, le contrat peut déclencher ou non le paiement du fournisseur, en fonction des conditions de transport observées.

Une contre-ubérisation ?

Imaginez une voiture autonome, achetée en groupe, capable de s’auto-louer et de s’autogérer. Tout cela sans qu’une plateforme prélève un pourcentage… Voilà ce que pourrait permettre pour tout un tas de chose les contrats intelligents !

Gaming

Les jeux basés sur la blockchain utilisent des smart contracts pour une exécution anti-triche des joueurs. De même, les smart contracts peuvent générer des items rares dans le jeu comme un bouclier magique unique via un générateur aléatoire en utilisant une fonction de Chainlink. Ainsi les joueurs peuvent avoir confiance et vérifier de manière indépendante que le résultat n’a pas été manipulé par les programmeurs du jeu ou les fournisseurs de données.

Gambling

Cependant la conception de nouvelles crypto-devises n’est pas la seule chose que l’on peut faire avec des smart contracts. Le concept s’applique aisément à toutes formes de paris sur des événements à venir. Deux parieurs sur le résultat d’un évènement sportif peuvent le faire facilement, en s’envoyant des fonds sur une blockchain, via une transaction assujettie au score final. Dès la fin de l’évènement, le gagnant est recrédité de sa mise initiale et reçoit en plus la mise du perdant, le tout entièrement sécurisé et sans utiliser de bookmaker. Des plateformes comme FunFair se sont emparés de ce marché.

Milieu artistique

Certains pensent que seule une blockchain ouverte peut permettre d’interagir à plusieurs parties, indépendamment de leur bord politique, leur nature, ou de leurs liens commerciaux.

Les contrats intelligents sont capables d’exécuter automatiquement les termes d’un accord. Par exemple, un contrat intelligent pourrait stipuler que chaque fois qu’un NFT particulier est revendu sur la blockchain, 10% de la vente va automatiquement à l’artiste qui l’a frappé. De cette façon, l’artiste en profite car les fans et les investisseurs gagnent de l’argent en achetant et en vendant leur travail.

Protection et valorisation d’une œuvre

Le smart contract a une réelle plus-value au moment de la création d’une œuvre de l’esprit et de la perception des droits d’auteur.

Sa création

Le financement participatif s’est avec la pratique du crowdfunding par le biais de plates-formes dédiées sur internet, notamment en matière culturelle. La proposition est simple : les internautes aidant financièrement l’artiste dans son projet participent aux bénéfices.

L’Initial Coin Offering (ICO) est une procédure de levée de fonds s’appuyant sur la blockchain, ses qualités permettant le bon fonctionnement de l’opération. Elle souhaite remplacer les plates-formes de financement participatifs développées depuis 2007 (crowdfunding). L’ICO fonctionne grâce à des contrats intelligents et se déroule sans intermédiaire. L’artiste déclare le montant nécessaire à l’élaboration de son projet. L’investisseur lui obtient des jetons virtuels dénommés « tokens » en échange de cryptomonnaie. Si le financement n’atteint pas un certain montant avant telle date, les sommes investis seront recréditées automatiquement à chaque investisseur. Au contraire, si on l’atteint à la bonne date, chacun se verra octroyé une contre-partie fixée dans le livre blanc, mais une fois le projet réalisé bien sur.

C’est aussi pour l’investisseur une manière de spéculer car si le projet cartonne, beaucoup seront prêts à payer plus que le montant initial pour se procurer des jetons.

Cependant l’ICO est un type d’investissement qui constitue une prise de risque car aucune garantie n’est possible en terme de réussite du projet, de son capital final, des pertes des tokens acquis.

La perception des droits d’auteur

Les organismes de gestion collective est de percevoir les droits d’auteur auprès des utilisateurs et de répartir la redevance entre les différents intervenants.

Mais il existe des sommes ne pouvant être réparties, faute d’identification de son créateur, comme par exemple une discothèque reversant des droits d’auteur pour une diffusion d’œuvre, sans préciser l’interprète. Sans compter que les organismes de gestion collective livrent, en général, un compte rendu annuel des taux et montants retenus sur les droits distribués souvent confus et imprécis.

Globalement, on peut dire que la provenance des droits perçus par les auteurs est souvent obscure.

Pour les oeuvres de musique, Ujo Music propose un service de contrat intelligent Ethereum permettant de garantir une meilleure efficacité au circuit en automatisant les versements aux artistes, assurant ainsi une répartition immédiate et transparente des droits d’auteur en fonction de la quote-part écrite au contrat.

D’ailleurs l’idée n’est pas nouvelle : Spotify a racheté en 2017 Mediachain Lab, spécialiste des droits musicaux, qui propose de s’appuyer sur la blockchain Ethereum pour la gestion de ces derniers. Ce genre de service devrait exploser bientôt. Sans compter l’amélioration et le renforcement des process offertes par les contrats intelligents d’édition numérique, comme par exemple le versement des redevances dues à l’auteur, déclenché par le paiement des recettes à l’éditeur. Transparence et efficacité donc.

Une autre implication de la technologie blockchain pour le milieu culturel, c’est le développement des NFT. Les droits de propriété sur une œuvre de l’esprit, comme par exemple un fichier image ou MP3, peuvent être inscrites dans une blockchain (horodatage des créations) et intégrés à un contrat intelligent. Cela permet bien sur, comme on l’a vu pour les œuvres non-digitales, des rétributions automatisées aux créateurs.

Par contre, la réception de redevances automatisées via des contrats intelligents pour la vente de NFT suppose le versement de crypto-devises, l’artiste acceptant les risques dus à la volatilité du cours de ces devises.

Licences DRM

Sony par exemple, voudrait adapter la blockchain aux solutions DRM existantes chez eux. Elles permettent de gérer le partage, les droits des données éducatives et bien sur l’authentification. La nouvelle version, gonflée à la blockchain, se focalisera sur la gestion de la propriété intellectuelle, de la protection de celle-ci et par le droit d’auteur.

Bitcoin

La blockchain de Bitcoin n’est pas conçu pour exécuter des smart contracts la mise de 2021 a permis à la blockchain d’utiliser des smart contracts dans les transactions. Ainsi de nouveaux produits ou applications pourraient être développés comme des marchés distribués qui permettent la mise en œuvre de contrats P2P, une véritable concurrence pour le système financier actuel : hypothèques, prêts, cartes de crédit…

La différence significative, le coût d’un crédit (le coût des intérêts) pourrait être divisé par 7. Cela est dû aux coûts administratifs et d’assurances qui ne sont pas nécessaires dans la blockchain.

Bitcoin représente déjà une façon de transférer des fonds qui a fait ses preuves et va recevoir beaucoup plus d’attention en attirant des centaines de milliers de nouveaux utilisateurs dans son écosystème.

Oracles Bitcoin

Alors que le réseau Ethereum est actuellement la principale blockchain pour l’utilisation, la mise en œuvre et l’exécution de contrats intelligents, Bitcoin a également la capacité d’utiliser des oracles, ce qui offrira une évolutivité au réseau en exploitant les capacités et le potentiel de ce type de contrat. Par exemple le projet « Allumé » développé par le MIT utilise des oracles et des smart contracts sur le Réseau Lightning de Bitcoin.

Conclusion

Le concept des smart contracts pourrait être réutilisé dans bien des applications, servant de base légale dans de nombreux secteurs tels que les contrats de location de voiture, de bail, etc. et bouleverser ainsi l’uberisation actuelle de notre économie.

Cependant le smart contract ne peut pas encore remplacer le droit des contrats, car ce dernier demeure malgré tout le cadre juridique applicable à n’importe quelle forme de pratique contractuelle. S’affranchir du droit des contrats et de l’État comme figures de confiance est une utopie. De surcroît comme toute innovation, les smart contracts manquent d’un encadrement légal qui les légitimise. Cet écosystème devra encore évoluer avec souplesse avec nécessairement une loi adaptative.

En outre, l’utilisation seule d’un smart contract pourra donner des cheveux blancs aux juristes, notamment à cause du problème l’interprétation, le code source étant le socle du contrat. Les tribunaux pourront-il arriver à déterminer qu’il existe bel et bien une ambiguïté ? Voilà le genre de nouveaux défis auxquels la justice, déjà bien pataude en France, devra faire face dans un avenir proche.

Retour en haut