Soumission communautaire - Auteur : Vallery Mou


Qu'est-ce qu'un oracle blockchain ?

Les oracles de blockchain sont des services tiers qui fournissent des contrats intelligents avec des informations externes. Ils servent de passerelles entre les blockchains et le monde extérieur.

Les blockchains et les contrats intelligents ne peuvent pas accéder aux données hors chaîne (données qui se trouvent en dehors du réseau). Cependant, pour de nombreux accords contractuels, il est essentiel de disposer d'informations pertinentes provenant du monde extérieur pour exécuter l'accord.

C'est là que les oracles blockchain entrent en jeu, car ils fournissent un lien entre les données hors chaîne et sur chaîne. Les oracles sont essentiels au sein de l'écosystème blockchain car ils élargissent le champ d'application dans lequel les contrats intelligents peuvent fonctionner. Sans les oracles blockchain, les contrats intelligents auraient une utilité très limitée car ils n'auraient accès qu'aux données de leurs réseaux.

Il est important de noter qu’un oracle blockchain n’est pas la source de données elle-même, mais plutôt la couche qui interroge, vérifie et authentifie les sources de données externes, puis relaie ces informations. Les données transmises par les oracles se présentent sous de nombreuses formes : informations sur les prix, exécution réussie d’un paiement ou température mesurée par un capteur.

Pour appeler des données du monde extérieur, le contrat intelligent doit être invoqué et les ressources du réseau doivent être dépensées. Certains oracles ont également la capacité non seulement de relayer des informations aux contrats intelligents, mais également de les renvoyer à des sources externes.

Il existe de nombreux types d’oracles différents. Le fonctionnement d’un oracle blockchain dépend entièrement de l’usage auquel il est destiné. Cet article passera en revue certaines de ces conceptions.


Exemple d'un oracle blockchain

Supposons qu'Alice et Bob parient sur le vainqueur de l'élection présidentielle américaine. Alice pense que le candidat républicain va gagner, tandis que Bob pense que le candidat démocrate va l'emporter. Ils s'entendent sur les termes du pari et bloquent leurs fonds dans un contrat intelligent, qui versera tous les fonds au vainqueur en fonction des résultats de l'élection.

Comme le contrat intelligent ne peut pas interagir avec des données externes, il doit s’appuyer sur un oracle pour lui fournir les informations nécessaires, dans ce cas, les résultats de l’élection présidentielle. Une fois l’élection terminée, l’oracle interroge une API de confiance pour savoir quel candidat a gagné et transmet ces informations au contrat intelligent. Le contrat envoie ensuite les fonds à Alice ou à Bob, selon le résultat.

Sans l’oracle relayant les données, il n’y aurait eu aucun moyen de régler ce pari d’une manière qui ne pouvait être jouée par l’un des participants.


Quels sont les différents types d’oracles blockchain ?

Les oracles de la blockchain peuvent être classés en fonction d'un certain nombre de qualités différentes :

  • Source – les données proviennent-elles du logiciel ou du matériel ?

  • Direction de l’information : est-elle entrante ou sortante ?

  • La confiance : est-elle centralisée ou décentralisée ?

Un oracle peut appartenir à plusieurs catégories. Par exemple, un oracle qui récupère des informations à partir du site Web d'une entreprise est un oracle logiciel entrant centralisé.


Oracles logiciels

Les oracles logiciels interagissent avec des sources d’informations en ligne et les transmettent à la blockchain. Ces informations peuvent provenir de bases de données en ligne, de serveurs, de sites Web, c’est-à-dire de n’importe quelle source de données sur le Web.

Le fait que les oracles logiciels soient connectés à Internet leur permet non seulement de fournir des informations aux contrats intelligents, mais également de transmettre ces informations en temps réel. Cela en fait l'un des types d'oracles blockchain les plus courants.

Les informations généralement fournies par les oracles logiciels peuvent inclure les taux de change, les prix des actifs numériques ou les informations de vol en temps réel.


Oracles matériels

Certains contrats intelligents doivent s'interfacer avec le monde réel. Les oracles matériels sont conçus pour obtenir des informations du monde physique et les mettre à disposition des contrats intelligents. Ces informations peuvent être relayées par des capteurs électroniques, des lecteurs de codes-barres et d'autres appareils de lecture d'informations.

Un oracle matériel « traduit » essentiellement des événements du monde réel en valeurs numériques qui peuvent être comprises par des contrats intelligents.

Un exemple de cela pourrait être un capteur qui vérifie si un camion transportant des marchandises est arrivé à un quai de chargement. Si c'est le cas, il transmet l'information à un contrat intelligent qui peut alors exécuter des décisions en fonction de celle-ci.

Si vous souhaitez en savoir plus sur un sujet similaire, consultez Blockchain Use Cases: Supply Chain.


