Un Zoom sur les différents types d'oracles en cryptos
11 octobre 2024

Les oracles décentralisés sont les pierres angulaires de l'écosystèmes des cryptomonnaies, permettant de connecter les blockchains au monde réel et de fournir des informations fiables à l'ensemble d'entre elles. Néanmoins, il existe une large variété d'oracles décentralisés. Dans cette analyse, découvrons ensemble leurs différences et leur fonctionnement.
Les informations essentielles
- Utilité des Oracles : Les oracles permettent aux blockchains d'accéder à des données externes, essentielles pour l'exécution de contrats intelligents, en agissant comme des intermédiaires fiables et sécurisés entre le monde on-chain et off-chain.
- Classification des Oracles : Les oracles se divisent selon leur structure de système, leur méthode de sourcing, leur sens d’utilisation et leur manière de vérifier la fiabilité des données.
- Trilemme des Oracles : Les oracles doivent trouver un équilibre entre la disponibilité, la fiabilité et compatibilité incitative des données.
- Quid de la décentralisation ? Les oracles peuvent être centralisés ou décentralisés, chaque type ayant ses propres avantages et inconvénients en termes de rapidité, sécurité et fiabilité des données.
Introduction et Contexte sur les Oracles
Par leurs natures, les blockchains sont des systèmes fermés et déterministes, incapables de se connecter directement au monde extérieur. Néanmoins, afin de correctement exécuter des smart contracts en fonction de conditions réelles, il est nécessaire d’intégrer des informations provenant de l’extérieur de la blockchain, telles que les prix des actifs financiers en temps réel ou les données météorologiques.
C'est ici qu'interviennent les oracles. Cette technologie agit comme un intermédiaire entre la blockchain et le monde extérieur, en collectant des données et en les transmettant à la blockchain de manière sécurisée et fiable.
À titre d’exemple, imaginons que deux amis souhaitent parier sur le résultat d’un match de football en utilisant un smart contract pour automatiser leur pari. Comme celui-ci ne peut pas automatiquement accéder aux résultats du match, il est nécessaire d’utiliser un oracle qui récupérera cette information auprès de plusieurs sites de sport et la communiquera au smart contract, permettant ainsi de déterminer le gagnant et de transférer les fonds en conséquence.
Bien qu’ils soient dits “intelligents”, les smart contracts ont uniquement la capacité d’exécuter des opérations si des conditions initiales sont remplies. Ainsi, ils sont limités à ce qu’il se passe au sein de la blockchain. Pour cette raison, les oracles brisent les barrières des blockchains en permettant aux smart contract d’accéder aux données extérieures, de manière fiable et sécurisée, tout en maintenant leur nature déterministe.
Les oracles dédiés à la blockchain ont vu le jour dès 2012, très tôt dans l’histoire de l’écosystème. Depuis lors, ces protocoles se sont multipliés, tout comme les technologies utilisées pour les faire fonctionner. Dans cet article, nous allons explorer les différentes classifications d’oracles décentralisés, de la structure utilisée jusqu’à la méthode de récupération des données en passant par leur cas d’usages directs.
Classification des oracles par structure du système
Les oracles peuvent être classifiés en fonction de la structure du système qu'ils utilisent pour collecter et transmettre les données. À l’heure actuelle du développement de cette technologie, il existe trois principales structures qui se distinguent : Immediate-Read, Publish-Subscribe et Request-Response.
Immediate-Read
Les oracles à lecture instantanée, ou Immediate-Read, fournissent des données essentielles pour prendre des décisions immédiates. Ils répondent à des requêtes spécifiques en temps réel, c’est-à-dire au moment exact où l’information est nécessaire.
Pour reprendre l’exemple concret présenté dans l’introduction, à savoir celui du pari sportif sur un match de football entre deux amis, géré par un smart contract. Dans ce cas, un oracle décentralisé de type “Immediate-Read” est particulièrement adapté.
En effet, l’oracle n’a pas besoin de se connecter constamment au site de résultats sportifs et d’actualiser l’information en continue. Il suffit qu’il récupère le résultat du match à l’issue de celui-ci, une seule et unique fois. Lorsque cela est fait, le smart contract peut déterminer le gagnant et distribuer les fonds en conséquence.

