Qu'est-ce qu'un Oracle Blockchain ?
Accueil
Articles
Qu'est-ce qu'un Oracle Blockchain ?

Qu'est-ce qu'un Oracle Blockchain ?

Intermédiaire
Publié le Jan 22, 2020Mis à jour le Nov 28, 2023
7m
Participation de la communauté - Auteur: Vallery Mou


Contenu de cet article


Qu'est-ce qu'un oracle blockchain ?

Les oracles Blockchain sont des services tiers qui fournissent des informations externes à des contrats intelligents. 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 (des données localisées en dehors du réseau). Toutefois, pour de nombreux accords contractuels, il est essentiel de disposer d'informations pertinentes provenant du monde extérieur pour exécuter les contrats en question.

C'est là que les oracles blockchain entrent en jeu, car ils fournissent un lien entre des données hors-chaîne et des données sur chaîne. Les Oracles sont vitaux au sein de l'écosystème blockchain, car ils élargissent le champ d'application des contrats intelligents. Sans oracles blockchain, les contrats intelligents auraient un usage très limité car ils n'auraient accès qu'aux données présentes sur leurs réseaux respectifs.

Il est important de noter qu'un oracle blockchain ne constitue 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 ensuite les informations. Les données transmises par les oracles se présentent sous de nombreuses formes – informations sur les prix, réalisation d'un paiement, température mesurée par un capteur. 

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

Il existe de nombreux types d'oracles, le fonctionnement d'un oracle blockchain dépend entièrement de ce pour quoi il a été conçu. Cet article passera en revue certaines de ces conceptions.


Exemples d'oracle blockchain

Supposons qu’Alice et Bob placent un pari sur qui sera le vainqueur de l’élection présidentielle américaine. Alice pense que le candidat républicain va gagner, tandis que Bob croit que le démocrate sera le vainqueur. Ils s'accordent sur les conditions de la mise et verrouillent leurs fonds dans un contrat intelligent, qui enverra tous les fonds au vainqueur du pari en fonction des résultats des élections.

Le contrat intelligent ne peut pas interagir avec des données externes, il doit dépendre d'un oracle pour lui transmettre 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 relaie cette information au contrat intelligent. Le contrat envoie ensuite les fonds à Alice ou Bob, selon le résultat.

Sans oracle relayant les données, il n'y aurait pas eu de moyen de régler ce pari d'une manière fiable et non corruptible par l'un des participants.


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

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

  • La Source – les données proviennent-elles d'un logiciel ou d'un périphérique matériel ?
  • La Direction des informations – sont-elles entrantes ou sortantes ?
  • La Confiance – est-il centralisé ou décentralisé ?

Un seul oracle peut être classé dans plusieurs de ces catégories. Par exemple, un oracle qui fournit des informations à partir du site Web d'une entreprise est un oracle logiciel d'entrée 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 – essentiellement, 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 à des contrats intelligents, mais aussi de transmettre ces informations en temps réel. Cela fait d'eux l'un des types les plus courants d'oracles blockchain. 

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


Oracles matériels

Certains contrats intelligents doivent avoir une interface avec le monde réel. Les oracles matériels sont conçus pour obtenir des informations du monde physique et les mettre à la disposition des contrats intelligents. Ces informations pourraient être transmises à partir de capteurs électroniques, de scanners de codes-barres et d'autres dispositifs de lecture d'informations.

Un oracle matériel "traduit" essentiellement des événements réels en valeurs numériques qui peuvent être comprises par des contrats intelligents.

Par exemple, on pourrait avoir un capteur qui vérifie si un camion transportant des marchandises est arrivé dans une baie de chargement. Si c'est le cas, il transmet l'information à un contrat intelligent qui peut ensuite exécuter des décisions basées sur cette information.

Si vous souhaitez en savoir plus sur le sujet, nous vous recommandons de lire notre article Cas d'Utilisation de la Blockchain: les chaines d'approvisionnement.


Oracles d'entrée et de sortie

Les oracles d'entrée transmettent des informations à partir de sources externes vers des contrats intelligents, tandis que les oracles de sortie envoient des informations provenant de contrats intelligents vers le monde extérieur.

