Un smart contract est un type particulier d’instructions stocké sur la blockchain, qui a en outre la capacité d’exécuter automatiquement des actions selon une série de paramètres préalablement programmés. Le tout de manière immuable, transparente et totalement sécurisée.
Ces dernières années, après la création de Bitcoin et le lancement de sa première version en 2009, de nombreux projets intéressants sont apparus, apportant de nouvelles idées et des solutions décentralisées à bon nombre des processus ou applications centralisés que nous utilisons tous aujourd’hui. Dans ce cas, permettez-nous de vous demander : les smart contracts, ça vous dit quelque chose ?
Eh bien, cette fois, nous allons parler en profondeur de ces mécanismes. En effet, les smart contracts ont pour objectif d’éliminer les intermédiaires afin de simplifier les processus et, ainsi, de réduire les coûts pour le consommateur. La plupart des informations relatives aux smart contracts ne sont disponibles qu’en anglais. C’est pourquoi, chez Bit2Me, après un premier chapitre de notre guide consacré à une introduction aux smart contracts, nous ne voulons pas que vous restiez avec des doutes, sans comprendre pleinement ce que sont les contrats intelligents et quel est leur potentiel.
C’est pourquoi nous parlerons de l’origine des smart contracts. Nous analyserons ensuite la situation actuelle, puis nous présenterons certains des projets alternatifs à Bitcoin les plus importants. Enfin, nous décrirons l’avenir de cette technologie.
Qu’est-ce qu’un smart contract ?
Pour comprendre un smart contract, il faut d’abord rappeler ce qu’est un contrat. Un contrat n’est rien d’autre qu’un accord entre deux parties ou plus, un cadre qui définit ce qui peut être fait, comment cela peut être fait, et ce qui se passe si quelque chose n’est pas fait. Autrement dit, des règles du jeu qui permettent à toutes les parties qui les acceptent de comprendre en quoi consistera l’interaction qu’elles vont réaliser.
Jusqu’à présent, les contrats étaient des accords verbaux ou des documents écrits coûteux. Ces documents sont soumis aux lois et juridictions territoriales, et nécessitent parfois des notaires. C’est-à-dire davantage de coûts, de temps et de tiers intervenant dans le processus. De ce fait, ils ne sont pas accessibles à tout le monde. Et ce n’est pas le pire : le contenu des contrats peut être sujet à interprétation. Accrochez-vous !
En revanche, un contrat intelligent est capable de s’exécuter et de se faire respecter par lui-même, de manière autonome et automatique, sans intermédiaires ni médiateurs. Il évite le fardeau de l’interprétation puisqu’il n’est ni verbal ni écrit dans les langues que nous parlons. Les smart contracts sont des « scripts » (codes informatiques) écrits dans des langages de programmation. Cela signifie que les termes du contrat sont de pures instructions et commandes dans le code qui le compose.
Par ailleurs, un smart contract peut être créé et appelé par des personnes physiques et/ou morales, mais aussi par des machines ou d’autres programmes fonctionnant de manière autonome. Un smart contract est valide sans dépendre d’autorités. Cela tient à sa nature : c’est un code visible par tous et qui ne peut pas être modifié puisqu’il existe sur la technologie blockchain. Cela lui confère un caractère décentralisé, immuable et transparent.

