Les protocoles DeFi · 6 min · démo interactive
Les oracles : comment la blockchain connaît le prix
Une blockchain ne voit rien du monde extérieur. L'oracle lui apporte un prix, et ce prix décide qui sera liquidé : autant savoir comment il est fabriqué.
L’idée en une phrase
Un oracle est un service qui écrit sur la blockchain une information venue de l'extérieur, le plus souvent un prix.
Un smart contract ne peut pas appeler une API. Tous les nœuds doivent réexécuter chaque transaction et obtenir le même résultat, or une requête web peut répondre différemment d'une seconde à l'autre. Le contrat ne lit donc que l'état de la chaîne. Pour qu'il connaisse le prix d'un actif, quelqu'un doit l'y déposer dans une transaction. Toute la question est de savoir qui, et à quel point on peut lui faire confiance.
La démo
| Flux | Prix | État |
|---|---|---|
| Source A | 60 | corrompue |
| Source B | 60 | corrompue |
| Source C | 99,8 | honnête |
| Source D | 100,5 | honnête |
| Source E | 99,6 | honnête |
| Source F | 100,1 | honnête |
| Source G | 100,2 | honnête |
Prêt de test : liquidé si le prix publié passe sous 87,5
- Avec la moyenne : 88,6 → position saine
- Avec la médiane : 99,8 → position saine
- Moyenne
- Médiane
- Vrai prix
Sans JavaScript, prends cet exemple : sept sources, un vrai prix fictif de 100 et trois sources corrompues qui publient 40. La moyenne tombe autour de 74, la médiane reste au-dessus de 99. Avec quatre sources corrompues sur sept, la médiane tombe à 40 d'un seul coup. Le prêt de la démo (dette de 70, seuil de liquidation de 80 %, soit 87,5) et les prix sont illustratifs.
Pourquoi ça compte
Tu as déposé un collatéral sur un protocole de prêt et emprunté contre lui. Le contrat vérifie en permanence si ta dette reste couverte, et il n'a qu'un moyen de le savoir : lire l'oracle. Si l'oracle publie un prix faux pendant une minute, ta position peut être liquidée alors que le marché n'a pas bougé. À l'inverse, un attaquant qui gonfle le prix de son collatéral peut emprunter bien plus qu'il ne dépose, puis disparaître avec la différence.
Un stablecoin garanti par collatéral dépend du même chiffre, comme la plupart des produits dérivés sur chaîne. L'oracle est rarement mis en avant, et c'est pourtant souvent la pièce la plus sensible du système.
Le code
Voici l'agrégation de la démo. Change corrompues ou faux, puis relance. Essaie aussi de retirer une source pour obtenir un nombre pair, et regarde comment se comporte le calcul.
Clique sur Lancer pour exécuter ce code dans ton navigateur.
Ce qui se passe vraiment
Le tableau montre sept flux de prix. Les sources honnêtes oscillent légèrement autour de 100, car deux places de marché ne cotent jamais exactement la même chose. Les sources corrompues publient le prix voulu par l'attaquant.
Lis ensuite les deux statistiques. La moyenne intègre chaque valeur : une seule source à 60 la fait reculer de plus de 5 points. Avec ce réglage, elle cède progressivement à mesure que tu ajoutes des sources corrompues. Le graphique trace cette descente régulière. Regarde le prêt de test : il suffit de trois sources pour déclencher une liquidation à tort.
La médiane ne compte pas, elle classe. Elle prend la valeur du milieu après tri. Avec sept sources, tant que trois au plus mentent, la valeur du milieu reste celle d'une source honnête. La courbe de la médiane reste donc plate, puis s'effondre à quatre sources corrompues : c'est le seuil de majorité. La sécurité d'un tel oracle ne tient pas au nombre total de sources, mais au coût de corrompre plus de la moitié d'entre elles.
Le curseur d'écart apporte une nuance. Sur un petit écart, trois sources corrompues peuvent déplacer la médiane d'un cheveu, car elle glisse vers le bord du groupe honnête. Elle ne sort jamais de la fourchette des valeurs honnêtes tant que celles-ci sont majoritaires : l'attaquant ne peut plus choisir le prix.
La démo simplifie deux points. Ses sources sont indépendantes, alors que dans la réalité plusieurs flux peuvent reposer sur la même place de marché et tomber ensemble. Et elle ignore le temps : un vrai oracle doit aussi dire quand son prix a été mesuré.
Dans la vraie vie
Trois familles d'oracles
Les réseaux d'opérateurs. Des opérateurs indépendants collectent des prix hors chaîne, s'accordent sur une médiane et publient le résultat sur la chaîne. Chainlink, exemple technique très répandu, met à jour ses flux quand le prix s'écarte au-delà d'un seuil ou qu'un délai maximal est atteint. Un contrat doit donc vérifier la date de dernière mise à jour.
Les oracles sur chaîne. Un AMM affiche un prix calculé à partir de ses réserves. Le prix instantané est dangereux : un gros échange le déplace dans la même transaction. Uniswap a popularisé le TWAP, une moyenne pondérée dans le temps. L'attaquant doit alors maintenir le prix faussé pendant toute la fenêtre, ce qui coûte du capital et l'expose à l'arbitrage. En contrepartie, le TWAP réagit avec retard.
Le modèle à la demande. Le prix signé reste hors chaîne, et l'utilisateur l'apporte dans sa transaction. Le contrat vérifie la signature et l'horodatage. On paie la mise à jour seulement quand on en a besoin, mais il faut refuser les prix trop anciens, sinon un utilisateur choisira celui qui l'arrange.
Le choix dépend de l'actif. Un oracle n'a pas de vérité propre, il reflète des marchés. Si ces marchés sont peu liquides, le prix publié peut être exact et manipulable à la fois.
Ce qui peut mal tourner
- Lire un prix instantané. Avec un flash loan, un attaquant emprunte une somme énorme pour une seule transaction, déplace le prix d'un pool, exploite le contrat qui lit ce pool, puis rembourse. Les attaques contre bZx, en février 2020, ont rendu cette méthode célèbre.
- Manipuler le marché source. En octobre 2022, un attaquant a fait monter le prix du jeton MNGO sur des marchés peu profonds. Mango Markets, sur Solana, a valorisé cette position gonflée comme collatéral, et plus de 100 millions de dollars ont été empruntés. L'oracle lisait fidèlement un marché manipulé.
- Dépendre d'une seule place. En novembre 2020, le DAI a touché 1,30 dollar sur Coinbase Pro alors qu'il valait environ 1 dollar ailleurs. L'oracle de Compound s'y référait, et environ 89 millions de dollars de positions ont été liquidés.
- Utiliser un prix périmé. Un oracle arrêté publie toujours sa dernière valeur. Sans contrôle de fraîcheur, le contrat prend une vieille cote pour le prix du moment.
- Oublier les clés d'administration. Si une petite équipe peut changer la source du prix, la décentralisation des opérateurs ne sert à rien. C'est le même défaut de conception que dans bien des bridges.
- Coter un actif comme son équivalent. Un jeton enveloppé ou un stablecoin peut décrocher. Fixer son prix en dur à 1, ou le lire sur l'actif de référence, masque ce décrochage et laisse emprunter contre une valeur disparue.
Teste-toi
Contenu éducatif. Pas un conseil en investissement. Les crypto-actifs comportent un risque de perte en capital. Pour la démarche éditoriale, voir à propos. Mise à jour : 31 octobre 2026.