Qu’est-ce que le problème de l’Oracle sur la Blockchain?

Kevin Bélanger
Chainlink Community
11 min readMar 10, 2021

--

Le problème de l’oracle sur la Blockchain est l’un des obstacles les plus importants à surmonter pour permettre aux contrats intelligents sur des réseaux comme Ethereum d’obtenir une adoption massive dans une grande variété d’industrie et dans plusieurs cas d’utilisation.

Comme mentionné précédemment dans notre série Blockchain Education, les contrats intelligents fonctionnant sur des blockchains offrent un immense potentiel pour redéfinir la façon dont plusieurs parties différentes s’engagent dans des accords contractuels partagés et une valeur d’échange. L’économie numérique hors blockchain, bien plus vaste, fonctionne séparément de l’économie des contrats intelligents. Elle est composée de tous les appareils connectés à Internet qui sont connectés en ligne. Un sous-produit de cette infrastructure numérique est un réservoir en constante expansion de données et d’API qui fournissent des informations sur le fonctionnement du monde. Par exemple, les résultats de recherche sur Internet montrant des sujets de discussion populaires dans la société ou encore des capteurs IoT présentant des modèles de trafic courants.

Les contrats intelligents basés sur la blockchain, les données traditionnelles ainsi que les économies d’API ont un immense potentiel pour devenir les futurs éléments constituants l’automatisation basée sur les données, mais la question est de savoir comment ces deux mondes se connectent? Cela englobe le nœud du «problème de l’oracle» et sera au centre de cet article.

L’article sera divisé en cinq sections clés:

  • Définir le problème de l’Oracle
  • Décrire le travail d’un Oracle
  • Discutez des raisons pour lesquelles les blockchains comme Ethereum n’offrent pas de solutions d’oracle natives
  • Identifier les risques de sécurité des oracles centralisés
  • Présentez Chainlink, la norme pour les oracles décentralisés, sécurisés et fiables

Le problème de l’Oracle

Le problème de l’Oracle tourne autour d’une limitation très simple: les blockchains ne peuvent pas extraire des données ou les pousser vers un système externe en tant que fonctionnalité intégrée. En tant que telles, les blockchains sont des réseaux isolés très proche d’un ordinateur sans connexion Internet. L’isolement d’une blockchain est la propriété précise qui la rend extrêmement sécurisée et fiable, car le réseau n’a besoin que de former un consensus sur un ensemble très basique de questions vrai / faux en utilisant des données déjà stockées dans son registre. Par exemple, le détenteur de la clé publique a-t-il signé la transaction avec la clé privée correspondante, l’adresse publique dispose-t-elle de suffisamment de fonds pour couvrir la transaction ou encore le type de transaction est-il valide dans le contrat intelligent particulier? L’objectif très étroit du consensus du blockchain est la raison pour laquelle les contrats intelligents sont qualifiés de déterministes; ils s’exécutent exactement comme ils sont écrits avec un degré de certitude beaucoup plus élevé que les systèmes traditionnels.

Cependant, pour que les contrats intelligents réalisent plus de 90% de leurs cas d’utilisation potentiels, ils doivent être connectés au monde extérieur. Par exemple, les contrats intelligents financiers ont besoin d’informations sur le marché traditionnel pour déterminer les règlements finaux, les contrats intelligents d’assurance ont besoin de l’IoT et de données Web pour prendre des décisions vis-à-vis les politiques pour effectuer les paiements, les contrats de financement ont besoin de documents commerciaux et de signatures numériques pour savoir quand libérer les paiements et de nombreux contrats intelligents souhaitent transiger en monnaie fiduciaire sur un réseau de paiement traditionnel. Aucune de ces informations n’est générée dans la blockchain, et ces services traditionnels ne sont pas non plus accessibles par nature.

Faire le pont entre la blockchain (sur la chaîne) et le monde extérieur (hors de la chaîne) nécessite une infrastructure supplémentaire et distincte appelée « oracle ».

Qu’est-ce que les Oracles pour les Blockchains font?

