Les oracles

Une blockchain peut être vue comme un environnement clos et autosuffisant, dans lequel des informations sont enregistrées, partagées et maintenues à jour en permanence sur un réseau décentralisé de pairs. Cependant, pour déployer tout le potentiel des smart contracts et des applications décentralisées, les blockchains doivent pouvoir interagir avec des données et des événements externes, parfois même du monde réel.

C’est là qu’interviennent les oracles (littéralement “oracle” en anglais). Ils font le lien entre le monde “extérieur” et les applications blockchains : ce sont des “agents” qui leur permettent d’accéder à des informations externes, et de déclencher des actions basées sur ces données.

On peut les voir comme des ponts qui rendent des données du monde extérieur (cours de Bourse, résultats sportifs, données GPS, etc.) ou des données d’autres activités on-chain (transaction, état d’un wallet, etc.) directement utilisables par des smart contracts. Ils alimentent les blockchains en informations fiables, leur permettant ainsi de sortir de leur vase clos.

Grâce aux oracles, une multitude de cas d’usage deviennent possibles, comme des paris décentralisés, des systèmes d’assurance automatisés, ou encore des flux de paiements conditionnés à des événements dans le monde réel.

Fonctionnement

Les oracles blockchain peuvent être classifiés en deux grandes familles : les oracles entrants et les oracles sortants. Les premiers permettent d’apporter des données du monde extérieur vers la blockchain. Par exemple, il peut s’agir de transmettre le cours actualisé du Bitcoin, le score d’un match de football ou encore des relevés de températures issues de capteurs IoT. Ces données externes sont ainsi importées dans les smart contracts, qui peuvent alors les utiliser pour exécuter différentes actions programmées.

À l’inverse, les oracles sortants assurent la transmission de données depuis la blockchain vers des systèmes extérieurs. Ils rendent par exemple possible l’envoi de notifications push à un utilisateur lorsqu’un événement particulier se produit dans un smart contract. Les oracles font donc office à la fois de pont entrant, permettant d’alimenter la blockchain en données réelles, mais également de pont sortant, autorisant la blockchain à communiquer des informations vers l’extérieur.

Ces deux types d’oracles blockchain, entrants et sortants, peuvent par ailleurs s’appuyer sur une infrastructure centralisée ou décentralisée. Dans le premier cas, l’oracle utilise une unique source de données. Cette approche simpliste présente toutefois un risque de défaillance unique, la source centrale pouvant tomber en panne. Dans le second cas, l’oracle s’appuie sur un consensus décentralisé de multiples acteurs pour récolter et certifier les données entrantes, sans avoir recours à un point de défaillance central. Cette architecture décentralisée est plus complexe à mettre en œuvre mais permet une plus grande résilience.

Architecture et composants

D’un point de vue technique, un oracle blockchain se décompose en trois éléments : les “providers” de données, les “signers” et le smart contract destiné à consommer les données.
Les providers sont les entités chargées de récolter les données du monde extérieur, qu’elles proviennent d’API web, de flux de données IoT ou de toute autre source. Elles transmettent ces données brutes aux signers.

Le rôle des signers est de certifier que les données fournies par les providers sont authentiques et n’ont pas été trafiquées avant injection dans la blockchain. Ils constituent un maillon essentiel pour établir la confiance dans l’ensemble du système. Enfin, le smart contract renferme les instructions qui seront exécutées une fois les données entrantes certifiées par les signers. Par exemple, réaliser un paiement sous réserve qu’on lui fournisse la preuve qu’un bien est arrivé à destination.

Le fonctionnement global d’un oracle blockchain se déroule donc ainsi : le provider récolte des données à l’extérieur de la blockchain et les envoie aux signers; le ou les signers vérifient l’authenticité des données et génèrent une « preuve »; cette preuve est transmise au smart contract qui exécute alors le code prévu en prenant en entrée les données désormais certifiées. Ce pipeline permet donc d’importer des données réelles dans la blockchain et de déclencher des actions en fonction de ces données de confiance.

Cas d’utilisation