Publish-subscribe
Le modèle Publish-Subscribe est une structure où l'oracle agit comme un canal de diffusion pour des informations susceptibles de changer régulièrement ou sporadiquement. Dans ce système, les données sont transmises au smart contract de manière continue ou à des intervalles réguliers, souvent via un agent off-chain qui surveille les mises à jour de l'oracle.
Reprenons une nouvelle fois l’exemple des deux amis souhaitant réaliser des paris sportifs sur le football en utilisant un smart contract pour l’automatiser. Imaginons qu’ils souhaitent désormais parier sur le nombre de buts marqués par chaque équipe au cours d’une saison, alors ils auront besoin de mises à jour régulières sur les scores des matchs tout au long de la saison.
Ainsi, un oracle de type “Publish-Subscribe” fournirait ces données mises à jour en continu, permettant au smart contract de suivre les performances des équipes et de gérer les paris en conséquence.
Ce type d'oracle est également très utilisé dans la Finance Décentralisée (DeFi), où les prix des actifs numériques doivent être constamment actualisés. Par exemple, pour déterminer la valeur d'une cryptomonnaie lors des échanges ou des liquidations, ce sont les oracles “Publish-Subscribe” qui fournissent des données de prix en temps réel aux smart contracts.

Request-Response
Le modèle Request-Response est semblable à une architecture de type client-serveur, où une demande est envoyée par le client (smart contract) et traitée par le serveur (oracle). Les données sont souvent conservées dans une infrastructure externe en raison de leur volume ou de leur complexité, et sont transmises au smart contract à la demande.
Dans ce modèle, imaginons que nos amis souhaitent parier sur le nombre total de buts marqués par les équipes au cours des 10 dernières années. Un oracle “Request-Response” serait utilisé pour interroger des bases de données externes qui conservent des archives des performances sportives. Lorsque le smart contract envoie une requête pour cette information, l'oracle récupère les données pertinentes et les transmet au smart contract.
Ce modèle est particulièrement utile lorsque les données nécessaires sont trop volumineuses ou complexes pour être stockées directement sur la blockchain. Par exemple, des applications nécessitant des informations historiques détaillées, des analyses de marché complexes ou des ensembles de données provenant de multiples sources peuvent tirer parti des oracles “Request-Response”.

Classification des oracles selon le sens d’utilisation
Cela a été expliqué plusieurs fois depuis le début de cet article, les oracles blockchain servent à communiquer des données entre la blockchain et le monde extérieur. Toutefois, selon le sens de cette circulation, il est possible de distinguer deux principales catégories en fonction du sens dans lequel circulent les données : “inbound” pour les données entrantes et “outbound” pour les données sortantes de la blockchain.
Oracles Inbound
Les oracles “Inbound”, ou oracles entrants, sont les plus courants dans l'écosystème des blockchains. Ils introduisent des données provenant de sources externes dans la blockchain. Ces données peuvent inclure des informations financières, des résultats sportifs, des prévisions météorologiques, des prix d’actifs ou bien d'autres encore. Les oracles “Inbound” sont ceux dont nous avons parlé principalement depuis le début de cet article.
Oracles Outbound
Les oracles “Outbound”, ou oracles sortants, fonctionnent dans la direction opposée. Ils prennent des informations de la blockchain et les transmettent à des systèmes externes. Bien que moins courants que les oracles “Inbound”, ils jouent un rôle crucial dans certaines applications.
Par exemple, si vous souhaitez connecter un écran de votre domicile à votre portefeuille en cryptomonnaies de sorte d’y afficher constamment votre montant de gain journalier, le prix d’une cryptomonnaie ou même des alertes sur les franchissements de niveaux de prix, il est important de récupérer les données à l’intérieur de la blockchain. Pour ce faire, ce sont les oracles “Outbound” qui sont utilisés.

