Que sont les oracles blockchain et comment fonctionnent-ils ?
Notions de base
Les oracles blockchain servent d'intermédiaires entre les blockchains et le monde extérieur en fournissant aux contrats intelligents des informations externes auxquelles ils n'ont pas accès par eux-mêmes. Cette fonction est essentielle pour de nombreux accords contractuels qui nécessitent des données hors chaîne pour s'exécuter.
Les oracles jouent un rôle vital dans l'écosystème blockchain car ils étendent le champ d'action des contrats intelligents au-delà de leur réseau. Sans oracles, les contrats intelligents auraient une fonctionnalité limitée et pourraient uniquement accéder aux données présentes dans leur réseau.
Il est important de noter que les oracles blockchain ne sont pas des sources de données à proprement parler, mais plutôt des couches qui authentifient, vérifient et interrogent des sources de données externes avant de relayer l'information. Les données transmises par les oracles peuvent prendre diverses formes, telles que des prix, la confirmation d'un paiement ou des mesures issues de capteurs.
Pour récupérer des données hors chaîne, le contrat intelligent doit être invoqué et des ressources réseau doivent être utilisées. Certains oracles sont capables non seulement de transmettre des informations aux contrats intelligents, mais aussi d'envoyer des données vers des sources externes.
Exemples d'oracles blockchain
Supposons qu'Emily et David parient sur le gagnant de l'élection présidentielle américaine. Emily pense que le candidat républicain gagnera, tandis que David pense que ce sera le candidat démocrate. Ils s'accordent sur les termes du pari et verrouillent leurs fonds dans un contrat intelligent, qui libérera l'intégralité des fonds au gagnant en fonction des résultats de l'élection.
Étant donné que le contrat intelligent ne peut pas interagir avec des données externes, il doit dépendre d'un oracle pour lui fournir l'information nécessaire – dans ce cas, les résultats de l'élection présidentielle. Après l'élection, l'oracle interroge une API de confiance pour savoir quel candidat a remporté l'élection et relaie cette information au contrat intelligent. Le contrat envoie alors les fonds à Emily ou à David, selon l'issue.
Sans l'oracle reliant les données, il n'aurait pas été possible de régler ce pari de manière non manipulable par l'un des participants.
Quels types d'oracles blockchain existent ?
Les oracles blockchain se classent selon différentes caractéristiques. Un même oracle peut appartenir à plusieurs catégories. Par exemple, un oracle qui récupère des données depuis le site web d'une entreprise est un oracle logiciel centralisé et entrant.
Source : les données proviennent-elles d'un logiciel ou d'un matériel ?
- Les oracles logiciels sont un type essentiel d'oracle blockchain qui récupère des données de sources en ligne et les transmet à la blockchain. Ils peuvent obtenir des informations depuis une grande variété de sources sur Internet, comme des bases de données, des sites web et des serveurs. Étant connectés à Internet, les oracles logiciels peuvent transmettre des informations en temps réel, ce qui en fait un choix courant pour les contrats intelligents. Ils peuvent fournir des données telles que les taux de change, les prix des actifs numériques ou les informations de vol en temps réel.
- Les oracles matériels sont utilisés pour obtenir des informations depuis des dispositifs physiques et les transmettre à la blockchain, permettant aux contrats intelligents de se connecter au monde réel. Ces oracles interprètent des événements réels à l'aide de capteurs, lecteurs de codes-barres et autres dispositifs de lecture, puis convertissent ces données en valeurs numériques compréhensibles par les contrats intelligents. Par exemple, un oracle matériel peut détecter si un camion transportant des marchandises est arrivé à un quai de chargement et communiquer cette information à un contrat intelligent. Sur cette base, le contrat peut alors agir en conséquence.
Direction : l'information est-elle entrante ou sortante ?
Les oracles peuvent être classés comme entrants ou sortants, selon la direction du flux d'information.
- Les oracles entrants transmettent des informations de sources externes vers les contrats intelligents.
- Les oracles sortants envoient des informations des contrats intelligents vers le monde extérieur.
Un capteur mesurant la température et relayant les données à un contrat intelligent est un exemple d'oracle entrant. En revanche, un oracle sortant peut être illustré par une serrure intelligente qui se déverrouille lorsqu'un dépôt est effectué à une adresse : le contrat intelligent envoie cette information via un oracle sortant au mécanisme qui ouvre la serrure.
Confiance : est-elle centralisée ou décentralisée ?
- Les oracles centralisés sont contrôlés par une seule entité et peuvent présenter des risques en raison d'un point de défaillance unique. Une interférence malveillante de la part d'acteurs malintentionnés peut affecter le contrat intelligent, et l'efficacité du contrat dépend entièrement de l'entité contrôlante.
- Les oracles décentralisés cherchent à éviter le risque de contrepartie en ne s'appuyant pas sur une source unique de vérité. Ils utilisent plusieurs oracles pour augmenter la fiabilité des informations et peuvent être appelés oracles par consensus. Certains projets blockchain fournissent des services d'oracles décentralisés à d'autres blockchains, utiles dans les marchés de prédiction où un consensus social peut vérifier la validité des résultats.
Bien que les oracles décentralisés visent à atteindre l'absence de confiance, ils n'éliminent pas la confiance mais la répartissent entre de nombreux participants, de manière similaire aux réseaux blockchain dits « trustless ».
Autres types d'oracles
- Oracles spécifiques au contrat
- Un oracle spécifique au contrat est conçu pour être utilisé par un seul contrat intelligent. Cela peut entraîner la nécessité de développer plusieurs oracles lors du déploiement de multiples contrats intelligents. Si cette approche offre une flexibilité pour des cas d'usage sur mesure, elle est aussi coûteuse et demande du temps en maintenance. Les entreprises qui nécessitent des données de diverses sources peuvent la trouver peu pratique.
- Oracles humains
- Des individus disposant d'une expertise spécialisée peuvent aussi agir en tant qu'oracles. Ils peuvent enquêter et valider la crédibilité d'informations issues de diverses sources et convertir ces données pour les contrats intelligents. Comme les oracles humains peuvent utiliser la cryptographie pour vérifier leur identité, le risque qu'une personne frauduleuse se fasse passer pour un oracle et fournisse des données corrompues est relativement faible.
Un problème important à connaître concernant les oracles
Garantir l'exactitude des données utilisées par les contrats intelligents est un rôle essentiel joué par les oracles. Toutefois, l'intégrité d'un contrat intelligent est en péril si l'oracle est compromis. Les oracles ne font pas partie du consensus de la blockchain, ce qui les rend vulnérables aux attaques. Le conflit entre l'utilisation d'oracles tiers et l'exécution « trustless » des contrats intelligents est un problème complexe qui reste non résolu. Des acteurs malveillants peuvent également mener des attaques de type « homme du milieu », interceptant les données transmises entre les oracles et le contrat pour les altérer ou les falsifier.
Conclusion
Pour que les blockchains atteignent une adoption plus large, il faut une méthode fiable permettant aux contrats intelligents d'interagir avec des informations externes. C'est là qu'interviennent les oracles blockchain, qui permettent une communication sécurisée entre la blockchain et des sources de données externes. Sans oracles, les contrats intelligents seraient limités à l'utilisation d'informations internes, ce qui restreindrait fortement leurs capacités.
Les oracles décentralisés peuvent fournir des garde-fous importants pour réduire les risques dans l'écosystème blockchain. Leur mise en œuvre de manière sécurisée et fiable est essentielle pour la croissance continue de cet écosystème. Globalement, les oracles blockchain constituent un composant critique nécessaire à l'adoption et à l'utilisation plus larges de la technologie blockchain.