Impossible de parler des oracles blockchain sans évoquer Chainlink, acteur incontournable du secteur qui détient plus de 90% de part de marché des oracles décentralisés. Sa technologie est utilisée par de nombreux projets nécessitant l’accès à des données externes. Chainlink fournit des réseaux décentralisés d’oracles certifiés permettant de construire des services basés sur des contrats intelligents qui interagissent de manière fiable avec toute API externe.

Prenons les systèmes de prédictions et de paris décentralisés, qui connaissent un essor ces dernières années. Le projet Polymarket par exemple permet de parier sur l’issue d’événements politiques ou économiques. Leurs smart contracts utilisent un oracle décentralisé pour importer les résultats officiels et déterminer les gains.

Autre exemple, celui des assurances décentralisées. Des startups comme Etherisc proposent des assurances voyage dont les remboursements sont automatisés par smart contracts. Leurs oracles (fournis par Chainlink) connectent des données aériennes réelles comme les heures de départ et d’arrivée pour détecter des retards et déclencher les indemnisations de manière autonome.

Au-delà de ces applications financières, on peut citer le projet de supply chain Tradelens, développé en partenariat avec Maersk. Ils tracent des containers via des capteurs IoT et transmettent leur géolocalisation à la blockchain. De tels flux de données, certifiés par des oracles, permettent d’automatiser les déclarations de douanes et les paiements d’assurance à l’arrivée.

Morpho Blue est un protocole DeFi d’optimisation de rendements qui utilise des mécanismes de levier basés sur des collatéraux. Pour se protéger, Morpho intègre un oracle qui surveille en temps réel les prix des actifs donnés en garantie. En cas de trop fort mouvement baissier, l’oracle transmet une alerte aux smart contracts, qui peuvent alors liquider automatiquement les positions à risque avant l’apparition de pertes critiques.

Enfin, on peut également citer le cas de la blockchain VeChain qui vise à lutter contre la contrefaçon dans le marché du luxe, la santé etc. Des capteurs NFC connectés à la blockchain permettent de tracer l’authenticité de produits de marques de luxe. Si une contrefaçon est détectée, un oracle peut déclencher automatiquement le blocage de la commercialisation du produit frauduleux.

Le maillon faible ?

Cette technologie prometteuse offre indéniablement de nombreux avantages en permettant d’alimenter les smart contracts en données réelles, qu’elles proviennent d’API web, de flux IoT, d’interfaces avec des systèmes d’entreprise etc. Ils étendent ainsi le potentiel des blockchains au-delà d’un simple registre figé, en permettant de déclencher des actions automatisées en fonction d’événements extérieurs.

On l’a vu, cet apport ouvre la voie à quantité de cas d’usage innovants, aussi bien dans la finance décentralisée avec les assurances automatiques ou les plateformes de prédictions, que dans l’économie réelle en facilitant la traçabilité des chaînes logistiques. Les oracles renforcent également la transparence et la décentralisation en permettant un consensus sur des données du monde physique. 

Cependant, les projets qui utilisent des oracles doivent également s’assurer de la qualité des sources de données en amont pour garantir la fiabilité du pipeline. Par ailleurs, l’infrastructure a un coût, entre la rémunération des fournisseurs de données et des validateurs et les frais de transactions. Enfin, la sécurisation des oracles contre la fraude ou la manipulation demeure un enjeu crucial.

Il y a déjà eu des exemples de hacks exploitant des vulnérabilités liées à des utilisation d’oracles au sein d’écosystèmes blockchain :

  • En 2020, un hacker a réussi à dérober 8 millions de dollars en exploitant une faille dans l’oracle du protocole Inverse Finance. Il a réussi à soumettre de fausses données à l’oracle, déclenchant un appel de marge et un transfert de fonds vers son compte.
  • En 2021, le protocole de prêts BadgerDAO a subi un hack de 120 millions de dollars suite à la compromission de son oracle de prix Cloudflare. Les données de prix faussées ont permis aux hackers d’ obtenir et revendre des tokens à des prix gonflés.