Qu'est-ce qu'un oracle ?
Une blockchain ne peut pas communiquer avec l'extérieur par elle-même. Les oracles rendent cela possible et tu vas découvrir comment.

Luca
10 minutes de lecture
·
(modifié le )

À venir dans cette leçon
Information sur cette leçon
Tu es sur le point de lire la leçon n° 6 du niveau
intermédiaire.
Avant de poursuivre, je recommande d'avoir lu :
Si tu es déjà à l'aise avec ces notions, c'est parfait.
Bonne lecture !
Les oracles.
Loin de contrôler le temps ou les saisons, dans le contexte du web3, les oracles jouent tout de même un rôle central.
Cette nouvelle leçon t'enseignera :
- ce qu'est un oracle
- les différentes classifications d'oracles
- comment et pour quelles raisons les oracles sont utilisés.
On commence de suite !
Définition #
Souviens-toi : une blockchain n'accède pas nativement aux données présentes sur internet.
Cela veut dire qu'elle a besoin d'un intermédiaire pour recevoir ou envoyer des données provenant de l'extérieur. Cet intermédiaire, tu l'auras deviné, c'est l'oracle.
Un oracle permet à une blockchain (ou un smart contract sur celle-ci) de :
- recevoir des données provenant de sources externes
- transmettre des données à des systèmes externes
- pré-traiter des informations
- et bien plus encore.
Un oracle est donc une sorte de pont entre la blockchain, qui est isolée d'internet, et tout ce que l'on peut trouver sur le web.
Tu as là la définition générale d'un oracle. Sache qu'il en existe de différentes sortes, chacune adaptée à différents cas d'usage bien particuliers.
Quels cas d'usage ?
C'est justement ce que couvre la partie qui suit.
Utilisations #
Maintenant que tu as une idée de l'utilité des oracles, il est temps de découvrir comment ils sont utilisés dans la vraie vie.
Cette section te présentera trois exemples majeurs de l'utilisation des oracles dans l'écosystème crypto, mais pas que.
1. La DeFi #
En tout premier, tu as forcément... la DeFi.
Je ne te présente plus ce concept car j'imagine qu'au niveau intermédiaire, tu es désormais plus que familier avec celui-ci. La DeFi fait grandement usage des oracles notamment pour :
- obtenir le prix ou le taux d'échange d'un actif
- calculer ou recalculer la valeur d'un collatéral à un instant donné
- transférer un actif d'une blockchain à une autre
- et bien plus encore.
Que ce soit pour créer des actifs synthétiques, minimiser les possibilités d'arbitrage, ou aider à maintenir le peg d'une crypto, l'utilisation des oracles en DeFi est plus qu'omniprésente.
2. La logistique #
Les initiatives comme Provenance ou StaTwig permettent d'obtenir une traçabilité inégalée d'une multitude d'actifs. Plus important encore, ce type de projet garantit que l'historique des produits ou actifs tracés est infalsifiable.
C'est très utile pour suivre de près l'état à un instant donné de denrées périssables, ou la provenance (et authenticité) de certains produits de luxe.
Les oracles sont ici principalement utilisés pour déclencher les actions qui vont permettre d'enregistrer les différents états des actifs lors de leur transit.
La blockchain enregistre de manière immuable l'information, et l'oracle indique quand cette sauvegarde intemporelle doit avoir lieu — en plus de vérifier le respect des conditions requises pré-sauvegarde.
3. Le gaming #
Enfin, le gaming. Ou plus précisément, la GameFi.
Avec l'émergence du web3, de plus en plus de Play-to-earn ont fait leur apparition. Dans ce type de jeu, ce qui attire le plus les joueurs, ce sont les récompenses.
Celles-ci se doivent d'être réparties équitablement quand il le faut mais également de manière aléatoire le cas échéant.
Pour rendre cela possible, les oracles sont évidemment les outils privilégiés.
Ils aident principalement à ajouter un élément d'aléatoire non biaisé à tout événement du jeu qui requiert une composante de chance.
Tu peux consulter davantage de cas d'usage des oracles dans le domaine du gaming sur le site de Chainlink (en anglais).
Pour rappel, ces trois exemples ne sont que cela : des exemples.
Ils ne représentent donc pas l'intégralité des cas d'usage permis par les oracles — car en pratique, ils sont infinis.
Tu disposes toutefois d'une bonne image mentale du champ des possibles que les oracles offrent.
Les différents types d'oracles #
Tu sais désormais à quelles fins sont utilisés les oracles.
Dans cette partie — un peu plus technique —, tu découvriras les différents types d'oracles qui existent et la raison de leur existence.
Par mode de transmission de données #
a) Les oracles inbound
Inbound se réfère à la direction de transmission des données.
Dans ce cas, cela signifie qu'un oracle permet l'envoi de données à la blockchain. Il rend possible le transfert on-chain de données qui sont initialement off-chain (hors de la blockchain).
Ce type d'oracle est le plus couramment utilisé.
Notamment par de nombreux smart contracts qui nécessitent des données externes pour exécuter et remplir leurs fonctions au sein de la blockchain où ils sont déployés.
Note : Ce type d'oracle peut aussi être nommé "oracle input".
b) Les oracles outbound
Ce type d'oracle fonctionne de manière inverse au précédent.
Avec un oracle outbound, les données présentes sur la blockchain sont transmises à des entités en-dehors de celle-ci (off-chain).
Ce type d'oracle est toutefois plus rare.
Le besoin de requêter des données du monde externe pour les rapatrier dans la blockchain (l'inbound) étant plus commun que celui d'en envoyer depuis cette dernière (l'outbound).
Note : Ce type d'oracle peut aussi être nommé "oracle output".
c) Les oracles cross-chain
Un oracle cross-chain permet de lire ou écrire des données entre plusieurs blockchains.
C'est avec ce type d'oracle qu'il est possible de déclencher une action sur une blockchain A à la suite d'une action réalisée sur une blockchain B.
Ils sont aussi très utiles pour déplacer des actifs d'une blockchain à une autre (en d'autres termes, pour "bridger" des cryptos).
Par source d'acquisition de données #
a) Les oracles logiciels
Ce type d'oracle est un des plus courants.
Ils sont dits comme étant "logiciels" dû à leur façon d'acquérir des données. Elles sont généralement collectées depuis le web ou par des APIs fournies par diverses sociétés.
Dans certains cas, ces oracles accèdent même directement à des bases de données dans lesquelles ils collectent les informations nécessaires aux blockchains les utilisant.
b) Les oracles matériels
Avec ce type d'oracle, les données proviennent de sources physiques.
Ces dernières peuvent être des capteurs, des équipements électroménagers, des objets connectés ou tout autre appareil IoT.
Les oracles matériels sont souvent utilisés pour automatiser les processus de vérification de la qualité, lutter contre la contrefaçon, ou encore, pour simplement réaliser des paiements.
Extra : Il existe également des "oracles humains" où une vraie personne vérifie ou soumet manuellement des données à un smart contract pour qu'ensuite celles-ci soient utilisées par la blockchain.
Par nature #
a) Les oracles centralisés
Ce sont les plus rapides et les plus économiques.
Les oracles centralisés sont généralement utilisés dans les cas où la sécurité n'est pas une priorité et où la rapidité prime sur le reste.
La plupart des exchanges centralisés ont créé leurs propres oracles de ce genre. Tu as par exemple l'oracle de Binance qui permet de récupérer en temps réel les prix de différentes cryptomonnaies.
Coinbase et Kraken ont également des oracles qui offrent les mêmes possibilités.
Un point de vigilance tout particulier est à retenir sur ce type d'oracle : la dépendance qu'ils créent sur les systèmes les utilisant.
J'explique davantage les conséquences que cela a dans la section sur les risques liés à l'utilisation des oracles.
b) Les oracles décentralisés
Pour pallier aux faiblesses des oracles centralisés, les oracles décentralisés ont naturellement vu le jour.
Parmi les projets de ce type les plus connus, tu retrouves Chainlink , Augur et MakerDAO (l'organisation derrière le stablecoin DAI).
Ce type d'oracle vise à adresser les contraintes inhérentes aux oracles centralisés, ce qui inclut :
- le risque de manipulation des données
- la justesse des informations
- le manque de décentralisation.
Avec le temps, le nombre d'acteurs dans la course aux oracles décentralisés s'est multiplié.
Band Protocol et API3 font désormais partie des noms importants de l'industrie (au même titre que Chainlink qui en est le leader incontesté), et dans le même temps, plus de dix autres initiatives ont vu le jour.
Consulte cette page de Alchemy.com pour obtenir un aperçu des projets d'oracles décentralisés les plus importants du moment.
Note : Un oracle décentralisé est généralement également un oracle inbound.
Risques (ou le problème de l'oracle) #
Lorsque je t'expliquais ce qu'était un oracle centralisé, je t'avais demandé de retenir une chose : que ce type d'oracle créait une dépendance sur les systèmes (les blockchains) qui l'utilisent.
C'est dans cette partie que tu en apprendras davantage sur ce point.
Il est d'ailleurs considéré comme étant tellement préoccupant que l'industrie lui a donné un nom : le problème de l'oracle.
En quoi consiste-t-il ?
Principalement dans le fait que la confiance est centralisée en une seule et même entité. Et que l'inclusion d'un composant centralisé au sein d'une blockchain (qui par nature est décentralisée) recouvre de nombreux dangers.
En voici quelques exemples.
1. Les dysfonctionnements en cascade #
Un oracle injoignable peut causer le dysfonctionnement — voire l'arrêt — des services qui dépendent de lui.
Si l'oracle servant à vérifier le prix d'une certaine crypto n'est pas joignable pour un temps, cela peut entraîner un arrêt du service gérant les swaps pour celle-ci.
Ce n'est qu'un exemple parmi tant d'autres.
Ce type de problème peut survenir à tout moment et impacter tout type de service (assurance, bancaire, logistique, ect). La quantité réelle de répercussions possibles est donc bien plus importante que ce seul exemple.
2. La remontée de données incorrectes #
Un oracle remontant de fausses données peut compromettre tous les acteurs dépendants de celles-ci.
Si certains smart contracts sont programmés pour vendre ou acheter des actifs à un prix donné et que l'oracle remonte des prix incorrects, les ordres exécutés par les systèmes en amont se feront dans des conditions erronées.
Dans certaines situations, cela peut être désastreux.
Il peut en résulter des liquidations qui n'auraient pas dû avoir lieu, ou des ordres d'achats passés à un prix plus élevé qu'escompté.
3. La vulnérabilité aux hacks ou manipulations #
Un oracle étant un composant critique, s'il se fait piraté, c'est potentiellement l'ensemble des éléments qui dépendent de lui qui en pâtissent.
Modifier illigitimement un oracle chargé de maintenir le peg d'une crypto peut créer une brèche dans le mécanisme de pegging d'un stablecoin, menant potentiellement ce dernier à s'effondrer.
Ce n'est pas tout.
En plus des hacks, l'auteur d'un oracle peut tout bonnement décider de manipuler celui-ci pour certains services ou clients l'utilisant. Ce qui allonge la liste des dangers de ne dépendre que d'un seul oracle.
Info : Rien qu'en 2022, les attaques par manipulation d'oracles représentaient plus de 400 millions de dollars de fonds dérobés.
Tu l'auras compris, l'utilisation d'un oracle centralisé doit se faire en toute connaissance de cause.
Certes, ce type d'oracle est plus rapide et économique qu'un oracle décentralisé mais en fonction du cas d'usage, les inconvénients ne sont pas à prendre à la légère.
L'essentiel #
Cette leçon sur les oracles est désormais terminée !
Retiens que ce type de composant est :
- nécessaire aux blockchains pour requéter des données off-chain ;
- utilisé pour transmettre des cryptos entre plusieurs blockchains ;
- parfois matériel, parfois logiciel ;
- la cible privilégiée de manipulations et hacks (de part leur criticité) ;
- rend possible de nouveaux cas d'usage où la blockchain nécessite des interactions off-chain.
Tu as peut-être deviné le sujet de la prochaine leçon en apprenant la notion de cross-chain dans celle-ci.
Si non, je te spoil : ça sera les bridges !
↑