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.