Les smart contracts et leur énorme potentiel
Avec ce qui précède, vous avez sûrement pu constater l’énorme potentiel que recèlent ces smart contracts. Il est important de souligner que, étant distribués sur des milliers d’ordinateurs, ils échappent à la garde d’une grande entreprise, ce qui élimine la bureaucratie, la censure ainsi que les coûts et délais importants inhérents à ce processus qui, soit dit en passant, est jusqu’à présent le dépositaire.
Si l’on associe les principes d’un smart contract à la créativité de nombreux développeurs de la planète, le résultat, ce sont des possibilités inédites, accessibles à tous et à des coûts proches de la gratuité. Des écosystèmes sans figures autoritaires soumettant leurs membres à leur volonté. Nous parlons d’un monde plus juste.
Imaginez une voiture Tesla autonome, achetée en groupe, capable de s’autogérer et de se louer toute seule. Le tout sans une entreprise de type Uber derrière qui prélève 10 %. On peut alors dire : bienvenue dans le monde des contrats intelligents.
Les premiers contrats intelligents
La première mention publique connue des smart contracts remonte à Nick Szabo, juriste et cryptographe, qui a mentionné publiquement le terme dans un document en 1995. Deux ans plus tard, en 1997, il a rédigé un document beaucoup plus détaillé expliquant les smart contracts.
Malheureusement, bien que la théorie fût définie, il était impossible de la concrétiser avec l’infrastructure technologique existante. Pour que les contrats intelligents puissent s’exécuter, il faut des transactions programmables et un système financier nativement numérique capable de les reconnaître.
Précisément, ce que Szabo décrivait comme inexistant en 1995 deviendrait réalité en 2009 (près de 15 ans plus tard) avec l’apparition de Bitcoin et de sa technologie, la chaîne de blocs (blockchain).
Bitcoin et les smart contracts
Bitcoin dispose déjà de certains smart contracts qui s’exécutent par défaut et de manière transparente pour l’utilisateur. Lorsque nous parlons de contrats de distribution, nous faisons référence à l’un des cas d’usage de Bitcoin permettant de conclure des accords entre personnes via la blockchain. En effet, Bitcoin, parmi tous ses avantages, permet d’ajouter de la logique à l’argent, une caractéristique unique de ce type de monnaie : c’est de l’argent programmable. Cette logique appliquée à l’argent nous permet de résoudre des problèmes courants que l’on peut rencontrer aujourd’hui, tout en augmentant le niveau de confiance tout au long du processus automatisé dans lequel se déroule l’interaction.
Quelques exemples de smart contracts sur Bitcoin
À titre d’exemple, on pourrait développer de nouveaux produits ou applications tels que :
- Des marchés distribués permettant de mettre en œuvre des contrats P2P et du trading sur les marchés avec Bitcoin, se positionnant comme un concurrent à part entière du système financier actuel.
- Des biens tels que des automobiles, des téléphones, des maisons ou des éléments non physiques contrôlés via la chaîne de blocs constituent ce que l’on appelle la smart property. L’utilisation de contrats et de propriétés intelligentes permet un niveau de confiance bien supérieur, en réduisant la fraude et les frais de médiation pour les tiers, et fait passer les opérations à un niveau supérieur.
- L’automatisation des successions en établissant l’attribution des actifs après le décès. Dès le décès, le contrat entrerait en vigueur et s’exécuterait en répartissant, dans ce cas, les fonds vers l’adresse établie dans le contrat.
- Assurances : constats d’accident, paiements de la compagnie pour les réparations, réduction de la fraude aux accidents…
En effet, les smart contracts s’appuient sur la technologie de Bitcoin pour exister, ce qui profite grandement à Bitcoin, car cela lui vaut beaucoup plus d’attention et attire des centaines de milliers de nouveaux utilisateurs dans son écosystème. D’ailleurs, il n’est pas difficile de trouver des affirmations du type : « Les smart contracts sont la killer APP de Bitcoin ».
Cette logique applicable aux transactions Bitcoin est mise en œuvre grâce à tout un langage propre, permettant à la blockchain elle-même de déterminer quoi faire en se basant sur les instructions programmées. Cela signifie que nous avons une transaction avec des instructions distribuées et immuables, offrant une sécurité totale et sans interprétation.
Un smart contract n’est pas ce que vous pensez
Aujourd’hui, tout est contrôlé par des systèmes informatiques. Tout interagit avec eux. Dans le développement d’applications, il est courant que les programmeurs créent une série de « portes » vers leur application (appelées API). Ces portes permettent à d’autres programmeurs d’accéder à votre application pour créer ou obtenir des informations. Presque tous les sites web ou programmes ont les leurs. Autrement dit, on définit un protocole, un contrat, une manière connue d’appeler l’application avec une structure de données. C’est par cette porte que nous obtiendrons une réponse, avec une structure de données prévisible. En l’occurrence, pour que la communication, et avec elle les programmes, ne tombent pas en panne.
Mais ce contrat n’est pas garanti. Le serveur de l’application est contrôlé par quelqu’un qui a la capacité de faire fonctionner le programme différemment dès demain. Il est centralisé et peut changer selon la décision de ce tiers. Il n’est pas « smart ».
Les gens ont besoin d’environnements prévisibles, transparents et incorruptibles. Les smart contracts sont des morceaux de code similaires, c’est-à-dire qu’il existe des moyens de les appeler et d’obtenir des réponses, ils ont un contrat, mais ils sont en plus immuables car distribués sur des milliers de nœuds qui ne peuvent pas modifier leur contenu. Vous obtenez ainsi un programme qui agira toujours de la même manière sans dépendre de la bonne volonté de ce tiers. Une chose nécessaire pour presque tous les cas d’usage. Les smart contracts sont des programmes dans le cloud qui agissent toujours de la même façon et permettent de stocker des informations qui ne peuvent pas être modifiées de manière frauduleuse. Ce sont les programmes les plus sûrs jamais créés par l’humanité, et ils ne défaillent que lorsqu’ils sont mal programmés.
Les smart contracts mal programmés
Les smart contracts sont capables de gérer des actifs numériques ayant une certaine valeur économique ; en réalité, les smart contracts peuvent donc gérer de l’argent. Cela exige de mettre particulièrement l’accent sur leur programmation correcte, car le smart contract pourrait présenter des failles de sécurité ou des défauts provoquant des erreurs d’exécution ou des comportements inattendus.
Lorsque cela se produit, l’argent peut être entièrement perdu. C’est arrivé plus d’une fois et, sans le savoir-faire suffisant, cela continuera d’arriver à de nombreuses initiatives.
Malheureusement, cela arrive fréquemment ; il est donc vraiment important d’accorder une attention particulière au développement et aux tests de ces logiciels.
Comment réalise-t-on un contrat intelligent sur Bitcoin ?
Pour que tout cela soit possible, il doit exister un processus entièrement sécurisé garantissant qu’au moins deux parties puissent exécuter le contrat sans avoir besoin de se faire confiance, ni même de se connaître.
Les contrats utilisent le système décentralisé de Bitcoin pour faire respecter des accords financiers sans dépendre d’agents externes, comme les systèmes judiciaires, réduisant ainsi le risque de traiter avec des entités inconnues dans les transactions financières.
Processus de génération d’un smart contract
La création de smart contracts sécurisés comporte plusieurs étapes. Prenons l’exemple de dépôts sécurisés sur n’importe quel site web acceptant les bitcoins. Personne n’aime perdre son argent, n’est-ce pas ?
Dans l’ensemble, toutes ces caractéristiques permettent non seulement de construire de nouveaux outils financiers intéressants sur la blockchain Bitcoin mais, chaque contrat intelligent étant formé par des personnes ou des machines, les possibilités d’innovation dans les domaines de l’Internet des objets, l’Insurtech, la logistique, l’administration sont si vastes qu’il est probable que les premières killer apps ou applications révolutionnaires de ces domaines voient très bientôt le jour.
Étapes de la génération d’un smart contract
- L’utilisateur et le site web s’échangent une clé publique fraîchement générée.
- L’utilisateur crée ensuite la première transaction sans la diffuser, en plaçant par exemple 5 BTC dans un output qui nécessite la signature à la fois de l’utilisateur et du site web.
- L’utilisateur envoie le hash de la première transaction au site web.
- Le portail crée une deuxième transaction correspondant au contrat. Dans cette deuxième transaction, la première est dépensée et renvoyée à l’utilisateur via l’adresse qu’il a fournie lors de la première étape. Mais comme la première transaction nécessitait deux signatures (utilisateur et site web), cette opération ne serait pas encore complète. C’est ici qu’un nouveau paramètre prend de l’importance : nLockTime. Celui-ci peut être ajouté à une transaction bitcoin en fixant une date future, par exemple dans 6 mois. Avant cette date, ces fonds ne pourraient être intégrés à aucune transaction. Le Sequence Number de l’input est également mis à 0.
- Enfin, la transaction non entièrement signée serait renvoyée à l’utilisateur. Celui-ci vérifierait que tout est correct et que les coins lui reviendraient, certes après les 6 mois stipulés avec nLockTime. Le Sequence Number étant à 0, ce contrat pourrait être modifié à l’avenir si les deux parties le jugent opportun. Mais évidemment… si les administrateurs du site web disparaissent, comment l’utilisateur pourrait-il récupérer les fonds ?
- Il faut tenir compte du fait que le script de l’input (instructions inscrites dans chaque transaction) n’est pas encore finalisé. L’espace réservé à la signature de l’utilisateur est toujours constitué d’une série de zéros après que le portail a créé la deuxième transaction. Il ne manquerait plus que la signature de l’utilisateur sur ce contrat.
- À partir de là, une fois écoulés les 6 mois fixés, la première et la deuxième transaction seraient alors diffusées, et les 5 BTC de la première transaction seraient restitués à l’utilisateur en question.
Dans l’ensemble, toutes ces caractéristiques permettent non seulement de construire de nouveaux outils financiers intéressants sur la blockchain Bitcoin mais, chaque contrat intelligent étant formé par des personnes ou des machines, les possibilités d’innovation dans les domaines de l’Internet des objets, l’Insurtech, la logistique, l’administration sont si vastes qu’il est probable que les premières killer apps ou applications révolutionnaires de ces domaines voient très bientôt le jour.
Situation actuelle des smart contracts sur Bitcoin
N’oublions pas que lorsque nous parlons de Bitcoin, nous parlons d’un écosystème nouveau, dynamique et en croissance constante, mais aussi, comme nous l’avons indiqué précédemment, de smart contracts. De nouvelles implémentations des smart contracts sur Bitcoin apparaissent peu à peu mais, actuellement, ils sont déjà appliqués dans certaines fonctionnalités qui vous diront probablement quelque chose, comme les portefeuilles multisignatures, dans lesquels deux parties ou plus doivent approuver une transaction avant que les fonds ne soient libérés.
Aux côtés des adresses multisignatures, les doubles dépôts sont l’une des fonctions qui facilitent le bon fonctionnement de ce type de contrats intelligents. Introduit par BitHalo, ce mécanisme est innovant car il élimine le besoin d’un tiers faisant office d’arbitre. En substance, les parties, par exemple un acheteur et un vendeur, effectuent TOUTES LES DEUX une transaction de dépôt liée à un contrat intelligent. Le programme du contrat dispose d’un délai déterminé avant expiration. Si les personnes impliquées dans l’accord ne le résolvent pas dans ce délai, les fonds des dépôts seront brûlés, c’est-à-dire envoyés à une adresse dont personne ne connaît la clé privée, ce qui oblige les parties à tout faire pour trouver des solutions.
Bien que Bitcoin dispose d’un langage de programmation permettant d’ajouter de la logique, certains estiment qu’il est parfois insuffisant. C’est la raison pour laquelle des solutions ont été créées pour porter les smart contracts vers de nouveaux horizons, avec des langages Turing-complets. Découvrons quelques-unes de ces nouvelles options.
Qu’est-ce que Counterparty ?
Counterparty est né en 2014. C’est une plateforme open source sur laquelle on peut développer des applications peer-to-peer. Initialement orientées vers le secteur financier, elles reposent sur la blockchain de Bitcoin : actuellement, le protocole met en œuvre et prend en charge la création d’actifs, l’émission d’obligations sur ces actifs, le versement de dividendes, l’échange d’actifs sur un marché décentralisé, les paris binaires et les contrats sur différence (CFD). Son protocole open source, en plus de permettre de créer des actifs numériques et d’opérer avec eux, permet également d’écrire des contrats intelligents, transformant de nombreuses actions du monde réel en code fonctionnant automatiquement, sans intermédiaires et résistant aux pannes.

