Oracles sur Blockchain : qu’est-ce que c’est et comment fonctionnent-ils ?
25 juin, 2024
6 min
Les smart contracts, bien que révolutionnaires, ont une limite fondamentale : ils ne peuvent pas accéder par eux-mêmes aux données off-chain, c’est-à-dire aux informations externes à la blockchain. Sans les oracles, les smart contracts seraient incapables d’obtenir des données essentielles comme le cours des actions NVIDIA, les résultats sportifs, ou même la date et l’heure actuelles. En effet, les blockchains sont conçues pour fonctionner de manière isolée du monde extérieur. Les oracles comblent ce manque en jouant le rôle de passerelle entre les données off-chain et les smart contracts.
Que sont les oracles blockchain et comment fonctionnent-ils ?
Les oracles sont des services qui fournissent des données externes aux blockchains, permettant ainsi aux smart contracts d’interagir avec le monde réel. Pour comprendre leur fonctionnement, prenons un exemple concret. Imaginons que vous souhaitiez utiliser la blockchain Ethereum pour parier avec des amis sur un match des Championnats d’Europe. Chaque participant mise 0,1 ETH dans un smart contract, qui distribuera la totalité des gains à celui qui devine le vainqueur. Si le match se termine par un nul, le smart contract renverra les 0,1 ETH à chaque adresse d’origine.
Mais comment le smart contract obtient-il le résultat réel du match, sachant que cette information n’est évidemment pas disponible sur la blockchain Ethereum ? C’est là qu’interviennent les oracles.
Assurer la fiabilité des données avec les oracles
Cet exemple soulève aussi une question importante : la fiabilité des données. Comment être certain que les informations fournies par un oracle sont correctes ? La réponse la plus simple consiste à utiliser un oracle fiable. Cependant, dans le contexte blockchain, le terme “fiable” est délicat car les blockchains minimisent la confiance grâce à des mécanismes décentralisés. En effet, l’intégration d’un oracle expose la blockchain à certains risques, car un oracle constitue un “single point of failure”. Les sources de données externes, qui ne sont pas protégées par le consensus de la blockchain, peuvent être des cibles pour des attaques visant à compromettre l’intégrité d’un smart contract.
Cependant, diverses solutions ont été développées pour répondre à ces défis au fil du temps. Explorons les différents types d’oracles et leur fonctionnement.
Types d’oracles
Il existe plusieurs types d’oracles, chacun ayant des caractéristiques uniques. Les principales distinctions concernent leur source de données, la direction des flux d’informations (entrée ou sortie de la blockchain) et le modèle de confiance.
Selon la Source
- Oracles logiciels : Ces oracles extraient leurs données de bases de données ou de serveurs en ligne. Ils sont connectés en permanence et fournissent des informations dynamiques comme la date, l’heure, les cours boursiers ou les résultats sportifs. Ils fonctionnent en temps réel, indispensables pour les applications nécessitant des données fréquemment mises à jour.
- Oracles matériels : Ils interagissent avec le monde physique par le biais de capteurs. Un exemple classique est un capteur lisant un code-barres pour suivre une chaîne de production. Ces oracles sont utilisés lorsque des données physiques doivent être transférées sur la blockchain.
Selon la Direction
- Oracles d’entrée : Ces oracles transmettent des informations externes aux smart contracts. Par exemple, un oracle d’entrée pourrait fournir à un smart contract le prix actuel d’une action pour exécuter une transaction en fonction de ce prix.
- Oracles de sortie : Ils fonctionnent dans le sens inverse, transmettant des informations de la blockchain vers le monde extérieur. Par exemple, un oracle de sortie peut déclencher une action dans le monde réel, comme un paiement, lorsqu’une condition sur la blockchain est remplie.
Selon le Modèle de Confiance
- Oracles centralisés : Contrôlés par une seule entité, ces oracles fournissent des données aux smart contracts, ce qui crée un point unique de vulnérabilité (single point of failure). Toute la confiance repose dans l’entité unique qui gère l’oracle, le rendant susceptible de manipulation.
- Oracles décentralisés : Ils cherchent à réduire le besoin de confiance en répartissant la validation des données sur un réseau de nœuds. Similaire au fonctionnement de la blockchain, ces oracles consultent plusieurs sources pour vérifier la précision des données, réduisant ainsi le risque de manipulation. La confiance est distribuée entre les différents nœuds, chacun contribuant à valider l’information.
Les modèles d’oracles décentralisés utilisent souvent des mécanismes de récompense inspirés des blockchains. Les nœuds qui fournissent des données fiables reçoivent des récompenses, encourageant ainsi la précision, la fiabilité et la rapidité de l’information.
Chainlink : l’oracle décentralisé le plus utilisé
Impossible de parler d’oracles sans mentionner Chainlink, l’une des solutions d’oracle les plus populaires dans le monde des applications décentralisées. Chainlink propose un modèle de confiance décentralisé qui permet la transmission de données entre smart contracts et APIs web. Il utilise des “reputation smart contracts” qui mettent en place des incitations, récompenses et sanctions pour garantir l’exactitude des données fournies.
Il est essentiel non seulement que les informations transmises soient correctes, mais aussi qu’elles soient mises à jour en temps réel. Imaginez les problèmes si la blockchain Ethereum ne pouvait pas suivre l’heure exacte ou le prix d’un token à la seconde près.
En bref, Chainlink relie les données off-chain aux smart contracts via un réseau de nœuds qui vérifie et valide les informations, réduisant ainsi les risques de manipulation et améliorant la sécurité et la fiabilité du système. De nombreuses applications décentralisées (dApps) utilisent déjà le protocole de Chainlink pour intégrer des données off-chain dans leurs smart contracts.
Applications réelles de Chainlink
- Aave : Plateforme leader sur le marché des prêts décentralisés, Aave utilise Chainlink pour obtenir les prix des actifs en temps réel, permettant ainsi de fournir des taux d’intérêt variables basés sur les valeurs de marché actuelles.
- Synthetix : Protocole de création d’actifs synthétiques qui s’appuie sur Chainlink pour garantir l’exactitude et l’actualisation des prix des actifs.
- Augur : Plateforme de marché de prédiction qui utilise Chainlink pour vérifier les résultats d’événements sur lesquels se basent les paris, assurant la véracité des résultats.
- Arbol : Une dApp qui propose des assurances blockchain pour les événements climatiques. Chainlink est utilisé pour recueillir des données météorologiques fiables et déclencher des paiements automatiques selon les conditions contractuelles.
Une collaboration notable entre Google Cloud et Chainlink illustre encore le potentiel de cette technologie. Google Cloud a intégré Chainlink pour permettre aux développeurs de smart contracts d’accéder aux données fournies par BigQuery.
Conclusion
Les oracles sont essentiels pour étendre les capacités des smart contracts, car ils leur permettent d’interagir avec le monde réel. Bien qu’ils posent des défis en matière de confiance, des solutions décentralisées comme Chainlink aident à atténuer ces risques. Avec le développement continu des technologies d’oracle et des partenariats comme celui entre Google Cloud et Chainlink, nous pouvons espérer une intégration accrue entre les blockchains et les données off-chain, ouvrant ainsi de nouvelles possibilités pour les applications décentralisées.