Un oracle pour blockchain est un middleware sécurisé qui facilite la communication entre les blockchains et tout système hors chaîne, y compris les fournisseurs de données, les API Web, les backends d’entreprise, les fournisseurs de cloud, les appareils IoT, les signatures électroniques, les systèmes de paiement, d’autres blockchains, etc. Les oracles englobent plusieurs fonctions clés:

  • Écoutez — surveille le réseau blockchain pour vérifier les demandes d’utilisateurs entrants ou de contrats intelligents pour les données hors chaîne.
  • Extraire — récupère des données à partir d’un ou plusieurs systèmes externes tels que des API hors chaîne hébergée sur des serveurs Web tiers
  • Formatter — permet à deux systèmes de communiquer entre eux en formatant les données extraites des API dans un format lisible par blockchain (entrée) et/ou en rendant les données blockchain compatibles avec une API externe (sortie)
  • Valider — créer une preuve cryptographique pour attester de la performance des services de de l’oracle en utilisant n’importe quelle combinaison de signature de données, signature de transaction blockchain, signatures TLS, attestations Trusted Execution Environment (TEE), preuve zéro connaissance, etc.
  • Calculer — effectuer un certain type de calcul sur les données, comme calculer une médiane à partir de plusieurs soumissions d’oracle ou exécuter des tâches plus complexes comme la génération d’un devis d’assurance à partir de plusieurs types de données (profil de risque personnel, taux du marché, coût du capital, etc.)
  • Diffusion — signez et diffusez une transaction sur la blockchain comme moyen d’envoyer des données et sa preuve correspondante en chaîne pour l’utilisation du contrat intelligent
  • Sortie (facultatif) — envoyer des données à un système externe lors de l’exécution d’un contrat intelligent tel que le relais des instructions de paiement à un réseau de paiement traditionnel ou affecter un système cyber-physique

Pour offrir les fonctions ci-dessus, le système d’oracle doit fonctionner simultanément sur et hors de la blockchain. Le composant en chaîne sert à établir une connexion avec la blockchain (pour écouter les demandes), à diffuser des données, à envoyer des preuves, à extraire des données blockchain et parfois à effectuer des calculs sur la blockchain. Le composant hors chaîne sert à traiter les demandes, à récupérer et à formater des données externes, à envoyer des données de chaîne de blocs à des systèmes externes et à effectuer potentiellement des calculs dans des réseaux oracle plus avancés.

Un contrat intelligent alimenté par un oracle de Chainlink pour l’assurance-récolte qui prend en compte les données météorologiques de plusieurs sources, utilise le point de données agrégé pour déclencher l’exécution d’un contrat d’assurance sur la blockchain et paie dans n’importe quel mode de paiement traditionnel.

Pourquoi les blockchains ne peuvent pas résoudre le problème d’Oracle

Les blockchains sont hautement sécurisées et fiables en raison de quelques principes de conception spécifiques. Comme décrit ci-dessus, ils n’ont besoin de prendre des décisions que sur des questions très basiques en utilisant des données uniquement générées dans son propre environnement qui sont prouvées vraies ou fausses. De plus, ils utilisent la décentralisation pour à la fois valider que la même donnée est répondue par tous les nœuds du réseau et s’assurer qu’un nœud ou un petit groupe de nœuds ne peut pas changer les règles de l’algorithme de consensus (PoW, PoS, etc.) et procède à un attaque Sybil sur le réseau, par exemple en gagnant 51% de contrôle de la puissance de hachage. Ces propriétés offrent de solides garanties autour du déterminisme, en particulier dans un réseau hautement décentralisé et résistant à des attaques de type Sybil.

Cependant, les blockchains ne sont pas bien adaptées pour répondre à des questions qui commencent à plonger dans la subjectivité ou qui nécessitent des données externes qui ne sont pas accessibles à tous les nœuds du réseau. Par exemple, une simple question comme “ Quel est le prix du marché du Bitcoin? “ ou “ Quel temps fait-il à New York? ‘” peut susciter un large éventail de réponses différentes qui peuvent varier en fonction de la source de données qu’ils utilisent et du moment où ils demandent ces données à une source. La question devient alors, quelle est la bonne réponse?

L’introduction de la subjectivité au niveau de la couche de base de la blockchain ouvre la boîte de Pandore à toute une série de problèmes de sécurité, de fiabilité et de gouvernance, ce qui met en péril la proposition de valeur même que la blockchain vise à fournir — un déterminisme impartial pour le calcul des transactions.