Counterparty dispose également d’un token (ou cryptomonnaie) appelé XCP. Celui-ci est utilisé pour offrir certaines possibilités qui ne sont pas techniquement réalisables pour le moment avec des BTC (bitcoins).
Bien que l’intérêt pour des smart contracts plus puissants soit annoncé depuis le début du projet, ce n’est que récemment qu’il a été confirmé que l’EVM d’Ethereum serait finalement intégrée à Counterparty, ce qui permettra d’exécuter des contrats intelligents identiques à ceux d’Ethereum mais sur le réseau Bitcoin, ouvrant la voie à une immense diversité d’applications telles que les organisations autonomes décentralisées (DAO), les systèmes d’identité ou les systèmes de vote fondés sur le consensus, entre autres. À la date de ce chapitre du Guide Bitcoin, l’Ethereum Virtual Machine (EVM) n’est opérationnelle que sur le réseau de test de Counterparty. Comment ont-ils pu réutiliser l’EVM, qui est un logiciel libre ? Counterparty utilise le même langage de programmation de contrats intelligents, appelé Solidity.
Selon Trevor Altpeter, directeur de la Counterparty Foundation, l’EVM sera désormais capable de faire tout ce que fait Ethereum, mais sur la blockchain de Bitcoin.
Pour exécuter les contrats, on utilise la monnaie de Counterparty, le XCP.
Qu’est-ce que RootStock ?
Rootstock, connu comme l’Ethereum de Bitcoin, est une autre plateforme qui tente d’apporter des smart contracts Turing-complets à Bitcoin afin de profiter de l’effet de réseau et de la sécurité de Bitcoin sans avoir à créer quelque chose de zéro (il a été annoncé que la plateforme serait également compatible avec Ethereum). Il s’agit d’une plateforme open source de création de contrats intelligents qui récompensera les mineurs participant activement. Son objectif principal est d’ajouter de la valeur et des fonctionnalités à l’écosystème Bitcoin en activant des smart contracts sécurisés sur le réseau, en ajoutant des options de paiements instantanés et une plus grande scalabilité. Pour ce faire, RootStock s’appuie sur des chaînes latérales (sidechains), connectées à la chaîne Bitcoin, et sur son token (Roots), qui servira uniquement à être échangé contre des bitcoins.
Bien qu’il soit relativement récent, Rootstock a déjà levé 1 million de dollars lors de son dernier tour de financement auprès du Digital Currency Group (DGC).
Nick Szabo lui-même a déclaré sur son Twitter : « le meilleur de Bitcoin (monnaie et liquidité du système) + le meilleur d’Ethereum (écosystème de programmation de contrats intelligents) »

