En totale adéquation avec l'idéologie de la blockchain dont elle est l'émanation, l'automatisation smart contractuelle semble dispenser le contrat de toute intervention extérieure. Mais son étude approfondie démontre le besoin de juristes impliqué par les choix que nécessite le contrat. Le mécanisme seul est insuffisant à faire naître un contrat intelligent. Le milieu dans lequel il évolue limite également le smart contract. Se borner aux informations contenues dans la blockchain limiterait fortement l'utilisation de cette application. Cette technologie présentée comme trustless
« Sans confiance ».
nécessite souvent de faire appel à un tiers de confiance dénommé « oracle »
(§ I)
. Il inscrit sur la blockchain les informations nécessaires à la réalisation du smart contract. Il se présente comme le lien entre la blockchain et la réalité physique
www.ethereum-france.com/les-oracles-lien-entre-la-blockchain-et-le-monde/">Lien, consulté le 25 mai 2020.
. Élément extérieur à la blockchain, il est à la fois une éventuelle faille du smart contract et le gage de sa réussite. Différentes formes d'oracle existent
(§ II)
. Le choisir est une autre étape importante.
Le choix de l'oracle
Le choix de l'oracle
Le rôle de l'oracle
? L'ancrage de données extérieures. ? L'oracle renseigne des données sur la blockchain servant à l'exécution du smart contract. Exactes ou erronées, ces informations déterminent le devenir du smart contract. Les événements inscrits sur la blockchain sont indélébiles. Le smart contract enclenché par les éléments renseignés est inarrêtable. L'oracle décide donc seul du sort du smart contract.
L'oracle est un acteur puissant du processus smart contractuel. Son choix doit être réfléchi. On imagine aisément l'oracle sous la forme d'une personne physique ou morale neutre sur laquelle les parties appuient leur transaction en l'absence de confiance mutuelle. Il peut néanmoins prendre bien d'autres formes et notamment celles d'une base de données, d'un objet connecté ou d'une communauté.
L'oracle, puissant acteur du processus
Prenons l'exemple de Fizzy. Le passager ayant souscrit une assurance en cas de retard de son avion supérieur à deux heures est indemnisé automatiquement lorsque la situation se produit.
La base de données de l'aéroport renseigne l'horaire d'arrivée dans la blockchain. Elle joue le rôle d'oracle. Si cet horaire diverge de plus de deux heures par rapport à celui prévu, l'indemnisation est versée automatiquement au voyageur. Dans le cas contraire, il ne recevra aucun dédommagement. L'oracle a le pouvoir de décider de l'exécution ou non du smart contract.
Les différentes formes d'oracle
L'oracle est un intervenant extérieur tendant à assouplir le mécanisme du smart contract. Son choix permet aux parties de réintroduire une forme de tiers de confiance. Elles décident de soustraire leur accord au juge en lui substituant la technique mais ne s'en remettent pas au seul logiciel. Elles autorégulent leur relation contractuelle. Dans ce contexte, se pose la question de l'utilité d'un autre encadrement du smart contract,institutionnel cette fois.
Les différentes formes d'oracle
? Un oracle, personne physique ou morale. ? Lien entre le monde réel et l'univers numérique, l'oracle s'imagine comme une personne physique ou morale. Défenseur du contrat plus que des parties, nul doute que le costume d'oracle sied parfaitement au juriste, notaire, huissier, etc.
V. infra, nos et s.
? Un oracle logiciel. ? Un oracle basé sur des implémentations logicielles recherche une information et en atteste cryptographiquement l'origine. Fizzy
V. supra, no .
était basé sur ce principe. Le logiciel implémente les informations recueillies dans la base de données de l'aéroport dans la blockchain.
Le logiciel et la source doivent être fiables. La confiance donnée est double.
La confiance accordée au logiciel repose sur la simplicité de la question. Celle-ci doit être basée sur un événement concret et ne pas laisser place à l'interprétation. Par exemple, ce peut être le résultat d'un événement sportif, une donnée météorologique, un indice boursier, etc. La confiance donnée à la source utilisée par l'oracle pour affirmer une situation est également d'importance. Dans l'exemple choisi plus haut du constat d'un retard dans les transports, l'erreur dans la base de données de l'aéroport est marginale. Mais ce n'est pas toujours le cas. La source choisie peut être incertaine. L'exemple de Wikipédia
Projet collaboratif, Wikipédia est une encyclopédie à laquelle tous les internautes sont invités à contribuer.
est révélateur. Les principes fondateurs du concept eux-mêmes incitent les contributeurs à l'audace dans leurs propos. « [L]'un des avantages de pouvoir modifier Wikipédia est que tout n'a pas à être parfait du premier coup »
https://fr.wikipedia.org/wiki/Wikip%C3%A9dia">Lien : Principes_fondateurs, consulté le 27 mai 2020.
. La donnée puisée dans cette source est potentiellement discutable. Les informations s'y trouvant peuvent même être contradictoires, obligeant le logiciel à faire un choix. En définitive, les données utilisées par l'oracle pourraient sérieusement être mises à mal. Ses affirmations seraient sans valeur
V. Rabesandratana et N. Bacca, L'Oracle hardware : la couche de confiance entre les blockchains et le monde physique, in Réalités industrielles : Annales des Mines 2017, p. 91 et s.
mais inscrites de manière irréversible dans la blockchain.
? Un oracle
hardware
. ? L'oracle logiciel puise ses réponses dans des bases de données publiques. Mais certaines conditions à l'exécution du smart contract sont fondées sur des situations personnelles aux contractants. Les vérifier nécessite une confirmation physique. C'est le cas de la géolocalisation d'une parcelle de vigne ayant subi une intempérie, de la traçabilité d'un produit ou d'un flux, d'un comportement individuel, etc. L'objet connecté est alors la source de l'information
V. supra, no .
. L'oracle ne vérifie pas sa véracité. Il atteste son origine de manière cryptographique
V. Rabesandratana et N. Bacca, L'Oracle hardware : la couche de confiance entre les blockchains et le monde physique, in Réalités industrielles, préc.
.
Les parties acceptent de donner le pouvoir de gouverner le contrat à l'oracle plutôt qu'au code. L'idée peut sembler problématique à deux égards. L'intention des parties prévaut sur la transparence du code. La profusion d'acteurs n'inspire pas la confiance.
Mais elle est également séduisante.
Envisager l'oracle comme une communauté revient à donner sa confiance au consensus de la collectivité. Un certain équilibre est rétabli entre les parties. L'oracle est généralement choisi par la partie forte. Mais sa fiabilité n'est pas nécessairement perçue de la même manière selon que l'on se place du point de vue de l'une ou l'autre partie. Le consensus obtenu par une collectivité renoue avec la neutralité du tiers de confiance.
Le projet Oraclize est le premier à s'être fondé sur un consensus. Un grand nombre de participants implémentent une information réputée fiable dans la blockchain pour actionner le smart contract. Le processus apparaît complexe mais, au regard de ses avantages, d'autres projets d'oracles fondés sur un consensus ont vu le jour depuis.
La fiabilité est garantie par un fonctionnement en plusieurs étapes :
- �La sélection de l'oracle : pour participer, l'oracle séquestre des links sur la blockchain. Plus l'oracle traite de demandes, plus il gagne de links. Si l'oracle implémente de mauvaises informations, non seulement il ne reçoit pas de tokens mais il perd ceux séquestrés. Les utilisateurs peuvent noter la qualité des données fournies. Ainsi l'oracle tenant à sa réputation a intérêt à alimenter la blockchain au moyen d'informations vérifiées. Sinon, il s'expose à la perte de confiance des utilisateurs. L'oracle a plus à perdre qu'à gagner en renseignant des informations erronées dans la blockchain ;
- �oracling : les oracles sélectionnés délivrent les données demandées. La rémunération doit être totalement déconnectée de l'enjeu. Le seul fait de voter doit aboutir à la rémunération. Elle a lieu en links, alloués en contrepartie de la contribution à apporter à l'information requise ;
- �agrégation : les informations apportées sont agrégées pour numériser l'information à enregistrer.
? Une communauté. ? L'idéologie de la blockchain est trustless. Seul le code informatique gouverne la transaction. Dans le mécanisme smart contractuel, il n'est pas question de loyauté. Le code est la loi des parties
L. Lessig, Code is law : Harvard magazine 2000 (https://harvardmagazine.com/2000/01/code-is-law-html">Lien, consulté le 19 mai 2020).
. L'exploitation d'une faille dans la rédaction du code est le résultat de son utilisation normale. Ce n'est pas un piratage. Il ne nécessite pas de remède. Adopter un oracle de type « communauté » ayant vocation à corriger les déviances du code non imaginées lors de sa conception réintroduit l'idée d'interprétation
www.ethereum-france.com/les-oracles-lien-entre-la-blockchain-et-le-monde/">Lien, consulté le 2 juin 2020.
.
Elle aboutit à bloquer le contrat ne correspondant plus au jour de l'exécution à la réalité voulue par les parties au jour de sa conclusion. Cette vision est congruente avec l'idée que le droit guidé par le bon sens ne donne pas toujours raison au plus malin
B. Jean et P. de Filippi, Les smart contracts, les nouveaux contrats augmentés, Conseils et entreprises, Avocats conseils d'entreprise, 2016, hal-01676878.
. Chercher et exploiter la faille pour faire du profit ne paie pas. La bonne foi est réintroduite dans le processus smart contractuel. La souplesse du contrat demeure au stade de son exécution. Le smart contract, présenté comme immuable, ne le serait finalement pas. En nommant un oracle démocratique, le smart contract pourrait devenir un outil adaptable aux situations de fait intervenant en cours d'exécution.
Le projet était une expérience à la croisée des chemins entre financement participatif et fonds d'investissement.
Son objet était d'évaluer des projets, de déterminer s'ils devaient être financés et, le cas échéant, de participer aux bénéfices. L'achat de tokens répond donc à un triple objectif :
- �participer au choix des projets ;
- �participer aux bénéfices ;
- �spéculer.
La levée de fonds s'est élevée à cent cinquante millions de dollars en ethers.
Quelques semaines après son lancement, un membre a exploité une faille du code, parvenant à détourner cinquante millions de dollars en ethers.
Les fonds collectés étant gelés pendant vingt-huit jours, la communauté a utilisé cette période pour trancher entre les deux options qui lui ont été soumises :
- �censurer toutes les transactions reliées au compte de l'attaquant ;
- �modifier l'état de la blockchain pour le restaurer tel qu'il était avant l'attaque.
Une organisation traditionnelle aurait eu le pouvoir d'annuler la transaction, illicite du seul fait de la mauvaise foi de l'utilisateur. Sur la blockchain, la logique est différente. Le membre à l'origine de la malversation n'a commis aucun acte frauduleux. Il a seulement utilisé le code tel qu'il avait été créé. La question fut très controversée. Elle remet en cause l'un des fondements de la blockchain, son immuabilité. Le code doit être respecté tel qu'il a été écrit, en dépit de ses défauts et de l'intention de ses concepteurs.
Somme toute, la seconde option fut retenue. Mais la divergence entre les membres aboutit au dédoublement de la chaîne. L'une, remise dans l'état antérieur à l'attaque, fonctionne toujours avec l'ether ETH. L'autre conserve le butin détourné ayant pour symbole l'ether classique ETC.
Le schisme a pour conséquence la possibilité de dépenser deux fois les ethers acquis avant le hard-fork
, les opérations faites sur l'une des chaînes n'étant pas répercutées sur l'autre.
Réintroduire l'imprévision ou la force majeure
Lister l'ensemble des événements imprévisibles sous-entend qu'ils ne le sont pas vraiment. Ils sont nombreux. Ils peuvent être factuels ou encore techniques (bug informatique, piratage, etc.).
Soit les parties doivent accepter d'assumer le risque d'une imprévision non anticipée. Soit elles décident de réintroduire un tiers de confiance. L'événement imprévisible est alors intégré par un oracle dans la blockchain pour engager un nouveau smart contract et stopper l'exécution du premier.
Cette seconde option est peu envisageable au moyen d'un oracle logiciel ou hardware pour lesquels la question posée doit être simple.
La pondération est apportée par le bon sens de la communauté.
, comment ça marche ?
Premier logiciel d'oracles décentralisé, ChainLink est une plateforme consistant à faire interagir la blockchain avec les sources externes d'informations et les blockchains entre elles. Il favorise le bon fonctionnement des smart contracts en leur garantissant une information fiable pour déclencher la boucle conditionnelle.