Classification des Oracles par méthode de sourcing
Une autre méthode de classification des oracles blockchain est le sourcing des données qu’ils utilisent. En effet, il existe plusieurs manières de récupérer les informations avant de les transmettre à la blockchain et aux smart contracts qui souhaitent les utiliser.
Oracles Software
Les oracles “Software” sont les plus courants et utilisent des sources de données en ligne pour fournir des informations à la blockchain. Ces sources peuvent inclure des API Web, des bases de données en ligne, des sites d'actualités et bien plus encore. Ce genre d’oracles est particulièrement utile pour obtenir des informations actualisées et dynamiques telles que les prix des cryptomonnaies, les taux de change, les résultats sportifs ou les prévisions météorologiques.
Par exemple, un oracle “Software” pourrait se connecter à une API d’une plateforme de trading en ligne afin d’obtenir les prix actuels des actions ou des devises. Les données sont ensuite transmises à un smart contract qui peut exécuter des actions basées sur ces informations. L’avantage principal des oracles “Software” est leur capacité à accéder à une vaste quantité de données en temps réel. Cependant, leur dépendance à des sources de données en ligne les rend vulnérables aux pannes de service, aux manipulations de données et aux attaques informatiques.
Oracles Hardware
Les oracles “Hardware” sont beaucoup moins fréquents, puisqu’ils font appel à des dispositifs matériels tels que des capteurs électroniques afin de récupérer des informations du monde réel. Ces données sont ensuite converties en valeurs numériques, rendant ainsi possible leur lecture et utilisation par des smart contracts.
À titre d’exemple, si un fournisseur d’électricité souhaite suivre la consommation de ses clients via des smart contracts permettant d’optimiser les paiements, alors il utilisera des oracles “Hardware” connectés aux compteur électrique de leurs clients.
Ces oracles matériels sont essentiels dans diverses applications telles que la gestion des chaînes d'approvisionnement, la localisation pour les services de livraison ou encore la collecte de données météorologiques. L’avantage est qu’ils sont particulièrement robustes et résistants, puisqu’il est bien plus compliqué de corrompre ou modifier les données d’une pièce de hardware qu’une donnée numérique.
Classification des Oracles par vérification des données
Pour terminer, la dernière classification des oracles est la méthode utilisée afin de garantir l'exactitude et la fiabilité des données. Les deux principales manières de différencier les oracles selon ce critère sont les suivantes : utilisation d’un consensus ou confiance envers un acteur réputé.
Oracles de Consensus
Les oracles de consensus utilisent plusieurs sources de données et emploient des mécanismes de consensus pour agréger et valider les informations avant de les transmettre à la blockchain. L’idée est qu’en faisant appel à un grand nombre de sources, l’on réduit les risques de manipulation d’une d’entre elles et l’on améliore la fiabilité et la précision des données.
Par exemple, un oracle de consensus pour le prix des cryptomonnaies pourrait collecter des données de plusieurs plateformes d’échange différentes et utiliser un algorithme de consensus pour déterminer le prix médian ou moyen.
Les oracles de consensus sont particulièrement utiles pour des applications où l'exactitude des données est cruciale, comme dans les marchés financiers ou les systèmes de vote en ligne. Toutefois, cette méthode est souvent considérée comme plus chère et plus complexe à mettre en place, puisqu’elle nécessite une coordination entre plusieurs sources de données et des protocoles sophistiqués pour atteindre le consensus.

Oracles de Confiance
Les oracles de confiance reposent sur des entités réputées et fiables pour fournir des données à la blockchain. De manière générale, ces entités sont des institutions financières, des organismes gouvernementaux ou des experts reconnus dans un domaine spécifique. L'utilisation d'oracles de confiance peut offrir une assurance supplémentaire quant à la qualité et à l'exactitude des données.
Par exemple, un oracle de confiance pourrait être une agence de notation financière fournissant des notes de confiance à des utilisateurs pour des smart contracts liés à des applications de prêts ou d’emprunts. La fiabilité de ces données repose sur la réputation et l'expertise de l'agence.
Cependant, les oracles de confiance introduisent un élément de centralisation, ce qui va à l'encontre des principes de décentralisation de l’écosystème. De plus, ils restent vulnérables aux erreurs humaines, aux manipulations et aux conflits d'intérêts.

