Oracles : comment les blockchains apprennent ce qui se passe à l'extérieur

·4 min de lecture·Par SSP Editorial Team
Couverture SSP Academy : les oracles blockchain expliqués

Oracles : comment les blockchains apprennent ce qui se passe à l'extérieur

Un contrat intelligent peut vérifier parfaitement des soldes, des signatures et son propre état. Ce qu'il ne peut pas faire, c'est aller chercher une information. Il n'a aucune idée du prix de l'ETH en dollars, du vainqueur d'un match ou de la pluie tombée hier à Madrid. Les blockchains sont volontairement cloisonnées : chaque nœud doit obtenir le même résultat à partir des mêmes données, et le monde extérieur n'offre pas cette garantie.

Pourtant, les protocoles de prêt ont besoin de prix, les stablecoins de taux de change et les contrats d'assurance d'événements du monde réel. Le pont entre la chaîne cloisonnée et le monde extérieur s'appelle un oracle, et c'est l'une des parties les plus attaquées de la finance décentralisée.

Ce que fait un oracle

Un oracle est tout mécanisme qui place des données extérieures sur la chaîne, là où les contrats peuvent les lire. En général :

  1. Un ou plusieurs fournisseurs de données collectent des informations, par exemple le prix ETH/USD sur de nombreuses plateformes d'échange.
  2. Ils les signent et les soumettent à un contrat oracle sur la chaîne, à intervalles réguliers ou lorsque la valeur change suffisamment.
  3. D'autres contrats lisent la dernière valeur de ce contrat oracle et agissent en conséquence.

Le contrat fait entièrement confiance à l'oracle. Si l'oracle indique que l'ETH vaut 10 $, un protocole de prêt qui le lit considérera que l'ETH vaut 10 $, et liquidera ou prêtera en conséquence.

Le problème de l'oracle

C'est la difficulté centrale : un protocole peut être parfaitement codé et n'être pourtant pas plus fiable que ses données. Décentraliser le contrat ne sert pas à grand-chose si une seule source lui fournit les prix.

Les conceptions d'oracles tentent de réduire cette dépendance de différentes manières :

  • Plusieurs rapporteurs indépendants dont les réponses sont agrégées, afin qu'une seule source défaillante ou compromise ne puisse pas fausser le résultat.
  • De nombreuses sources de données sous-jacentes, afin qu'une seule plateforme manipulée ne fausse pas le prix.
  • Des moyennes de prix on-chain calculées dans le temps sur des plateformes d'échange décentralisées, plus difficiles à déplacer durablement.
  • Des pénalités économiques pour les rapporteurs qui soumettent des données erronées.

Comment les oracles sont exploités

Bon nombre des plus grosses pertes de la DeFi n'étaient pas des bugs de contrat au sens habituel : c'étaient des défaillances d'oracle.

  • Manipulation du prix au comptant. Un protocole lit le prix actuel dans un seul petit pool d'échange. Un attaquant emprunte une grosse somme dans une seule transaction, pousse le prix de ce pool, emprunte ou liquide sur la base du faux prix, puis inverse l'échange, le tout avant la fin de la transaction. Les prêts flash rendent cela possible sans aucun capital propre.
  • Marchés peu liquides. Un jeton échangé surtout dans un petit pool coûte peu à déplacer, et tout protocole qui l'accepte en garantie hérite de cette faiblesse.
  • Données périmées. Un oracle qui cesse de se mettre à jour dans un marché rapide peut permettre d'emprunter sur la base de prix qui n'existent plus.
  • Des rapporteurs ou des clés d'administration compromis capables de changer l'origine des données de l'oracle.

Le même raisonnement s'applique aux ponts : un système n'est pas plus sûr que le composant qui lui indique ce qui s'est passé ailleurs.

Pourquoi cela vous concerne

Vous n'interagissez pas directement avec les oracles, mais ils décident de ce qui arrive à votre argent dans de nombreux protocoles :

  • Prêt : la valeur de votre garantie, et le fait d'être liquidé ou non, provient d'un oracle.
  • Stablecoins : plusieurs conceptions dépendent de flux de prix pour rester sur leur cible.
  • Dérivés et actifs synthétiques : les prix de règlement proviennent d'oracles.

Avant d'utiliser un protocole avec de l'argent réel, il vaut la peine de savoir : d'où tire-t-il ses prix ? S'agit-il d'un flux éprouvé et multi-sources, ou d'un seul pool ? Que se passe-t-il si le flux cesse de se mettre à jour ? Un protocole incapable de répondre clairement à ces questions vous demande de prendre un risque que vous ne pouvez pas voir.

Les oracles et SSP

SSP lui-même ne dépend pas d'oracles pour protéger vos fonds. Vos coins se trouvent dans un coffre multisig 2-sur-2, et leur déplacement dépend uniquement des signatures de vos deux appareils, pas d'un quelconque prix externe.

Les prix que vous voyez dans SSP, la valeur de votre portefeuille dans la devise choisie, servent uniquement à l'affichage. Ils n'influencent ni ce que fait une transaction ni sa validité.

Les oracles deviennent votre affaire lorsque vous engagez des fonds dans des protocoles DeFi via WalletConnect. Là, SSP vous montre ce que vous signez et exige l'approbation des deux appareils, mais il ne peut pas évaluer la solidité du flux de prix du protocole. Cette vérification vous revient, et vérifier les contrats et qui les contrôle en fait partie.

Le résumé honnête

Les blockchains ne peuvent pas voir au-delà d'elles-mêmes, alors les oracles y font entrer les données, et chaque contrat qui s'appuie sur ces données hérite des faiblesses de l'oracle. Beaucoup de grands exploits DeFi ont manipulé un flux de prix plutôt que de casser le code.

Quand vous utilisez un protocole qui dépend des prix, demandez d'où viennent ces prix. Des oracles bien agrégés et multi-sources sont bien plus difficiles à tromper qu'un seul pool, et un code « décentralisé » reposant sur une seule source de données n'est pas aussi décentralisé qu'il en a l'air.

Partager cet article

Articles connexes