Des plateformes qui innovent avec les smart contracts
Tous les projets ne tournent pas uniquement autour du réseau Bitcoin, et les alternatives sont déjà nombreuses. Se distinguent d’abord Ethereum et, en 2016, Lisk. Entrons un peu dans les détails pour décrire chacune d’elles.
Smart contracts sur Ethereum
Ethereum est l’un des projets les plus célèbres dans le secteur des smart contracts. C’est une plateforme de calcul distribué basée sur une blockchain publique comme Bitcoin, qui permet en outre d’exécuter des contrats intelligents P2P (entre les nœuds, sans serveurs centraux) sur une machine virtuelle décentralisée appelée Ethereum Virtual Machine (EVM).
Elle repose sur toute la théorie de Bitcoin : être distribuée, avoir sa propre cryptomonnaie, ses mineurs et même sa propre blockchain, entre autres. Mais, contrairement à Bitcoin, Ethereum a créé un interpréteur de langage de programmation beaucoup plus étendu (Turing-complet), permettant d’ajouter une logique bien plus complexe au sein de la blockchain. On pourrait la comparer à un ordinateur distribué, qui utilise sa cryptomonnaie (l’ether) comme le « carburant » dont le contrat a besoin pour que les mineurs puissent l’exécuter. Autrement dit, avec Ethereum, les contrats sont désormais des programmes offrant beaucoup plus de fonctionnalités et de possibilités. Toutefois, pour y parvenir, et c’est une critique que beaucoup leur adressent, ils ont dû créer tout un nouveau réseau de zéro, renonçant au réseau Bitcoin (le plus puissant au monde).
Vous pouvez consulter, étudier ou copier une longue liste d’applications décentralisées développées sur Ethereum sur State of Dapps. Vous souhaitez en savoir plus sur Ethereum ? Voici une infographie en espagnol qui pourrait vous intéresser.