Oracles entrants et sortants

Les oracles entrants transmettent des informations provenant de sources externes aux contrats intelligents, tandis que les oracles sortants envoient des informations provenant de contrats intelligents au monde extérieur.

Un exemple d'oracle entrant est celui qui indique à un contrat intelligent la température mesurée par un capteur. Un exemple d'oracle sortant peut être envisagé avec une serrure intelligente. Si des fonds sont déposés à une adresse, le contrat intelligent envoie ces informations via un oracle sortant à un mécanisme qui déverrouille la serrure intelligente.


Oracles centralisés et décentralisés

Un oracle centralisé est contrôlé par une seule entité et est le seul fournisseur d’informations pour le contrat intelligent. Utiliser une seule source d’informations peut être risqué : l’efficacité du contrat dépend entièrement de l’entité qui contrôle l’oracle. De plus, toute interférence malveillante d’un mauvais acteur aura un impact direct sur le contrat intelligent. Le principal problème des oracles centralisés est l’existence d’un point de défaillance unique, ce qui rend les contrats moins résistants aux vulnérabilités et aux attaques.

Les oracles décentralisés partagent certains des mêmes objectifs que les blockchains publiques : éviter le risque de contrepartie. Ils augmentent la fiabilité des informations fournies aux contrats intelligents en ne s'appuyant pas sur une source unique de vérité. Le contrat intelligent interroge plusieurs oracles pour déterminer la validité et l'exactitude des données. C'est pourquoi les oracles décentralisés peuvent également être appelés oracles de consensus.

Certains projets de blockchain fournissent des services d'oracle décentralisés à d'autres blockchains. Les oracles décentralisés peuvent également être utiles sur les marchés de prédiction, où la validité d'un certain résultat peut être vérifiée par consensus social.

Bien que les oracles décentralisés visent à atteindre l'absence de confiance, il est important de noter que, tout comme les réseaux blockchain sans confiance, les oracles décentralisés n'éliminent pas complètement la confiance, mais la distribuent plutôt entre de nombreux participants.


Oracles spécifiques au contrat

Un oracle spécifique à un contrat est un oracle conçu pour être utilisé par un seul contrat intelligent. Cela signifie que si l'on souhaite déployer plusieurs contrats intelligents, il faut développer un nombre proportionnel d'oracles spécifiques à un contrat.

Ce type d'oracle est considéré comme très chronophage et coûteux à entretenir. Les entreprises qui souhaitent extraire des données de diverses sources peuvent trouver cette approche très peu pratique. D'un autre côté, comme les oracles spécifiques à un contrat peuvent être conçus de toutes pièces pour répondre à un cas d'utilisation spécifique, les développeurs disposent d'une grande flexibilité pour les adapter à des exigences spécifiques.


Oracles humains

Parfois, des personnes possédant des connaissances spécialisées dans un domaine particulier peuvent également faire office d'oracles. Elles peuvent rechercher et vérifier l'authenticité des informations provenant de diverses sources et traduire ces informations en contrats intelligents. Étant donné que les oracles humains peuvent vérifier leur identité à l'aide de la cryptographie, la possibilité qu'un fraudeur falsifie son identité et fournisse des données corrompues est relativement faible.


Le problème de l'oracle

Étant donné que les contrats intelligents exécutent des décisions basées sur des données fournies par des oracles, ils sont essentiels à un écosystème blockchain sain. Le principal défi de la conception d'oracles est que si l'oracle est compromis, le contrat intelligent qui s'appuie sur lui l'est également. C'est ce que l'on appelle souvent le problème de l'oracle.

Les oracles ne faisant pas partie du consensus principal de la blockchain, ils ne font malheureusement pas partie des mécanismes de sécurité que les blockchains publiques peuvent fournir. Le conflit de confiance entre les oracles tiers et l'exécution sans confiance des contrats intelligents reste un problème largement non résolu.

Les attaques de type « man-in-the-middle » peuvent également constituer une menace, lorsqu'un acteur malveillant accède au flux de données entre les oracles et le contrat et modifie ou falsifie les données.


Réflexions finales

Un mécanisme fiable qui facilite la communication entre les contrats intelligents et le monde extérieur est essentiel à l’adoption mondiale des blockchains. Sans les oracles de la blockchain, les contrats intelligents devraient s’appuyer uniquement sur les informations déjà présentes dans leurs réseaux, ce qui limiterait considérablement leurs capacités.

Les oracles décentralisés ont le potentiel d'introduire des mécanismes de protection qui pourraient éliminer de nombreux risques systémiques de l'écosystème blockchain. Les oracles blockchain restent l'un des éléments de base essentiels à mettre en œuvre de manière sécurisée, fiable et sans confiance pour que l'écosystème blockchain puisse se développer.