La première étape d’un système d’oracle consiste à acquérir les données nécessaires provenant du monde réel ou d’Internet. Ces données peuvent être issues des prix sur les plateformes d’échange, des indices des marchés financiers, des informations météorologiques, des résultats sportifs ou encore de dispositifs IoT.
En pratique, les oracles collectent généralement des données auprès de plusieurs sources, plutôt que de se fier à une seule. En effet, une source unique peut être erronée, retardée ou manipulée. En recueillant des données de différentes origines, le système améliore la fiabilité des informations et réduit les risques.
Les sources de données courantes comprennent :
La collecte des données est généralement assurée par des nœuds oracles. Ces nœuds exécutent des logiciels spécifiques, surveillent en continu les sources de données externes et transmettent les dernières informations au réseau oracle pour traitement ultérieur.
Si un oracle se contentait de téléverser les données sur la blockchain, le système resterait vulnérable aux erreurs ou à la manipulation. C’est pourquoi la plupart des systèmes d’oracle effectuent une validation et une agrégation avant d’intégrer les données sur la chaîne.
Ce processus s’effectue généralement par collaboration entre plusieurs nœuds. Différents nœuds soumettent les données qu’ils ont collectées, qui sont ensuite agrégées via des algorithmes comme la moyenne ou la médiane. Ainsi, même si certains nœuds transmettent des données incorrectes, cela n’aura pas d’impact significatif sur le résultat final.
Certains réseaux d’oracle mettent également en place des mécanismes de sécurité supplémentaires tels que :
Grâce à ces mécanismes, les systèmes d’oracle peuvent limiter la manipulation malveillante des données et améliorer la qualité globale des informations.
Après validation et agrégation, les nœuds oracles soumettent le résultat final sur la blockchain et l’intègrent dans des smart contracts spécifiques. Ce processus est couramment appelé “price feed”.
Du point de vue des smart contracts, les données des oracles ne proviennent pas directement du monde extérieur, mais sont stockées dans un contrat de données on-chain. Les autres protocoles DeFi n’ont qu’à appeler l’interface de ce contrat pour consulter les données les plus récentes.
Par exemple, lorsqu’un protocole de prêt détermine si un compte doit être liquidé, il peut suivre la logique suivante :
De cette manière, les oracles deviennent un point d’entrée clé pour les applications on-chain, permettant aux smart contracts d’exécuter une logique automatisée basée sur des informations du monde réel.
Dans les applications financières, la rapidité des données est également essentielle. Si les mises à jour des prix sont trop lentes, cela peut entraîner des retards de liquidation, augmenter les opportunités d’arbitrage ou même provoquer un risque systémique. Par conséquent, les systèmes d’oracle mettent généralement en œuvre des mécanismes spécifiques de mise à jour des données.
Différents scénarios d’application imposent des exigences variées en matière de fréquence de mise à jour. Certains protocoles requièrent des mises à jour des prix quasi en temps réel, tandis que d’autres privilégient la stabilité des données. Pour équilibrer efficacité et coûts, les oracles adoptent en général plusieurs stratégies de mise à jour.
Les mécanismes courants incluent :
La conception de ces mécanismes doit prendre en compte les coûts réseau, la précision des données et la volatilité du marché. Si les mises à jour sont trop fréquentes, les coûts des transactions on-chain augmentent fortement ; si elles sont trop lentes, les prix peuvent accuser un retard important.
Il s’agit donc de trouver un équilibre entre efficacité, coût et sécurité, ce qui représente un défi majeur dans la conception des systèmes d’oracle.