Comprendre les prix des Oracles sur StarkEx
0x568B
May 5th, 2022

Initialement publié en anglais par StarkWare le 4 Avril, 2021

Plus Rapide, moins Cher, aussi Sûr et Sécurisé qu'Ethereum

Introduction

dYdX a récemment lancé sa plateforme de contrats perpétuels, alimentée par le moteur de scalabilité StarkEx en mode ZK-Rollup (cad avec les données on-chain). StarkEx assure la scalabilité et la réduction des coûts du gas pour les utilisateurs, mais il permet également de construire un meilleur système : la mise en œuvre d'une nouvelle logique commerciale, y compris de nouvelles fonctionnalités qui étaient trop coûteuses sans une solution layer 2.
Dans ce post, nous allons voir comment StarkEx utilise les prix de l’oracle d'une manière plus efficace et plus sûre.

Les Oracles sur StarkEx

Les oracles sont un élément essentiel de toute blockchain permissionless, car ils permettent aux dApps de s'appuyer sur des données externes à la blockchain. dYdX n'est pas différent : il utilise les flux de prix des différents actifs qui y sont négociés pour suivre le ratio de collatéralisation des traders.

Cependant, la mise à jour des oracles est assez coûteuse. Une mise à jour fiable est une mise à jour qui a été agrégée à partir de nombreuses sources, ce qui signifie de nombreuses signatures de vérifications et d’opérations de stockage sur L1. En général, le coût d'une telle mise à jour peut atteindre des millions de gas, un coût considérable qui est finalement supporté par les utilisateurs.

Des mises à jour coûteuses signifient des mises à jour moins fréquentes, ce qui se traduit par une dApp moins efficace. Il n'est pas pratique de mettre à jour le prix USD-ETH on-chain à chaque bloc, ce qui signifie que les dApps qui dépendent de cette mise à jour seront plus lentes à réagir aux changements de prix. Ce problème s'intensifie dans les périodes où nous avons le plus besoin de mises à jour fréquentes, à savoir pendant les périodes d'évolution rapide des prix. Dans ces moments-là, les gens sont plus susceptibles de vouloir interagir avec L1, et ont besoin de prix actualisés, ce qui augmente la congestion de la blockchain. La congestion signifie que les mises à jour des prix seront malheureusement moins fréquentes (comme ce fut le cas pour le Black Thursday). Même si le système dYdX StarkEx n'est opérationnel que depuis deux semaines, nous avons eu la chance d'expérimenter un tel stress test : le matin du 17 avril 2021, le prix des crypto-monnaies a chuté de 20 % - StarkEx a traité sans problème plus de 1 000 liquidations en moins d'une heure, pour un peu plus de 6 000 gas/liquidation.

Avec StarkEx, dYdX pourrait augmenter considérablement la fréquence et le nombre des prix des Oracles, protégeant ainsi mieux le flux des manipulations de prix. Nous utilisons actuellement le réseau d'oracle de Chainlink pour alimenter des flux de prix sécurisés pour notre protocole Layer 2. Chainlink s'est intégré à Starkware pour étendre les fonctions d’oracle de son réseau à des solutions de Layer 2 de haute performance. Dans peu de temps, d'autres fournisseurs d'oracle, tels que MakerDAO, pourront être utilisés pour certains marchés. Ces mises à jour de prix abordables, fréquentes et fiables sont ce qui permet à dYdX d'offrir une meilleure expérience aux traders.

Comment ça marche ?

Tout d'abord, les détails d'une liste de parties responsables de fournir des flux de prix off-chain à dYdX (ainsi que le quorum requis) sont hachés et stockés dans le smart contract de dYdX. Les traders pourront bientôt voir la pré-image sur le site web de dYdX et décider s'ils font confiance à ces entités et au quorum ou non - ce qui donne la même transparence qu'un smart contract de L1.

Voyons comment nous permettons des mises à jour fréquentes de manière rentable. Tout d'abord, les parties éligibles soumettent - off-chain ! - des prix signés. dYdX agrège ces données et calcule la médiane.

L'ensemble de ces signatures, ainsi que la médiane, sont ensuite envoyés à StarkEx, où le programme dYdX Cairo vérifie que les conditions suivantes sont remplies :

  • Validité des entrées : Les signatures sont valides, et toutes les clés publiques appartiennent à des parties éligibles dans la liste qui apparaît sur la blockchain.
  • Les horodatages sont suffisamment récents
  • Il y a un quorum de signatures de clés publiques valides.
  • Le prix médian a été calculé correctement

En supposant que les propriétés ci-dessus soient effectivement respectées, une preuve STARK (STARK-proof) de l'exécution correcte du programme Cairo est générée. La preuve STARK est envoyée on-chain, où - si elle est vérifiée - un seul nombre est stocké (la moyenne entre le prix minimal et maximal utilisé dans le lot (batch). À noter : le prix unique stocké par actif et par lot est indépendant du nombre de fournisseurs off-chain qui l'alimentent, ou de la fréquence de leurs rapports pendant le lot.

C’est tout !

Le prix peut maintenant être utilisé immédiatement dans les transactions off-chain suivantes, avant même que la preuve ne soit vérifiée sur la blockchain. Il est important de noter que l'exactitude du prix est garantie par la preuve STARK, ce qui signifie que si le prix est invalide, le lot qui l'inclut et toutes les transactions qui reposent sur ce prix invalide sont rejetés.

Une Note sur les OR et le Prix des Oracles

Contrairement aux ZK-Rollups, les Optimistic Rollups (OR) nécessitent de publier toutes les données liées aux prix des oracles on-chain. Cela signifie qu'avec un OR, les dépenses de gas augmentent linéairement avec la fréquence des mises à jour des prix et le nombre de fournisseurs de prix off-chain.

Conclusion

Les solutions de scalabilité L2 devenant de plus en plus populaires et sophistiquées, il est passionnant de voir comment elles permettent non seulement de scaler les capacités du L1 existantes, mais aussi de débloquer des fonctionnalités et une logique commerciale totalement nouvelles. Nous espérons que dans un avenir proche, davantage de dApps s'appuieront sur StarkEx, et bientôt sur StarkNet, pour offrir aux utilisateurs des services plus évolutifs, sécurisés, fiables et en temps réel.

Traduction faite par HoVa

Arweave TX
jQQH6gEGjdP76bREWm8Ws9yixMeBM6aWh6vC30TrOsM
Ethereum Address
0x568B12eBBE85521D2cd8a2C9B7a8EF3f48aa2d66
Content Digest
m0N-met2L9M1ZS7kK2WsbMuCKRfHaXVoPimoHG8LGy8