Définition
Oracle : définition
Un oracle est un service qui transmet à une blockchain des informations venant de l'extérieur, comme le prix d'un actif, un résultat sportif ou une donnée météo, pour que les smart contracts puissent les utiliser. C'est un point critique de sécurité.
Thème : Oracles et interopérabilité
Une blockchain ne peut pas consulter internet : ses smart contracts ne voient que les données présentes sur la chaîne. Or beaucoup d'applications ont besoin d'informations extérieures. Un protocole de prêt doit connaître le prix des garanties pour savoir quand liquider un emprunteur, une assurance doit savoir si un événement a eu lieu. L'oracle fait ce lien : il récupère l'information, la met en forme et la publie sur la chaîne via une transaction.
Ce rôle crée un problème appelé le problème de l'oracle : si la donnée transmise est fausse, le smart contract exécute fidèlement des décisions fondées sur une erreur. Pour limiter ce risque, les oracles décentralisés agrègent les rapports de nombreux opérateurs indépendants, d'autres calculent des prix moyens sur une période, et les protocoles ajoutent des garde-fous comme des vérifications d'ancienneté ou des bornes de variation.
Un exemple concret
Une plateforme de prêt fictive accepte des ETH en garantie. Toutes les quelques minutes, un oracle publie le prix de l'ETH en dollars. Lorsque le prix chute et que la garantie de Fanny ne couvre plus suffisamment son emprunt, le contrat le constate grâce à cette donnée et permet la liquidation de sa position. Sans oracle, le contrat ignorerait totalement l'évolution du prix.
Les risques à connaître
Un oracle manipulé ou défaillant peut entraîner des liquidations injustifiées ou permettre à un attaquant d'emprunter bien plus que sa garantie. De nombreux piratages de protocoles DeFi ont exploité des oracles fragiles, notamment ceux qui s'appuient sur le prix instantané d'une seule pool peu liquide. Un prix périmé est un autre danger fréquent.
Questions fréquentes sur Oracle
Pourquoi les blockchains ont-elles besoin d'oracles ?
Parce qu'elles ne peuvent pas accéder d'elles-mêmes à des données extérieures. Les oracles fournissent aux smart contracts des informations comme les prix, indispensables à de nombreuses applications.
Qu'est-ce qu'une attaque par manipulation d'oracle ?
C'est une attaque où l'on fausse la donnée lue par un protocole, souvent en déplaçant temporairement un prix, pour emprunter trop ou déclencher des liquidations à son avantage.