Une préoccupation majeure est de savoir comment garantir la haute qualité des données alors que tous les nœuds n’ont pas le même accès aux données. Même une demande de données de base pour le prix du Bitcoin est très difficile, car le simple fait de consulter un site Web ou un site de trading unique ne sera pas aussi précis ou fiable qu’un abonnement API payant à un agrégateur de données professionnel avec des incitations financières pour maintenir des services de haute qualité ainsi qu’avec des décennies d’expérience dans le filtrage des données et la création d’une couverture de marché qui tient compte de tous les environnements commerciaux. Il est extrêmement difficile de gérer et d’appliquer un contrôle de qualité pour les données hors chaîne soumises par des nœuds de blockchain, car tout le monde peut exécuter un nœud pseudo-anonyme et ils ont tous une chance égale de soumettre des réponses, mais ils ne sont peut-être pas tous prêts à acheter un abonnement à une API hors chaîne de hautes qualités et n’est pas facilement applicable.

Une autre préoccupation majeure est l’évolutivité. Chaque fois qu’une nouvelle source de données doit être ajoutée au réseau ou qu’une méthode d’agrégation de données existante doit être ajustée, cela nécessite une coordination massive de la gouvernance sociale pour que chaque nœud du réseau accepte et met à niveau son logiciel. Ces frais généraux de gouvernance augmentent les frictions, ralentissent le développement d’autres fonctionnalités de base de la blockchain (telles que le PoS et le sharding) et limitent la vitesse d’innovation des oracles. En fin de compte, plus la couche de base de la blockchain est complexe, plus il y a de surface d’attaque et de risque pour toutes les applications qui s’exécutent dessus. Même les applications qui n’utilisent pas d’oracles ou qui ne sont pas impliquées dans des demandes de données conflictuelles seront prises entre deux feux et potentiellement perturbées si toute la chaîne s’arrête à cause d’un problème d’oracle.

C’est pour ces raisons et bien d’autres que les oracles ne sont pas intégrés dans la couche de base d’une chaîne de blocs majeure, mais fonctionnent plutôt comme des réseaux séparés. Cela garantit que les chaînes de blocs ont une surface d’attaque plus faible et conservent leur déterminisme en se concentrant singulièrement sur le consensus de la blockchain, tandis que les oracles ont la flexibilité requise pour produire du déterminisme à partir d’un monde hors chaîne complexe et subjectif sans créer de dépendances et de limitations qui mettent en danger toute la chaîne.

Les oracles centralisés présentent des risques majeurs

L’intérêt d’un contrat intelligent est d’atteindre le déterminisme grâce à une application technologique des conditions du contrat, par opposition à une exécution probabiliste effectuée par une application humaine. Pour atteindre cet objectif, la blockchain ne peut pas avoir de point de défaillance unique, qui doit être étendu à l’oracle pour conserver ces propriétés tout au long du cycle de vie de bout en bout du contrat. Pourquoi avoir un contrat de plusieurs millions de dollars fonctionnant comme un contrat intelligent sur une blockchain entièrement décentralisée si un seul oracle centralisé peut contrôler les entrées qui déterminent le résultat du contrat?

Un oracle centralisé est un point central de défaillance du contrat intelligent

Qu’il s’agisse de l’équipe de développement du contrat intelligent exécutant l’oracle d’eux-mêmes ou de s’appuyer sur un service oracle tiers, les deux scénarios donnent à une seule entité un pouvoir excessif qui peut influencer le contrat via le contrôle de l’oracle. Bien que l’opérateur d’un oracle centralisé puisse avoir les meilleures intentions, il est toujours soumis à tous les problèmes techniques centralisés courants d’aujourd’hui tels que les temps d’arrêt, les attaques DDOS, les piratages et l’incompétence accidentelle, qui mettent tous les fonds des utilisateurs en danger.

