Oracle
Un oracle peut être défini de plusieurs manières différentes, selon le contexte. Dans le contexte de la blockchain, un oracle est essentiellement une source de données utilisée comme pont entre les contrats intelligents et d'autres sources externes.
Plus précisément, un oracle est un agent qui non seulement communique avec des sources de données externes, mais vérifie et authentifie également que les données fournies sont exactes. Ainsi, les oracles sont chargés de fournir des informations vitales et fiables aux contrats intelligents, qui à leur tour effectuent certaines tâches.
L'importance des oracles repose sur le fait que les contrats intelligents blockchain ne peuvent accéder qu'aux données contenues dans leur propre réseau numérique. Par conséquent, les oracles sont nécessaires en tant qu'instrument de communication qui «traduit» les événements du monde réel (données non déterministes) en valeurs numériques qui seront reconnues par des contrats intelligents (données déterministes).
Les oracles de la blockchain peuvent être classés en fonction de leur cas d'utilisation. Les types les plus courants sont :
Oracles matériels : s'intègre aux systèmes physiques et aux technologies, fournissant des données réelles pour les contrats intelligents. Par exemple, les oracles matériels peuvent communiquer avec des capteurs RFID utilisés dans diverses industries (automobile, pharmaceutique, chaîne d'approvisionnement, etc.)
Oracles logiciels : les plus couramment utilisés ; récupérer des données en ligne à partir de programmes externes et d'API Web, telles que les prix du marché, le statut des vols et les données météorologiques.
Oracles de consensus : sorte d'oracles décentralisés qui collectent de grandes quantités de données à partir d'un nombre défini d'autres oracles, 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 de prédiction, comme Augur et Gnosis.
Oracles entrants : transmettent des données externes à des contrats intelligents ou à des oracles logiciels. Peut être configuré comme un ensemble de directives "si" (par exemple "si un actif atteint un certain prix, passez un ordre d'achat").
Oracles sortants : transmettent les données des contrats intelligents à des systèmes externes, permettant aux contrats intelligents 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.
Le problème d'Oracle
En fonction des données fournies par les oracles centralisés, les contrats intelligents exécuteront différentes fonctions, ce qui signifie que les oracles ont un pouvoir immense sur les contrats intelligents. Ceci est connu sous le nom de problème Oracle, qui se présente comme un conflit de confiance que les oracles tiers centralisés apportent aux contrats intelligents et aux systèmes de blockchain sans confiance.
Bien que les oracles décentralisés, tels que les oracles de consensus, puissent présenter une solution possible, il reste encore de nombreux défis à surmonter, 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.