Un exemple d'oracle d'entrée: il indique à un contrat intelligent quelle température est mesurée par tel capteur. Un exemple d'oracle de sortie peut être considéré avec un verrou intelligent. Si des fonds sont déposés dans une adresse, le contrat intelligent envoie ces informations via un oracle sortant à un mécanisme qui déverrouille le verrou intelligent.


Oracles centralisés et décentralisés

Un oracle centralisé est contrôlé par une seule entité et constitue le seul fournisseur d'informations pour le contrat intelligent dont il est question. L'utilisation d'une seule source d'information peut être risquée – l'efficacité du contrat dépend entièrement de l'entité contrôlant l'oracle. En outre, toute interférence malveillante d'un mauvais acteur aura un impact direct sur le contrat intelligent. Le principal problème des oracles centralisés, c'est l'existence d'un point de faille unique, ce qui rend les contrats moins résistants aux vulnérabilités et aux attaques.

Les oracles décentralisés partagent certains objectifs similaires à ceux des blockchains publiques – éviter les risques de contrepartie. Ils augmentent la fiabilité des informations fournies aux contrats intelligents en ne reposant pas sur une seule source de vérité. Le contrat intelligent interroge plusieurs oracles pour déterminer la validité et la précision des données – c'est pourquoi les oracles décentralisés peuvent également être appelés oracles de consensus.

Certains projets blockchain fournissent des services 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.

Alors que les oracles décentralisés visent à atteindre l'élimination du besoin de confiance, il est important de noter que tout comme les réseaux blockchain ne nécessitant pas de confiance entre les participants, les oracles décentralisés n'éliminent pas totalement le besoin de confiance, Il le répartissent plutôt entre de nombreux participants.


Oracles spécifiques à un contrat

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

Ce type d'oracle est considéré comme très chronophage et coûteux à entretenir. Les entreprises qui veulent extraire des données à partir de diverses sources peuvent trouver cette approche plutôt impraticable. D'un autre côté, puisque les oracles spécifiques à un contrat peuvent être conçus à partir de zéro pour servir un cas d'utilisation spécifique, les développeurs en tirent une grande flexibilité pour les adapter à des exigences spécifiques.


Oracles humains

Parfois, les individus possédant des connaissances spécialisées dans un domaine particulier peuvent aussi servir d'oracles. Ils peuvent rechercher et vérifier l'authenticité des informations provenant de diverses sources et traduire ces informations à des contrats intelligents. Puisque les oracles humains peuvent vérifier leur identité en utilisant la cryptographie, la possibilité pour un fraudeur de falsifier son identité et de fournir des données corrompues est relativement faible.


Le problème des Oracles

Puisque les contrats intelligents exécutent des décisions basées sur des données fournies par des oracles, ils sont essentiels pour parvenir écosystème blockchain sain. Le principal défi de la conception d'oracles est que si l'oracle est compromis, le contrat intelligent s'appuyant sur lui est également compromis. C'est ce que l'on appelle généralement le problème des Oracles. 

Sachant que les oracles ne font pas partie du consensus principal d'une blockchain, ils ne font malheureusement pas partie des mécanismes de sécurité que les blockchains publiques peuvent fournir. Le conflit de fiabilité entre des oracles tierces et l'exécution sans besoin de confiance de contrats intelligents reste un problème non résolu dans sa globalité.

Les attaques dites de l'homme-intermédiaire peuvent également constituer une menace, dans celles-ci, un acteur malveillant parvient à accéder aux flux de données entre les oracles et les contrats, pour ensuite les modifier ou les falsifier.  


Pour conclure

L'existence d'un mécanisme fiable qui facilite la communication entre les contrats intelligents et le monde extérieur est vital pour l'adoption mondiale des blockchains. Sans oracles blockchain, les contrats intelligents ne devraient compter que sur des informations déjà au sein de 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 beaucoup de risques systémiques de l'écosystème blockchain. Les oracles blockchain restent l'un des éléments essentiels à implémenter de manière sûre et fiable pour que l'écosystème de la blockchain puisse se développer.