Même les entités centralisées les plus nobles peuvent subir des pressions une fois que la valeur du contrat a augmenté, les ouvrant à des pots-de-vin, à des intimidations et à des pressions réglementaires, qui ne nécessitent finalement qu’une seule personne impliquée dans le fonctionnement de l’oracle centralisé pour devenir voyou. Ce modèle n’est pas évolutif et ne correspond pas à l’idée que l’infrastructure décentralisée est un moteur clé d’une automatisation sécurisée et fiable.

Afin de surmonter ces lacunes, les oracles doivent créer les mêmes garanties de sécurité et de fiabilité d’une blockchain, bien que d’une manière différente étant donné les nombreuses différences dans la façon de résoudre le problème d’oracle par rapport à l’obtention d’un consensus blockchain.

Chainlink: la norme pour les oracles sécurisés et fiables

Afin d’apporter du déterminisme à la couche d’oracle, Chainlink a développé un réseau d’oracles décentralisés qui peut fournir une multitude de garanties différentes pouvant être utilisées dans n’importe quelle combinaison pour fournir des solutions oracle personnalisées à tous cas d’utilisation.

  • Open-source — étant une technologie open-source permet à la communauté plus large de la blockchain de vérifier indépendamment la sécurité et la fiabilité du code source et des fonctions de Chainlink, ainsi que de contribuer à son amélioration
  • Adaptateurs externes — permettant aux nœuds de stocker en toute sécurité les clés d’API et de gérer les connexions de compte permettent aux contrats intelligents de récupérer les données de n’importe quel système externe et API, y compris ceux qui sont protégés par mot de passe / informations d’identification
  • Décentralisation — l’utilisation de la décentralisation au niveau du nœud et de la source de données garantit qu’aucun nœud ou source de données n’est un point de défaillance unique, offrant aux utilisateurs de solides garanties que les données seront livrées à temps et resteront résistantes à la manipulation
  • Signature de données — le fait que les nœuds signent de manière cryptographique les données qu’ils fournissent aux contrats intelligents permettent aux utilisateurs d’identifier les nœuds qui ont envoyé des données et de consulter leur historique pour déterminer la qualité de leurs performances
  • Accords de service — l’utilisation d’accords de chaîne contraignants entre le contrat intelligent demandeur et le fournisseur oracle qui décrivent les conditions du service oracle et des pénalités / récompenses pour la performance offre aux utilisateurs des garanties exécutoires sur leur demande de données hors chaîne
  • Systèmes de réputation — alimenter des données en chaîne signées dans des systèmes de réputation permet aux utilisateurs de prendre des décisions éclairées sur les nœuds qui sont bonnes et ceux qui ne sont pas basés sur une variété de mesures telles que les travaux réussis, les clients servis, le temps de réponse moyen, etc.
  • Services de certification — permettre aux nœuds d’augmenter leur sécurité et leur fiabilité pour les utilisateurs en obtenant un nombre illimité de certifications peut fournir certaines garanties clés telles que KYC, l’emplacement géographique du nœud, les examens de sécurité de leur infrastructure, etc.
  • Cryptographie et matériel avancés — offrant une flexibilité pour la cryptographie plus avancée (comme les preuves de connaissance zéro) et le matériel (comme les environnements d’exécution fiables) permet aux oracles d’exécuter des fonctions supplémentaires telles que prouver l’origine des données à un contrat intelligent serveur), gardez les données confidentielles de l’oracle lui-même, effectuez des calculs hors chaîne, etc.

Ce ne sont là que quelques-unes des nombreuses fonctionnalités offertes par Chainlink qui offrent aux utilisateurs tout un ensemble de garanties pour assurer un mécanisme d’oracle hautement sécurisé et fiable. Dans les prochains articles sur l’éducation, nous approfondirons chacun d’eux pour avoir une compréhension plus complète du réseau Chainlink.

En développant ces fonctionnalités clés sur Chainlink, les contrats intelligents sur n’importe quelle blockchain peuvent désormais accéder aux données hors chaîne sans sacrifier leur valeur fondamentale de déterminisme, fournissant une base solide à partir de laquelle construire l’avenir de l’automatisation basée sur les données.

Suivez-nous sur Twitter pour être informé des prochaines publications d’articles, rejoignez notre Telegram ou Reddit pour des nouvelles générales sur Chainlink, ou participez à la discussion technique sur notre Discord.

--

--