Les oracles sont des entités qui connectent les données du monde réel avec les systèmes décentralisés. Dans un écosystème décentralisé, les oracles sont fréquemment utilisés dans les applications et les produits basés sur les blockchains. Ils donnent aux blockchains la capacité d'interagir avec des données hors-chaîne (off-chain).
En plus de communiquer avec des sources de données externes, un oracle vérifie et authentifie également que les données fournies sont exactes. Les oracles sont chargés de fournir des informations vitales et fiables aux smart contracts, qui à leur tour exécutent certaines tâches. Pour être le plus fiable possible, l'oracle va prendre ses informations auprès de plusieurs sources externes. De cette façon, l'oracle rendra les informations les plus précises.
L'importance des oracles repose sur le fait que les smart contracts de la blockchain ne peuvent accéder qu'aux données contenues dans leur propre réseau numérique. Ils ne peuvent pas accéder aux données du monde physique. Les oracles sont donc nécessaires en tant qu'instruments de communication qui "traduisent" les événements du monde réel en valeurs numériques reconnues par les smart contracts.
Les données transmises peuvent être des flux de prix, des paiements, la température d'un capteur, les scores d'un match de football, etc. Les oracles sont généralement classés en fonction de l'endroit où ils puisent leurs données (logiciel/matériel), du flux d'informations entre eux et leurs sources (entrant/sortant) et de leur caractère décentralisé ou centralisé.
Les oracles de blockchain peuvent être classés en fonction de leur utilisation. Les formes les plus répandues sont :
Les oracles matériels : s'intègrent aux systèmes et technologies physiques, fournissant des données du monde réel pour les smart contracts. Par exemple, les oracles matériels peuvent communiquer avec des capteurs RFID (Radio Frequency Identification) pour récupérer des données comme la température, la position, l'état d'un objet ou encore la vitesse d'un véhicule, par exemple.
Les oracles logiciels : les plus couramment utilisés, ils récupèrent des données en ligne à partir de programmes externes et d'API Web, comme les prix du marché, l'état des vols et les données météorologiques.
Les oracles de consensus : sorte d'oracles décentralisés qui collectent de grandes quantités de données auprès d'un nombre déterminé d'autres oracles, en suivant des méthodes spécifiques pour déterminer la validité et l'exactitude des données collectées. Les oracles de consensus sont utilisés dans les plateformes de marchés prédictifs, comme Augur et Gnosis. Notons, que s'il existe des oracles de consensus qui peuvent être utilisés dans les plateformes de marchés prédictifs, cependant, cela n'est pas la méthode standard pour ce type d'application.
Oracles entrants : transmettent des données externes aux smart contracts ou aux oracles logiciels. Ils peuvent être configurés comme un ensemble de directives conditionnées "si" (par exemple, "si un actif atteint un certain prix, placer un ordre d'achat").
Oracles sortants : transmettent les données des smart contracts à des systèmes externes, ce qui permet aux smart contracts de communiquer avec des sources non-blockchain.
En général, un oracle blockchain consiste en une source de données tierce qui dépend d'une autorisation externe pour fonctionner correctement, ce qui signifie qu'il s'agit généralement d'un outil fourni par des entités centralisées. Par conséquent, la plupart des oracles finissent par sacrifier les propriétés décentralisées des contrats intelligents.
En fonction des données fournies par les oracles centralisés, les smart contracts exécuteront différentes fonctions, ce qui signifie que les oracles ont un pouvoir immense sur les smart contracts. C'est ce que l'on appelle le problème de l'Oracle, qui se présente comme un conflit de confiance que les oracles tiers centralisés apportent aux smart contracts et aux systèmes blockchain sans confiance.
Bien que les oracles décentralisés, tels que les oracles de consensus, puissent présenter une solution possible, il reste de nombreux défis à relever, car les réseaux d'oracles décentralisés sont assez difficiles à mettre en Ŝuvre de manière sécurisée, fonctionnelle et sans confiance.
La plupart des partisans de la cryptographie considèrent Chainlink (LINK) et Band Protocol (BAND) comme des exemples typiques de réseaux d'oracles décentralisés.
Il existe d'autres oracles, moins connus, tels que iExec RLC (RLC), Nest Protocol (NEST), UMA ou encore API3.
Bien que de multiples contrats et systèmes décentralisés puissent faire référence à un oracle, il existe des oracles spécifiques aux contrats construits pour servir un seul contrat intelligent. Il convient de noter que les personnes possédant des connaissances uniques en la matière peuvent récupérer, vérifier et valider des données destinées à être utilisées par les accords basés sur la blockchain. Ces personnes sont communément appelées des "oracles humains".