Smart contracts sur Lisk
Lisk, plateforme permettant de créer et d’exécuter des smart contracts de manière décentralisée, a été lancée en 2016 et se présente comme l’une des meilleures options pour développer des contrats intelligents sûrs et rapides grâce à l’utilisation de Javascript (le langage de programmation le plus utilisé) comme langage de création des smart contracts, devenant ainsi une alternative à Ethereum, dont le langage de programmation est Solidity.
Après une prévente réussie de la monnaie dont le contrat aura besoin pour fonctionner (le LSK), qui a permis de lever plus de 14 000 bitcoins, Lisk en est encore à un stade très précoce mais dispose déjà de plusieurs concepts de DAPP en cours de développement, comme la « proof of existance » ou un réseau social pour artistes appelé Discovr.
Grâce à l’énorme flexibilité de programmation des smart contracts et de la technologie blockchain, il est possible de les faire interagir avec le monde physique ou réel au moyen de différentes interfaces. L’une des plus utilisées actuellement sont les oracles cryptographiques.
Les oracles
Nous ne pouvons pas oublier les oracles. L’un des éléments les plus importants pour qu’un smart contract puisse interagir avec le monde réel, ce sont les oracles (oracles en anglais). Les oracles sont des outils qui permettent de mettre à jour les états internes d’un smart contract à partir d’informations extérieures (généralement obtenues via des API), par exemple le cours d’une action ou d’une devise, ou le fait qu’un colis a été expédié par le transporteur.
Pour mieux l’expliquer, imaginons un contrat intelligent portant sur un pari de football, Madrid – Barça : le contrat utiliserait comme oracle une source officielle, par exemple le site de la Liga espagnole de football. En fonction du résultat, il libère les fonds au gagnant. Qui a besoin d’un bookmaker qui garde un pourcentage de votre argent ? Ce serait en somme un bookmaker sans commissions, sûr et sans intermédiaires (décentralisé).
Les oracles fonctionnent également de manière autonome. Cependant, il faut garder à l’esprit que la source utilisée par l’oracle est un tiers auquel il faut faire confiance, qui pourrait être corrompu par son propriétaire, piraté, ou dont le serveur pourrait tout simplement tomber en panne, ce qui a des implications négatives : nous CENTRALISONS la confiance, ce qui est contraire à la philosophie de la blockchain. Heureusement, des projets développent déjà des solutions à ce problème : Orisi et Oraclize. Pour l’essentiel, ils combinent le résultat de tous les fournisseurs d’information indiqués, et c’est le système qui prend sa décision en fonction de ce que la majorité lui indique. Autrement dit, il décentralise l’obtention du résultat, ce qui est formidable.
Un monde dominé par les smart contracts
Imaginez-vous que, dans quelques décennies, les responsables politiques de l’époque passent 4 ans à préparer le smart contract dans lequel ils définiront comment l’argent sera réparti et les actions qu’ils mèneront ?
Ainsi, la société n’aurait qu’à voter (grâce à la technologie blockchain également, bien sûr) pour le smart contract qu’elle souhaite utiliser pendant cette nouvelle période.
Cela garantirait que ce qui a été voté sera exécuté, avec une transparence totale et un suivi des dépenses. Quelque chose d’urgent, vu l’époque que nous vivons…
Peut-être les élections ressembleront-elles à cela d’ici peu.
Ce n’est que le début
Ainsi s’achève, pour l’instant, notre tour d’horizon de cette branche passionnante de la technologie blockchain. Comme vous l’avez vu, certaines plateformes rivalisent sur des solutions similaires dans un environnement de créativité constante, mais toutes avec le même objectif : éliminer les points de friction du système traditionnel pour faire gagner du temps et de l’argent aux gens. À peine quelques années après les premiers pas de Bitcoin, seuls quelques-uns prendront la peine de lire ce texte (estimez-vous chanceux), encore moins l’approfondiront, et très, très peu décideront de faire un pas en avant et de passer à l’action. Tout reste à faire, il y a beaucoup de problèmes, beaucoup de choses qui fonctionnent mal : n’est-ce pas une occasion unique de faire quelque chose ?
Pour peu que l’on se mette à imaginer, on peut entrevoir un avenir sans grandes multinationales monopolisant des secteurs, mais avec des codes transparents qui vivent indéfiniment sur une blockchain et sont capables d’orchestrer la fourniture de toutes sortes de services sans coût (ou à un coût dérisoire par rapport à l’actuel). Nous allons vers un monde global, mais distribué, sans intermédiaires ni grandes entreprises organisant tout à leur guise dans l’ombre. Un monde global avec des services globaux, où les smart contracts ont toutes les chances d’être le germe d’un changement sans précédent : on estime à plus de 25 milliards le nombre d’appareils connectés à Internet en 2017, tous susceptibles d’exécuter quotidiennement des smart contracts entre eux.
Voilà, entre autres, ce que représentent les smart contracts ; il ne reste plus qu’à créer des interfaces simples qui exploitent ce potentiel dans des cas concrets. Êtes-vous prêt ?










































You must be logged in to post a comment.