Pourquoi la plateforme Bitcoin Smart Contract
Qu’est-ce qu’un contrat intelligent ?
C’est une question à laquelle il est devenu impossible de répondre aujourd’hui sans déclencher l’équivalent numérique d’une bagarre de bar. Dès que ce terme est prononcé dans une conversation, la plupart des gens pensent immédiatement à « Ethereum », « Solana », « TRON » ou à tout autre projet décentralisé (DINO) qui a vu le jour depuis la création du bitcoin.
La plupart des personnes nouvelles ou non informées dans cet écosystème pensent probablement que le terme « contrat intelligent » a été inventé par des projets comme Ethereum, et que ces projets les ont littéralement inventés.
Lorsqu’ils entendent « smart contracts », ils commencent probablement à penser immédiatement aux organisations autonomes décentralisées (DAO), aux échanges décentralisés, aux teneurs de marché automatiques et à d’autres applications de type Turing-complet sur Ethereum. Conceptuellement, tout ce qui ne s’approche pas de ce niveau de complexité est probablement immédiatement rejeté par la plupart des gens comme n’étant pas un contrat intelligent. Mais rien ne pourrait être plus éloigné de la vérité.
La naissance des contrats intelligents
Le terme « contrats intelligents » a été inventé par Nick Szabo en 1996, avant même que l’idée d’une blockchain ne fasse son chemin dans l’esprit de Satoshi. Ils n’avaient rien à voir avec les DAO, les échanges décentralisés ou tout autre type de construction auquel les gens ont tendance à penser lorsqu’ils entendent ce terme.
Le concept était radicalement plus simple et plus basique que tous ces systèmes construits au sommet de plateformes comme Ethereum. Les contrats intelligents prenaient simplement des contrats légaux conventionnels et trouvaient des moyens de les faire appliquer en dehors du champ des juridictions gouvernementales, dans le domaine de l’application par le biais de logiciels et de matériel, autant que possible.
« De nouvelles institutions, et de nouvelles façons de formaliser les relations qui composent ces institutions, sont désormais rendues possibles par la révolution numérique. J’appelle ces nouveaux contrats « intelligents », car ils sont beaucoup plus fonctionnels que leurs ancêtres inanimés sur papier. Ils ne font pas appel à l’intelligence artificielle. Un contrat intelligent est un ensemble de promesses, spécifiées sous forme numérique, y compris les protocoles dans lesquels les parties s’exécutent sur ces promesses. »
Nulle part dans cette définition n’est mentionnée la « complétude de Turing », ou « l’organisation autonome décentralisée » ou quoi que ce soit qui implique qu’un certain niveau minimum de complexité est requis pour être considéré comme un contrat intelligent. Certains des exemples donnés par Szabo comme précurseurs des contrats intelligents – ou comme je les définirais, des » proto-contrats intelligents » – sont des choses très basiques, comme des distributeurs automatiques ou des systèmes de point de vente (POS).
Dans le cas du distributeur automatique, il s’agit d’un « contrat proto-smart » intégré dans le matériel. Le « contrat » qu’il met en œuvre est très simple : un utilisateur insère des pièces dans la machine, et la machine distribue la nourriture que l’utilisateur a achetée. Globalement, la sécurité de la machine se résume au matériel physique réel. Il est très long et difficile d’ouvrir un distributeur automatique et d’en retirer de la nourriture sans l’avoir payée. Il est donc peu probable que cela puisse être fait dans la plupart des cas sans que le coupable ne se fasse prendre par les forces de l’ordre ou un employé du lieu où se trouve le distributeur.
Un autre détail important est que les contrats impliquent généralement plusieurs étapes entre les parties concernées ; il est très rare que quelque chose impliquant un arrangement contractuel soit facilité en une seule étape. L’utilisateur introduit des pièces dans le distributeur automatique, qui lui permet ensuite de sélectionner ce qu’il achète, l’utilisateur fait ensuite son choix et la machine distribue les marchandises. Il s’agit d’un processus en quatre étapes : premièrement, l’utilisateur introduit de l’argent ; deuxièmement, la machine passe au processus de sélection du produit ; troisièmement, l’utilisateur fait sa sélection ; quatrièmement, la machine distribue le produit sélectionné par l’utilisateur.
Maintenant, voici un point important à considérer : La dynamique du contrat implique deux parties, le distributeur automatique et le client. Elle instancie une clause très simple accomplie dans les quatre étapes définies ci-dessus : donnez de l’argent au distributeur, le distributeur vous donne de la nourriture.
Mais que se passe-t-il si vous mettez votre argent dans le distributeur et que la nourriture n’est pas correctement distribuée ? Qui s’occupe de ce problème ? À qui vous adressez-vous pour qu’il soit résolu et que le « contrat » soit correctement exécuté après avoir échoué à le faire de lui-même ? Pour résoudre ce problème d’inexécution, vous devez soit trouver un employé de l’entreprise où se trouve le distributeur automatique, soit contacter la ligne d’assistance du propriétaire, le cas échéant. Il faut que quelqu’un intervienne pour corriger l’exécution incorrecte du contrat.
Cela m’amène à un point très important : un « contrat intelligent » ne signifie pas par définition qu’il n’y a pas de confiance dans les tiers. En fait, selon les mots de Szaboles contrats intelligents impliquent souvent des tiers de confiance, par exemple un intermédiaire, qui participe à l’exécution, et un arbitre, qui est invoqué pour résoudre les litiges découlant de l’exécution (ou de l’absence d’exécution) ».
Réfléchissez vraiment à cela : Dans tout type de contrat, il est possible qu’une partie ou l’autre triche et refuse de remplir sa part du contrat. Il est toujours possible que le contrat ne soit pas exécuté correctement. Quelqu’un ou quelque chose, qui est par définition un tiers, doit intervenir en cas d’exécution incorrecte et y remédier afin de faire respecter l’exécution appropriée et éventuellement appliquer des sanctions pour l’exécution incorrecte initiale, le cas échéant.
La plupart des proto-smart contracts et même des smart contracts complets ne sont pas sans confiance. La plupart ne peuvent même pas être automatisés des deux côtés. Pensez au cas d’une personne qui achète un paquet de cigarettes avec une carte de débit sur un distributeur automatique à la station-service. Ce client doit faire confiance à l’être humain qui se trouve de l’autre côté de la caisse pour lui remettre les cigarettes après que le système de point de vente ait signalé que son paiement a été effectué. Si l’employé refuse de le faire, le client doit faire confiance à sa banque ou au processeur de la carte pour rembourser le paiement parce qu’il n’a pas reçu ce pour quoi il a payé.
Les objectifs des contrats intelligents
Maintenant que nous avons établi les modèles de confiance conceptuels des proto-contrats intelligents, passons en revue les quatre objectifs importants de la conception d’un contrat tels que définis par Szabo.
Observabilité: Les personnes (ou les choses) impliquées dans le contrat doivent être en mesure de voir que l’autre partie s’exécute correctement aux termes du contrat, et être en mesure de prouver qu’elles-mêmes s’exécutent correctement à l’autre partie.
Vérifiabilité: Toutes les parties à un contrat doivent pouvoir prouver à l’arbitre choisi que le contrat a été exécuté correctement ou qu’une ou plusieurs parties ont manqué à leurs obligations contractuelles.
Privacité: Le contrat doit être structuré de manière aussi privée que possible. La quantité d’informations privées sur le contrat ou les parties impliquées qui sont diffusées au-delà de ces dernières au public ou à d’autres tiers doit être limitée au strict minimum nécessaire à l’exécution du contrat.
Force exécutoire: Il doit y avoir un mécanisme permettant de s’assurer que les choses s’exécutent correctement, même dans le cas où une ou plusieurs parties violent leurs obligations en vertu des termes du contrat, et de même, le contrat doit être structuré de manière à rendre très improbable la probabilité que l’exécution soit nécessaire. Les contrats doivent encourager les parties à se conformer volontairement à leurs obligations en vertu des termes du contrat.
Les objectifs de conception ci-dessus existent effectivement pour fournir les meilleures chances que les contrats s’exécutent correctement dans la grande majorité des cas, tout en protégeant simultanément les détails du contrat des yeux indiscrets du public, à moins que la révélation de ces détails ne soit absolument nécessaire pour donner au contrat les meilleures chances de se terminer par une exécution correcte des termes.
Primitives des contrats intelligents
Les protocoles cryptographiques sont un élément de définition des contrats intelligents. Szabo les a appelés les « blocs de construction de base qui mettent en œuvre les compromis améliorés entre l’observabilité, la vérifiabilité, la confidentialité et l’applicabilité dans les contrats intelligents ».
Quelles sont donc les primitives de base nécessaires à la mise en œuvre de protocoles cryptographiques ? Des paires de clés cryptographiques, bien sûr.
Pour s’engager dans un contrat intelligent, les principaux participants et arbitres doivent chacun générer une clé privée, puis en déduire une clé publique qu’ils partageront avec les autres participants afin d’interagir les uns avec les autres dans le cadre du processus du contrat intelligent. Un système de signature numérique doit également être mis en place pour que les participants signent les termes et l’exécution du contrat intelligent, et fournissent également des preuves sous la forme de ces signatures à l’arbitre si nécessaire, montrant l’accord sur les termes initiaux du contrat et si oui ou non le contrat a été exécuté correctement comme défini par ces termes.
Ceci introduit une exigence fondamentale pour toute partie impliquée dans la création et l’exécution de contrats intelligents : la protection de vos clés privées. Ceci est très important pour deux raisons.
Premièrement, il est évident que si votre clé privée impliquée dans un contrat intelligent est compromise et volée, le voleur peut faire croire que vous avez tenté d’exécuter le contrat de manière incorrecte. Deuxièmement, en agissant ainsi, le voleur donne l’impression aux autres participants du contrat intelligent que vous êtes une contrepartie indigne de confiance (et potentiellement au grand public également). Il vous donne une mauvaise réputation.
Au minimum, un tel événement conduirait la contrepartie de ce contrat intelligent à ne pas vouloir s’impliquer dans des contrats auxquels vous êtes une contrepartie. En outre, si la violation du contrat a eu lieu publiquement ou a été révélée d’une manière ou d’une autre au public, cette hésitation à s’impliquer dans des contrats intelligents avec vous s’étendrait probablement au grand public également. Les réputations peuvent être liées à des identités légales, ou simplement à des pseudonymes, de sorte que le degré d’atteinte à la réputation peut varier en fonction de ce à quoi la réputation est liée, mais une atteinte à la réputation peut toujours se produire. La différence réside uniquement dans la difficulté de se séparer après coup de cette identité à la réputation entachée (par exemple, un pseudonyme sur Internet par rapport à votre vrai nom).
Examinons maintenant un exemple très basique de contrat intelligent.
Dans les années 1990, lorsque Szabo a inventé ce terme, l’un des outils cryptographiques les plus intéressants de l’époque était l’e-cash numérique de David Chaum (décrit en détail ici). Je vais cependant résumer rapidement : Pensez à l’e-cash comme à des billets numériques émis par une autorité centrale (l’arbitre du contrat). Ces billets sont simplement de grands nombres aléatoires avec une signature cryptographique de l’autorité prouvant leur validité. Pour dépenser un billet, vous le donnez à la personne que vous payez, qui le rachète auprès de l’autorité centrale et en reçoit un nouveau. De plus, en raison de la manière dont le processus de signature fonctionne, l’autorité ne peut pas savoir qui paie qui, ce qui rend le système très privé.
Dans ce contrat intelligent, vous avez l’expéditeur et le destinataire, et l’autorité centrale qui arbitre si un transfert entre l’expéditeur et le destinataire a eu lieu ou non. À l’époque, une partie de la conception était basée sur deux modes d’utilisation d’un tel contrat intelligent : un, avec une connexion Internet active, racheter les billets numériques dès que vous les recevez ; ou deux, retarder le processus de rachat et racheter les billets numériques par lots.
Dans le cas de l’utilisation de la première méthode, avec une autorité centrale honnête, il ne devrait y avoir aucun risque d’être escroqué avec un billet qui a déjà été racheté par l’autorité. Dans le cas d’une utilisation hors ligne, le récepteur court le risque qu’un client dépense un billet numérique dans plusieurs endroits, ce qui signifie qu’un seul de ces récepteurs peut effectivement le racheter auprès de l’autorité. Tous les autres perdent de l’argent.
La partie (ou les parties) trompée(s) n’a (ont) maintenant d’autre choix que d’évaluer différemment la réputation de la personne qui l’a trompée dans ses (leurs) futures interactions. Rationnellement, à partir de ce moment-là, ils refuseront de fournir des biens ou des services à ce client jusqu’à ce qu’ils aient réussi à racheter leur billet numérique auprès de l’autorité centrale, s’ils veulent même faire des affaires avec ce client à l’avenir.
L’autorité centrale dans un système Chaumian e-cash est l’autorité d’exécution, et les utilisateurs sont des oracles qui fournissent des données à cette autorité afin d’appliquer un résultat. Lorsque le récepteur d’un billet numérique va le racheter, il fonctionne comme un oracle (une personne ou une chose qui affirme quelque chose, et dans les cas où cela est possible, fournit la preuve que quelque chose est vrai). Il déclare, en tant qu’oracle à l’autorité, que quelqu’un lui a payé un billet numérique. La preuve de cette déclaration est le billet numérique lui-même, et l’autorité ne lui en délivrera un nouveau que si elle estime que la déclaration de l’oracle est valide.
Il est utile de souligner pour plus tard qu’il est possible d’avoir des oracles tiers impliqués dans une transaction, c’est-à-dire que deux personnes transfèrent des billets numériques à un oracle tiers dans le but que tous les billets soient retransférés à un participant ou à l’autre en fonction du résultat d’un match de football. La seule différence réelle par rapport à l’exemple simple d’une transaction de base est que la véracité de la déclaration de l’oracle ne peut pas être vérifiée par un ordinateur automatisé comme peut l’être la cryptographie autorisant un transfert de billets de base. Seuls les êtres humains peuvent vérifier de nombreux types de déclarations que les oracles peuvent faire.
Alors, qu’est-ce que cela illustre finalement concernant la nature de ce contrat intelligent ? Soit les incitations des deux parties à agir honnêtement sont suffisamment bonnes (par exemple, le commerçant ne vous vendra pas de nourriture à l’avenir si vous le trompez), soit elles doivent faire confiance à l’arbitre pour appliquer correctement le contrat afin que le client ne puisse pas agir de manière malhonnête. Ainsi, non seulement les deux parties doivent se faire confiance pour agir honnêtement, mais si un participant tente d’agir de manière malhonnête, l’autre participant doit faire confiance à l’arbitre pour agir honnêtement et le protéger. Il n’y a aucun moyen d’y échapper.
Le bitcoin comme plateforme de contrats intelligents
Alors, ramenons tout cela à Bitcoin. Bitcoin est littéralement une plateforme de contrats intelligents. C’est ce qu’il est, ce qu’il a toujours été, ce qu’il a été conçu pour être.
Le réseau Bitcoin fonctionne comme un gigantesque arbitre distribué qui veille à la bonne exécution des contrats intelligents sans s’appuyer sur une seule autorité centrale pour le faire. Il fournit un mécanisme permettant aux contrats d’être observables, vérifiables et exécutables. La seule qualité d’un contrat sur laquelle il a échoué historiquement est la confidentialité – tous les termes des contrats intelligents Bitcoin sont publics et visibles par tous. Cependant, il protège au moins les identités réelles de ceux qui s’engagent dans les contrats, et la récente activation de Taproot est une amélioration massive en termes de dissimulation des clauses d’un contrat, sauf si cela est nécessaire pour les faire appliquer.
Chaque fois qu’une transaction Bitcoin a lieu, l’expéditeur agit comme un oracle revendiquant la capacité de dépenser de l’argent et fournissant une preuve sous la forme d’une signature numérique. Le récepteur, et chaque participant du réseau, observe la transaction qui se propage dans le réseau et vérifie que la signature numérique est correcte. Ensuite, le mineur qui réussit à trouver le bloc suivant prend la place d’une autorité centrale et « exécute » le contrat intelligent en incluant la transaction dans un bloc et en le propageant dans le réseau. Enfin, le récepteur et l’ensemble du réseau vérifient l’exactitude de chaque signature et témoin de contrat dans le bloc.
En fin de compte, les contrats exécutés sur Bitcoin nécessitent toujours la confiance en un arbitre pour être exécutés correctement, mais l’arbitre est un réseau distribué où tout le monde vérifie tout le monde. Plus il y a de personnes qui participent à ce réseau et qui se vérifient mutuellement, plus le réseau a confiance dans la bonne exécution des contrats. C’est la plus grande réussite de Bitcoin, mais c’est aussi la plus grande limite de Bitcoin (et de toute blockchain qui a une once de décentralisation réelle).
La blockchain (ou plutôt tous les nœuds participant au réseau qui vérifient leur copie de la blockchain) peut appliquer toutes sortes de règles par elle-même, comme les transactions qui ne sont traitées que si les signatures numériques les autorisant sont correctes, ou seulement après qu’un timelock empêchant une pièce de monnaie de bouger jusqu’à ce qu’un certain temps expire, etc. Il peut appliquer automatiquement tout contrat qui ne nécessite que l’entrée de données cryptographiques, car un oracle publie directement sur le réseau des données cryptographiques vérifiables à 100 % ou ne le fait pas. Mais elle ne peut pas faire respecter automatiquement et correctement tout contrat qui nécessite la saisie de données qui ne peuvent pas être représentées en cryptographie de manière vérifiable, c’est-à-dire que Bitcoin ne peut pas garantir automatiquement qu’un pari sur un match de football s’exécute correctement. Il n’y a aucun moyen pour une blockchain de vérifier le score à la fin du match qu’un oracle affirme être correct.
Ainsi, alors que Bitcoin peut rendre l’exécution de transactions de base, ou de transactions avec des conditions cryptographiques relativement simples, sans confiance, il ne peut pas rendre l’exécution de n’importe quel contrat arbitraire sans confiance. Seuls les contrats dont l’exactitude peut être prouvée à 100 % à l’aide de données pouvant être publiées sur la blockchain peuvent être exécutés sans confiance.
Maintenant, différentes architectures de blockchain peuvent permettre à différents degrés de choses complexes d’être prouvées purement par des données sur la chaîne, mais cela implique de discuter des compromis de sécurité qui sont en dehors de la portée de cette pièce. Tout contrat impliquant des conditions qui ne peuvent pas être prouvées à 100% par la publication de données sur la chaîne nécessite, par nécessité, l’introduction de la confiance, mais comme discuté ci-dessus, le fait qu’un tiers soit impliqué n’exclut pas qu’il s’agisse d’un contrat intelligent.
Donc, pour répondre à la question de « Qu’est-ce qu’un contrat intelligent ? » Littéralement tout ce qui se passe sur une blockchain.
Ceci est un article invité par Shinobi. Les opinions exprimées sont entièrement les siennes et ne reflètent pas nécessairement celles de BTC Inc. ou de la Banque mondiale. Bitcoin Magazine.