Quid de la décentralisation des oracles ?
Voilà un sujet qui revient systématiquement lorsque l’on évoque une technologie en rapport avec les blockchains : qu’en est-il de la décentralisation ? Évidemment, c’est un principe fondamental de l’écosystème, dont l’ambition est de réduire la dépendance à des entités centralisées, d’éliminer les points de défaillance uniques et de garantir la transparence, la sécurité et la résilience des systèmes.
Néanmoins, les protocoles d’oracles servent des applications aux cas d’usages tellement variés qu’il est difficile de trouver une formule unique. C’est ce que nous appelons le “trilemme des oracles”, que nous vous présenterons dans la partie suivante.
Le Trilemme des Oracles
Si vous lisez cet article, vous êtes probablement déjà familiers avec le sujet du trilemme de la blockchain : il est impossible d’avoir à la fois un haut niveau de décentralisation, de sécurité et de scalabilité. Pour les oracles, on retrouve une problématique assez similaire, que nous appelons trilemme des oracles :
- Précision des données : Un oracle doit s'assurer que les informations fournies soient fiables et n'aient pas été altérées, pour que les smart contracts ne fassent pas d'erreurs basées sur de fausses données. L'oracle doit s'assurer que les informations viennent de la bonne source et qu'elles n'ont pas été changées avant d'être utilisées.
- Disponibilité : Un oracle doit toujours être prêt à fournir des informations aux smart contracts pour qu'ils puissent faire leur travail sans interruption. Il ne doit pas y avoir de délais ou d'obstacles qui empêchent les smart contracts de prendre des décisions ou d'agir. Les informations doivent être là quand on en a besoin, en permanence.
- Compatibilité incitative : La compatibilité incitative implique l'attribuabilité et la responsabilité. L'attribuabilité permet de corréler une information externe à son fournisseur, tandis que la responsabilité lie les fournisseurs de données aux informations qu'ils donnent, de sorte qu'ils puissent être récompensés ou pénalisés en fonction de la qualité des informations fournies.
Ce trilemme peut également s'étendre au degré de décentralisation, au coût de l’oracle, à la diversité des fournisseurs et à d'autres critères que chacun pourrait juger comme plus ou moins importants, illustrant ainsi les compromis que les oracles pourraient être amenés à faire dans leurs choix de conception.
Finalement, pour répondre à cette problématique et à l’image de nombreux autres domaines de l’écosystème, les protocoles d’oracles blockchain se séparent en deux catégories : les oracles centralisés et les oracles décentralisés.
Oracles Centralisés
Les oracles centralisés sont gérés par une seule entité ou organisation, qui est responsable de la collecte et de la fourniture des données. Ce modèle est souvent plus rapide et plus facile à mettre en place, car il n'implique pas de coordination entre plusieurs parties. Néanmoins, les oracles centralisés présentent des risques de sécurité et de confiance, puisqu’ils dépendent d’une unique entité.
Observons de quelles manières est-ce qu’ils répondent au trilemme des oracles :
- Précision des données
Pour : Un oracle centralisé peut garantir une meilleure précision des données car il peut directement contrôler et valider la source mais aussi l'intégrité des données avant de les transmettre au smart contract. Puisqu’il est l’unique preneur de décisions, il ne peut y avoir de désaccord au niveau des fournisseurs de données.
Contre : Si l'oracle centralisé est compromis ou malveillant, il peut délibérément fournir des données inexactes, et étant la seule source de données, il n'y a pas de mécanisme de vérification ou de correction. Ainsi, l’oracle représente l’unique point de défaillance de par sa nature centralisée.
- Disponibilité
Pour : La gestion centralisée des ressources peut garantir une haute disponibilité et un temps de réponse rapide pour les smart contracts.
Contre : Étant un point unique de défaillance, si un oracle centralisé rencontre un problème technique ou est attaqué, la disponibilité des données peut être interrompue.
- Compatibilité incitative
Contre : Les oracles centralisés présentent souvent des mécanismes d'incitation mal conçus, voire inexistants, afin de garantir que le fournisseur de données transmette des informations fiables et non modifiées. L'un des points de vigilance majeurs est la renommée du fournisseur de données. Bien que les projets préfèrent adopter un oracle décentralisé, la réputation de l’acteur centralisé peut souvent jouer en sa faveur. Une fois cette réputation rompue, l’oracle peut perdre des clients du jour au lendemain.
Oracles Décentralisés
En réponse aux limitations des oracles centralisés, les oracles décentralisés ont été développés pour améliorer la sécurité et la fiabilité des données. Contrairement à leurs homologues centralisés, les oracles décentralisés sont des systèmes puisant leurs données chez plusieurs sources différentes qui ne communiquent pas entre elles. Afin de consolider toutes ces informations, un consensus est mis en œuvre par l’oracle pour transmettre une donnée unifiée au protocole avec lequel il interagit.
Examinons comment ils répondent au trilemme des oracles :
- Précision des données :
Pour : Avec plusieurs sources de données, un oracle décentralisé peut agréger l’information, obtenir un prix médian entre tous les fournisseurs de données et transmettre la donnée valide. Les acteurs tentant de corrompre le réseau avec de fausses informations sont financièrement sanctionnés, réduisant ainsi le risque d’attaque. De plus, corrompre une multitude de sources s'avère plus compliqué qu’une unique source centralisée.
Contre : La diversité des sources peut conduire à des désaccords et de l'incertitude concernant la précision des données. Cela explique l'importance d'établir un consensus efficace tout en diversifiant les sources afin d'assurer le bon fonctionnement de l’oracle décentralisé.
- Disponibilité :
Pour : La nature distribuée des oracles décentralisés accroît la résilience et minimise le risque de panne totale, car la défaillance d'un fournisseur n'affecte pas la disponibilité des autres.
Contre : La coordination entre les différents nœuds et fournisseurs d’information peut occasionner de la latence et altérer la disponibilité des réponses
- Compatibilité incitative :
Pour : La diversité des participants peut conduire à une concurrence saine et à renforcer les incitations à fournir des données plus précises et plus fiables.
Compte tenu des enjeux et des préoccupations relatives à la gestion du risque de confiance, de nombreuses applications de finance décentralisée (DeFi) privilégient les oracles décentralisés au détriment de ceux centralisés pour transmettre des données sur la blockchain.
Le débat demeure néanmoins sur le degré réel de décentralisation des oracles. Selon les standards de l’industrie et les perspectives individuelles, un oracle peut être considéré comme tel ou non. Ainsi, comme avec les blockchains, nous parlerons plutôt de degrés de décentralisation, qui varient selon de nombreux paramètres.
Conclusion
Nous l’avons compris tout au long de cet article, les oracles jouent un rôle crucial dans l'écosystème de la blockchain en servant de passerelles entre le monde “on-chain” et “off-chain”. En apportant des données externes aux smart contracts, ils permettent la création d'applications décentralisées plus sophistiquées et avancées.
Au fil des années, le domaine des oracles s’est diversifiée et de nombreuses technologies ont vu le jour. Nous en avons proposé une classification, selon leur structure de système, leur sens de circulation de données, leur type et leur méthode de sourcing, et bien d’autres encore.
Néanmoins, l’un des éléments de débats principaux est la question de le trilemme des oracles. La réponse se situe dans un équilibre difficile entre la décentralisation mais également la disponibilité, la fiabilité et compatibilité incitative des données.
Les oracles décentralisés se rapprochent des idéaux de la blockchain en éliminant les points de défaillance uniques et en offrant une plus grande résilience. En revanche, les oracles centralisés, bien que plus rapides et souvent plus simples à mettre en œuvre, posent des risques significatifs de manipulation et de pannes.