La blockchain, par conception, constitue un système particulièrement fermé. Les nœuds valident les transactions et les données des blocs à l’aide de mécanismes de consensus. Toute information inscrite sur la blockchain doit être vérifiée indépendamment par les nœuds du réseau. Cette structure garantit la sécurité et la cohérence du système, mais implique aussi que la blockchain ne peut pas accéder de manière proactive à des réseaux externes.
Sur le plan technique, les smart contracts opèrent dans un environnement de machine virtuelle et ne peuvent lire que les données existantes sur la chaîne, telles que les soldes de comptes, les historiques de transactions ou l’état d’autres contrats. Toute donnée provenant d’Internet ou du monde réel, si elle n’est pas inscrite sur la blockchain, reste inaccessible directement par les smart contracts.
Ce choix de conception relève en réalité d’une décision de sécurité. Si la blockchain permettait aux smart contracts d’accéder librement à des sources de données externes, les nœuds ne pourraient pas vérifier l’authenticité de ces données, et le mécanisme de consensus du système perdrait sa raison d’être. Ainsi, la blockchain privilégie un environnement de données fermé mais vérifiable.
En résumé, la blockchain garantit la fiabilité des données sur la chaîne, mais ne peut assurer que les données du monde réel soient automatiquement intégrées à la chaîne. C’est le premier dilemme lié aux données auquel la blockchain se confronte au niveau applicatif.
Lorsque les développeurs commencent à concevoir des applications on-chain, les limites de cette structure fermée apparaissent progressivement. De nombreuses applications financières nécessitent des données en temps réel comme déclencheurs, telles que les prix des actifs, les taux d’intérêt ou les indices de marché. Or, les smart contracts ne peuvent pas interroger des serveurs externes via des API, contrairement aux applications traditionnelles.
Cette limitation entraîne plusieurs défis majeurs :
Les protocoles de trading décentralisé ou les plateformes de prêt ont besoin de prix en temps réel pour déterminer les conditions de liquidation, mais la blockchain ne stocke pas les prix du marché externe.
Les protocoles d’assurance doivent parfois déterminer si un vol est retardé ou si les conditions météorologiques répondent à certains critères — ces informations existent dans des systèmes de données du monde réel.
Certains produits financiers nécessitent une exécution à des moments précis ou selon des conditions de marché spécifiques, mais les nœuds blockchain ne surveillent pas activement les évolutions du monde réel.
En l’absence d’un mécanisme permettant d’intégrer de façon sécurisée des données externes sur la chaîne, de nombreuses applications Web3 ne peuvent fonctionner normalement. Des scénarios innovants tels que la Finance décentralisée (DeFi), les marchés de prédiction ou l’assurance on-chain restent difficiles à mettre en œuvre.
Les oracles ont été conçus précisément pour résoudre ce problème en tant qu’infrastructure essentielle. Leur mission principale est d’apporter des données off-chain sur la chaîne et de les fournir aux smart contracts de façon vérifiable et exploitable par la blockchain.
Les systèmes d’oracle assurent généralement plusieurs fonctions clés :
Dans l’écosystème Web3, les oracles sont déjà devenus une infrastructure centrale. Par exemple, les protocoles de prêt s’appuient sur des oracles de prix pour déclencher des liquidations ; les protocoles de produits dérivés nécessitent des prix en temps réel pour calculer les rendements ; les systèmes de stablecoins utilisent des oracles pour surveiller la valeur des actifs de collatéral.
On peut dire que les oracles ouvrent une fenêtre de données à la blockchain. Ils permettent à l’environnement fermé de la chaîne d’interagir avec le monde réel, transformant la blockchain d’un simple système d’enregistrement de transactions en une plateforme capable de soutenir des activités économiques complexes.