Ce rapport de recherche technique a été rédigé par Polaris de l'équipe de recherche ScaleBit, avec des remerciements particuliers à Norman et Henry de SnapFingers pour leurs commentaires de révision.

TL;DR

Cet article mène une étude approfondie de la diversité et des scénarios d'application de l'effet de levier DeFi, analyse en détail les vulnérabilités au niveau du code et propose des points de sécurité clés des protocoles d'effet de levier.

Introduction à l'effet de levier DeFi

Le récent lancement de dYdX V4 a généré beaucoup d'attention et de participation aux échanges de contrats perpétuels. dYdX a appliqué avec succès des cas de trading à effet de levier, et nous devons non seulement nous attendre à l'énorme potentiel de dYdX V4, mais également prêter attention à la sécurité du protocole à effet de levier. Ensuite, nous utiliserons une analyse de code spécifique et des exemples pour vous familiariser avec différentes stratégies de levier et considérations de sécurité.

qu'est-ce que l'effet de levier

En finance, l’effet de levier est une stratégie qui repose sur l’emprunt de fonds pour augmenter le retour potentiel d’un investissement. En termes simples, un investisseur ou un commerçant emprunte des fonds pour augmenter son exposition à un type spécifique d'actif, de projet ou d'instrument bien au-delà de ce qui pourrait être réalisé en s'appuyant uniquement sur son propre capital. Généralement, grâce au recours à l’effet de levier, les investisseurs sont en mesure d’amplifier leur pouvoir d’achat sur le marché.

Effet de levier dans le trading DeFi

L’utilisation de l’effet de levier est l’une des caractéristiques les plus importantes et les plus courantes du trading d’actifs cryptographiques. Peu de temps après la création des bourses décentralisées, le trading avec effet de levier est devenu de plus en plus populaire, même si le marché de la cryptographie présentait déjà des niveaux élevés de volatilité.

Comme pour la finance traditionnelle, les traders utilisent l’effet de levier soit simplement pour emprunter des fonds afin d’augmenter leur pouvoir d’achat, soit pour profiter de divers produits financiers dérivés tels que les contrats à terme et les options.

L’effet de levier est également passé de 3x, 5x à plus de 100x. Un effet de levier plus élevé signifie un risque plus élevé, mais comme on le voit avec la plupart des bourses centralisées, à mesure que le volume des transactions avec effet de levier augmente, il s'agit d'un risque que les traders agressifs à la recherche de rendements plus élevés sont prêts à prendre.

Explication détaillée de la classification de l'effet de levier

En ce qui concerne DeFi, les produits à effet de levier sont principalement divisés en quatre types, avec différents mécanismes pour générer un effet de levier : les prêts à effet de levier, le levier de trading sur marge, le levier de contrat perpétuel et les jetons à effet de levier.

Prêts à effet de levier

L'emprunt et le prêt DeFi sont l'une des premières et des plus grandes applications DeFi, et des géants tels que MakerDao, Compound, AAVE, Venus, etc. opèrent déjà sur le marché. La logique consistant à obtenir un effet de levier en prêtant des actifs cryptographiques est simple.

Par exemple, si vous détenez 10 000 $ en Ethereum (ETH) et que vous êtes optimiste, vous pouvez déposer votre ETH dans Compound en garantie, prêter 5 000 $ en USDC, puis échanger ces 5 000 $ en USDC contre 5 000 $ d'ETH supplémentaires. Cela vous donnera un effet de levier de 1,5x sur l'ETH, vous donnant 15 000 $ d'exposition à l'ETH par rapport à votre capital initial de 10 000 $.

De même, si vous êtes baissier, vous pouvez choisir de déposer des pièces stables et de prêter des ETH. Si le prix de l’ETH baisse, vous pouvez acheter de l’ETH sur le marché à un prix inférieur et rembourser la dette.

Il est important de noter que puisque vous emprunterez auprès d’un protocole décentralisé, vous risquez d’être liquidé si la valeur de la garantie baisse ou si la valeur de l’actif que vous empruntez dépasse un certain seuil.

Levier de trading sur marge

Avec les prêts DeFi, vous pouvez faire ce que vous voulez avec ces actifs numériques. Le trading sur marge DeFi se concentre davantage sur l’augmentation de la taille de la position (augmentation du pouvoir d’achat) et est considéré comme une véritable « position à effet de levier ». Cependant, il existe une différence importante : tant qu'une position sur marge reste ouverte, les actifs du trader servent de garantie pour les fonds empruntés.

dYdX est une plateforme de trading sur marge décentralisée bien connue qui permet un effet de levier maximum de 5x. Dans le trading sur marge sur dYdX, les traders utilisent leurs propres fonds comme garantie, amplifiant plusieurs fois leur capital initial et utilisant ces fonds amplifiés pour réaliser des investissements plus importants.

Les traders sont tenus de payer des frais d'intérêt et des frais associés au trading. La position n’est pas construite virtuellement, elle implique de véritables emprunts et achats/ventes.

Si le marché évolue dans une direction défavorable, les actifs du trader pourraient ne pas être en mesure de rembourser intégralement l'argent emprunté. Pour éviter que cela ne se produise, le protocole liquidera votre position avant d'atteindre un certain ratio de liquidation.

Comment l'effet de levier change-t-il dans le trading sur marge——

Disons que vous êtes 3x long sur ETH sur marge, mais que vous ne souhaitez pas ajuster votre exposition de temps en temps.

Vous détenez 100 $ en USDC, empruntez 200 $ supplémentaires en USDC et négociez 300 $ en ETH pour établir la position longue souhaitée en ETH. Le niveau de levier est de 300 $ / 100 $ = 3x.

Si le prix de l'ETH augmente de 20 %, votre bénéfice sera de 300 (1+20 %) – 300 = 60 $. Votre risque relatif à la liquidation est plus faible et le niveau de levier réel est réduit à 360/(360-200) = 2,25x. En d’autres termes, vous désendettez automatiquement lorsque le prix de l’ETH augmente.

Si le prix de l'ETH baisse de 20 %, votre perte sera de 300 (1-20 %) -300 = -60 $. Vous êtes dans une position plus risquée en matière de liquidation et le niveau de levier réel augmente automatiquement à 240/(240-200) = 6x. En d’autres termes, vous rééquilibrez votre effet de levier lorsque le prix de l’ETH baisse, indiquant que vous êtes dans une position de risque plus élevée qu’auparavant.

Ainsi, même si vous pensez qu'en négociant avec une marge fixe de 3x, vous maintenez un effet de levier constant, l'effet de levier en temps réel évolue constamment. Consultez le tableau ci-dessous pour voir comment l'effet de levier évoluera en fonction des changements de prix[1].

Effet de levier du contrat perpétuel

Les contrats perpétuels sont similaires aux contrats à terme traditionnels, mais n'ont pas de date d'expiration. Les contrats perpétuels imitent le marché au comptant basé sur la marge et se négocient donc à proximité du prix de l'indice de référence sous-jacent.

Il existe de nombreux projets DeFi qui proposent des contrats perpétuels aux traders, tels que dYdX, MCDEX, Perpetual Protocol, Injective, etc. De nombreux traders peuvent avoir du mal à faire la différence entre le trading sur marge et les contrats perpétuels – en fait, ils impliquent tous deux l’effet de levier de l’utilisateur.

Il existe cependant certaines différences dans les mécanismes de levier, les frais et les niveaux de levier.

Les contrats perpétuels sont des produits dérivés qui négocient des actifs synthétiques et ont la particularité d'être négociés sur marge. Le prix de l'actif sous-jacent est suivi de manière synthétique sans qu'il soit nécessaire de négocier l'actif sous-jacent réel. Cependant, le trading sur marge implique de véritables emprunts et échanges d’actifs cryptographiques réels.

Avec l'émergence des contrats perpétuels, le concept de taux de financement est apparu, dont le but est de maintenir le prix de négociation des contrats perpétuels cohérent avec le prix de référence sous-jacent. **Si le prix du contrat est supérieur au prix au comptant, les positions longues paieront les positions courtes. **En d'autres termes, les traders doivent constamment payer des frais pour emprunter de l'argent.

L’effet de levier dans les contrats perpétuels est généralement plus élevé que dans le trading sur marge et peut atteindre 100x. Les mécanismes de liquidation et de levier réel sont les mêmes que pour le trading sur marge.

Jetons à effet de levier

Les jetons à effet de levier sont des produits dérivés qui offrent aux détenteurs une exposition au marché des cryptomonnaies sans avoir à se soucier de gérer activement une position à effet de levier. Bien qu'ils offrent aux détenteurs une exposition à effet de levier, ils ne les obligent pas à gérer les taux de marge, de liquidation, de garantie ou de financement.

La plus grande différence entre les jetons à effet de levier et les contrats de trading sur marge/perpétuels est que les jetons à effet de levier seront rééquilibrés périodiquement ou lorsqu'un certain seuil est atteint pour maintenir un effet de levier spécifique.

Ceci est évidemment différent du trading sur marge et des contrats perpétuels : l'effet de levier réel de ces produits change constamment en fonction des mouvements de prix, même si le trader peut avoir initialement spécifié un niveau d'effet de levier.

Regardons comment fonctionne le rééquilibrage dans l'exemple 3x ETH ci-dessus :

Vous détenez 100 $ USDC et achetez un jeton à effet de levier ETHBULL (3x). Le protocole empruntera automatiquement 200 $ USDC et échangera 200 $ ETH.

Disons que le prix de l'ETH augmente de 20 % et que le prix du jeton ETHBULL (3x) monte à 300*(1+20 %)-200 = 160 $ ​​avant le rééquilibrage. Désormais, votre effet de levier réel devient 2,25 (360/160), ce qui est inférieur à l'effet de levier cible.

Dans le cadre du processus de rééquilibrage, le protocole empruntera davantage de dollars au pool de pièces stables et achètera des jetons ETH supplémentaires pour ramener l'effet de levier à 3x. Dans notre exemple, le protocole empruntera 120 $ supplémentaires et les échangera contre de l’ETH. Par conséquent, l’effet de levier total devient à nouveau (360+120)/160 = 3 fois.

Disons que le prix de l'ETH baisse de 20 % et que le prix du jeton ETHBULL (3x) chute à 300*(1-20 %)-200 = 40 $ avant le rééquilibrage. Désormais, votre effet de levier réel deviendra 6 (240/40), ce qui est supérieur à l'effet de levier cible.

Dans ce cas, le protocole vendra des jetons ETH et remboursera la dette impayée pour réduire l’effet de levier. Dans cet exemple, le protocole vendra 120 $ d’ETH pour payer le pool. La dette deviendra 80 $ et l'effet de levier total sera à nouveau de (240-120)/40 = 3x.

En d’autres termes, les jetons à effet de levier ré-exploiteront automatiquement les bénéfices et réduiront les pertes pour rétablir leurs niveaux d’effet de levier cibles. Si ce mécanisme fonctionne bien, même en cas de tendances de marché défavorables, les détenteurs de jetons à effet de levier ne seront pas liquidés car le mécanisme de désendettement réduira continuellement le niveau d’effet de levier effectif de l’utilisateur.

Par conséquent, les pools de prêt dans un modèle de jetons à effet de levier seront exempts de risque de liquidation et seront plus sûrs que les pools de prêt dans le cadre du trading sur marge.

Tirer parti des cas de candidature

Nous avons déjà découvert certains types d'effet de levier courants du protocole DeFi. Ensuite, nous expliquerons en détail l'application de l'effet de levier en fonction de protocoles DeFi spécifiques.

GMX

GMX [2] est un échange spot et perpétuel décentralisé qui offre aux traders la possibilité de négocier des actifs avec un effet de levier jusqu'à 50x. Le protocole fonctionne actuellement sur Arbitrum et Avalanche. Sur GMX, les traders ont une parfaite connaissance de leurs contreparties, ce qui est complètement différent du trading sur CEX. GMX diffère des autres protocoles de contrat perpétuel tels que dYdX en ce sens qu'il fonctionne entièrement en chaîne et utilise la fonctionnalité AMM pour permettre le trading à effet de levier.

Ce qui distingue GMX des autres services, c'est qu'il s'agit d'une bourse décentralisée qui propose des services de trading à effet de levier. À cet égard, il combine une expérience similaire à celle d’autres bourses DeFi comme Uniswap avec des services de trading à effet de levier proposés par Binance.

GMX dispose d'un pool de liquidité, GLP, qui est un pool multi-actifs qui fournit de la liquidité pour le trading sur marge : les utilisateurs peuvent prendre des positions longues/courtes et exécuter des transactions en frappant et en brûlant des jetons GLP. Le pool perçoit des frais LP sur les transactions et les transactions à effet de levier, qui sont distribuées aux détenteurs de GMX et de GLP.

Afin de négocier avec effet de levier, les traders déposent des garanties dans le protocole. Les traders peuvent choisir un effet de levier jusqu'à 50x. Plus l'effet de levier est élevé, plus le prix de liquidation est élevé, qui augmentera progressivement à mesure que les frais d'emprunt augmenteront.

Par exemple, lorsqu'il prend une position longue sur l'ETH, un trader « loue » l'avantage de l'ETH du pool GLP ; lorsqu'il prend une position courte sur l'ETH, le trader « loue » l'avantage du stablecoin par rapport à l'ETH du pool GLP. Mais les actifs du pool GLP ne sont pas réellement loués.

Lors de la clôture d'une position, si le trader parie correctement, les bénéfices seront payés depuis le pool GLP sous forme de jetons longs ; sinon, les pertes seront déduites de la garantie et versées dans le pool ; GLP profite des pertes des traders et profite des bénéfices des traders.

Au cours du processus, les traders paient des frais de négociation, des frais d'ouverture/clôture et des frais d'emprunt en échange de l'avantage d'être long/short par rapport au dollar américain sur des jetons désignés (BTC, ETH, AVAX, UNI et LINK).

Commerce Merkle

Merkle Trade[3] est une plateforme de trading décentralisée qui propose des transactions de crypto-monnaie, de change et de matières premières avec un effet de levier jusqu'à 1 000x et des fonctionnalités de trading avancées centrées sur l'utilisateur. Merkle Trade est alimenté par la blockchain Aptos, offrant les meilleures performances et évolutivité de sa catégorie. Par rapport à Gains Network, il présente des délais de transaction et des frais de traitement inférieurs tout en offrant le même effet de levier élevé.

Contrairement à la plupart des bourses, il n'y a pas de carnet d'ordres sur Merkle Trade. Au lieu de cela, Merkle LP agit en tant que contrepartie sur chaque transaction, collecte des garanties lorsque les traders perdent de l'argent et verse les bénéfices sur les transactions clôturées avec des rendements positifs.

  • Négociez des crypto-monnaies, des devises et des matières premières avec un effet de levier jusqu'à 1 000x

Merkle Trade vise à offrir une large gamme de paires de trading dès le premier jour, y compris les crypto-monnaies, les devises et les matières premières, et offre l'un des effets de levier les plus élevés du marché, jusqu'à 150x sur les cryptomonnaies et 1 000x sur les devises.

  • Exécution des ordres au juste prix, latence en millisecondes, glissement minimal

Propulsé par la blockchain générée par Aptos avec la latence la plus faible à ce jour, l'expérience de transaction en chaîne la plus rapide possible. Pour les traders, cela signifie une expérience de trading plus rapide avec moins de dérapages de prix dus aux retards d'exécution.

  • Trading décentralisé, non dépositaire et sans risque de contrepartie

Les traders négocient avec un pool de liquidité (Merkle LP) qui agit comme contrepartie à chaque transaction sur le protocole. Toutes les transactions et règlements sont exécutés par des contrats intelligents et il n'y a à aucun moment de garde des fonds des utilisateurs.

  • Frais de traitement minimum

Merkle Trade prétend avoir l'un des frais les plus bas du marché à ce jour. Au lancement, les frais sont aussi bas que 0,05 % pour les paires de trading de cryptomonnaies et aussi bas que 0,0075 % pour les paires de trading FX.

dYdX

dYdX[4] est un échange décentralisé (DEX) qui donne aux utilisateurs la possibilité de négocier efficacement des contrats perpétuels tout en contrôlant pleinement leurs actifs. Depuis son lancement en 2021, dYdX V3 a adopté une solution unique de mise à l'échelle de couche 2 non dépositaire pour mettre en œuvre son échange, mais son carnet de commandes et son moteur d'appariement sont toujours gérés de manière centralisée.

Et maintenant, avec dYdX V4, le protocole évolue vers sa propre chaîne et refactorise complètement l'ensemble du protocole pour parvenir à une décentralisation complète tout en augmentant le débit. dYdX comprend également trois fonctions : prêts, trading sur marge et contrats perpétuels. Le trading sur marge est doté d'une fonction d'emprunt. Les fonds déposés par les utilisateurs forment automatiquement un pool de fonds lors de la transaction, ils emprunteront automatiquement et paieront des intérêts.

Tirer parti de l’analyse de sécurité

Nous avons présenté les types et applications courants d'effet de levier dans DeFi. De même, il existe encore de nombreux problèmes de sécurité dans la conception de l'effet de levier qui méritent notre attention. Nous analyserons les problèmes de sécurité et les points d'audit de l'effet de levier DeFi avec des cas d'audit spécifiques.

Distinguer les ordres à cours limité et les ordres au marché

Dans la plupart des applications d'échange à effet de levier, il existe des ordres limités et des ordres de marché. Il est nécessaire de distinguer et de vérifier strictement les ordres limités et les ordres de marché. Ensuite, nous procéderons à une analyse détaillée des problèmes que nous avons trouvés lors de l'audit Merkle Trade [5].

let now = timestamp::now_seconds(); if (maintenant - order.created_timestamp > 30) { Cancel_order_internal<PairType, CollateralType>( orderid, order, T_CANCEL_ORDER_EXPIRED ); retour };

Cette partie du code consiste à effectuer une vérification dans la fonction de commande. Dans cette fonction, elle vérifie si plus de 30 secondes se sont écoulées depuis la création de la commande. Si les conditions sont remplies, Cancel_order_internal() est appelé pour annuler la commande. Cependant, si l'ordre est un ordre limité, cela signifie que l'ordre a un prix spécifique fixé par le trader auquel il est prêt à acheter ou à vendre l'actif. Ce jugement ne doit pas être utilisé lors de l’exécution d’ordres limités, ce qui peut entraîner la non-exécution de la plupart des ordres limités. Il est donc important de distinguer strictement la logique de trading des ordres limités et des ordres au marché.

Erreur de calcul de levier

Les erreurs de calcul ont toujours été un problème très courant dans DeFi, et elles sont particulièrement courantes dans le domaine de l’effet de levier. Nous utiliserons les problèmes rencontrés lors des audits tiers du protocole Unstoppable[6] pour mener une étude approfondie du calcul de l’effet de levier. .

Regardons le code dans Unstoppable qui calcule l'effet de levier :

def calculateleverage( positionvalue : uint256, dettevalue : uint256, marginvalue : uint256 ) -> uint256 : si positionvalue <= dettevalue : # créance irrécouvrable return max_value(uint256) return ( PRECISION * (_debt_value + marginvalue) / (_position_value - dettevalue) / PRECISION ) La fonction calculateleverage entraîne un calcul incorrect de l'effet de levier en utilisant la valeur de la dette + la valeur de la marge comme numérateur au lieu de la valeur de la position. Les trois paramètres d'entrée de cette fonction, positionvalue, _debt_value et marginvalue, sont tous déterminés par les informations de prix fournies par l'oracle sur la chaîne Chainlink. où _debt_value représente la valeur de la conversion de la part de la dette de la position en un montant de dette en USD. _margin_value représente la valeur actuelle (en USD) du montant de la marge initiale de la position. _position_value représente la valeur actuelle (en USD) du montant initial de la position.

Le problème avec le calcul ci-dessus est que la valeur de la dette + la valeur de la marge ne représentent pas la valeur de la position. L'effet de levier est le rapport entre la valeur actuelle de la position et la valeur actuelle de la marge. _position_value - la valeur de la dette est correcte, elle représente la valeur de marge actuelle, mais la valeur de la dette + la valeur de la marge ne représentent pas la valeur actuelle de la position, car il n'y a aucune garantie que le jeton de responsabilité et le jeton de position auront des fluctuations de prix liées.

Par exemple:

Le jeton de responsabilité est ETH et le jeton de position est BTC.

En utilisant 1 ETH comme marge, Alice emprunte 14 ETH (2 000 $ par ETH) et reçoit 1 BTC (30 000 $ par BTC) en jetons de position. L'effet de levier est de 14.

Le lendemain, le prix de l’ETH était toujours de 2 000 $/ETH, mais le prix du BTC est passé de 30 000 $/BTC à 29 000 $/BTC.

À ce stade, l'effet de levier devrait être (_position_value == 29 000)/(_position_value == 29 000 - dettevalue == 28 000) = 29

Au lieu de la valeur calculée dans le contrat : (_debt_value == 28 000 + marginvalue == 2 000) / (_position_value == 29 000 - dettevalue == 28 000) = 30.

Par conséquent, afin de résoudre ce problème, la formule correcte mentionnée ci-dessus doit être utilisée pour calculer l'effet de levier dans les contrats intelligents. Des erreurs de calcul de levier peuvent conduire à des liquidations injustes ou à des positions surendettées en cas de volatilité des prix.

Dans les contrats intelligents, garantir des calculs de levier corrects est essentiel pour maintenir la robustesse du système et les intérêts des utilisateurs. Le calcul correct de l'effet de levier doit être basé sur le rapport entre la valeur actuelle de la position et la valeur actuelle de la marge. Si une formule de calcul incorrecte est utilisée, le système peut réagir de manière inappropriée aux changements de prix, liquider des positions qui ne devraient pas être liquidées ou permettre que des positions surendettées continuent d'exister, augmentant ainsi les risques pour le système et les utilisateurs.

erreur logique

Les erreurs logiques nécessitent une attention particulière lors de l’audit des contrats intelligents, en particulier dans les logiques complexes telles que les transactions à effet de levier DeFi.

Utilisons les problèmes découverts lors des audits tiers réalisés par Tigris[7] (Tigris est une plateforme décentralisée de trading à effet de levier synthétique basée sur Arbitrum et Polygon) pour discuter des problèmes logiques auxquels il faut prêter attention dans l'effet de levier DeFi.

Regardons la logique de la fonction de fermeture de limite dans Tigris :

function limitClose (identifiant uint, bool tp, données d'appel PriceData priceData, signature de données d'appel en octets) externe { checkDelay (id, false); (uint limitPrice, adresse tigAsset) = tradingExtension._limitClose(_id, tp, priceData, signature); closePosition(_id, DIVISION_CONSTANT, limitPrice, adresse(0), tigAsset, true); } function limitClose( uint id, bool tp, PriceData calldata priceData, bytes calldata signature ) la vue externe renvoie (uint limitPrice, adresse tigAsset) { checkGas(); IPosition.Trade mémoire trade = position.trades(id); tigAsset = trade.tigAsset; getVerifiedPrice(_trade.asset, priceData, signature, 0); uint256 prix = priceData.price ; if (_trade.orderType != 0) revert("4"); //IsLimit if (_tp) { if (_trade.tpPrice == 0) revert("7"); //LimitNotSet if (_trade.direction) { if (_trade.tpPrice > price) revert("6"); //LimitNotMet } else { if (trade.tpPrice < price) revert("6"); //LimitNotMet } limitPrice = trade.tpPrice ; } else { if (trade.slPrice == 0) revert("7"); //LimitNotSet if (_trade.direction) { if (_trade.slPrice < price) revert("6"); //LimitNotMet } else { if (trade.slPrice > price) revert("6"); //LimitNotMet } //@audit stop loss est clôturé au prix spécifié par l'utilisateur et NON au prix du marché limitPrice = _trade.slPrice ; } }

Lorsque vous utilisez le stop loss pour clôturer une position, le prix de clôture de l'utilisateur est le prix stop loss fixé par l'utilisateur, et non le prix actuel de l'actif. Sur les marchés directionnels et à fort effet de levier, les utilisateurs peuvent en abuser pour réaliser des transactions pratiquement sans risque. Les utilisateurs peuvent ouvrir une position longue et définir un prix stop loss inférieur de 0,01 $ au prix actuel.

Si le prix baisse immédiatement lors de la prochaine mise à jour, ils clôtureront la position à leur prix d'entrée et ne paieront que les frais d'ouverture et de clôture. Si les prix augmentent, ils gagneront considérablement. En conséquence, les utilisateurs peuvent abuser de la méthode de fixation du prix stop-loss pour ouvrir des transactions avec un effet de levier élevé, un potentiel de hausse élevé et un faible risque de baisse.

fluctuations des prix

L'impact des fluctuations de prix sur l'effet de levier DeFi est très important. Ce n'est qu'en tenant toujours compte des fluctuations de prix que vous pourrez garantir la sécurité de l'accord de levier. Prenons comme exemple les problèmes rencontrés lors de l'audit tiers du protocole DeFiner[8] pour une analyse approfondie :

Le protocole DeFiner effectue deux vérifications avant de traiter les retraits.

Tout d'abord, la méthode vérifie si le montant demandé par l'utilisateur pour retirer dépasse le solde de l'actif :

function retirer(adresse accountAddr, jeton d'adresse, uint256 montant) externe uniquementAuthorized return(uint256) { // Vérifiez si le montant du retrait est inférieur au solde de l'utilisateur require(amount <= getDepositBalanceCurrent(_token, accountAddr), "Solde insuffisant."); uint256 BorrowLTV = globalConfig.tokenInfoRegistry().getBorrowLTV(token);

Deuxièmement, la méthode vérifie si les retraits laisseraient à l’utilisateur trop de levier. Le montant retiré est soustrait du « pouvoir d’emprunt » de l’utilisateur du prix actuel. Si la valeur totale de l'emprunt de l'utilisateur dépasse le nouveau pouvoir d'emprunt, la méthode échoue car l'utilisateur ne dispose plus de suffisamment de garanties pour garantir sa position d'emprunt. Cependant, cette exigence ne sera vérifiée que si l'utilisateur n'est pas déjà surendetté :

if (getBorrowETH(_accountAddr) <= getBorrowPower(_accountAddr)) require( getBorrowETH(_accountAddr) <= getBorrowPower(_accountAddr).sub( montant.mul(globalConfig.tokenInfoRegistry().priceFromAddress(token)) .mul(borrowLTV).div (Utils.getDivisor(address(globalConfig), _token)).div(100) ), "Garantie insuffisante lors du retrait.");

Si un utilisateur a emprunté plus que ce que son « pouvoir d’emprunt » lui permet, les retraits peuvent être effectués malgré tout. Cette situation peut se produire dans diverses situations, la plus courante étant la fluctuation des prix. Le protocole n’a pas pris en compte l’impact des fluctuations de prix sur le protocole, ce qui a causé ce problème.

autre

Outre l'incapacité mentionnée ci-dessus de faire la différence entre les ordres limités et les ordres au marché, les erreurs de calcul, les erreurs logiques et l'impact des fluctuations de prix, il existe de nombreux points de sécurité liés aux accords de levier auxquels nous devons prêter attention. Cela inclut, sans toutefois s'y limiter, des problèmes tels que les attaques de prêts flash, la manipulation des prix, la sécurité Oracle, le contrôle d'accès, l'insuffisance ou l'absence de contrôles stricts de l'effet de levier et d'autres problèmes. Lors de la conception et de la mise en œuvre d'un protocole à effet de levier, ces facteurs doivent être soigneusement pris en compte pour garantir la robustesse du protocole et la sécurité des actifs des utilisateurs. Les mesures préventives, la surveillance en temps réel et les plans d'intervention d'urgence sont également essentiels pour réduire les risques potentiels et protéger les intérêts des utilisateurs.

Résumer

L'introduction du trading à effet de levier dans les protocoles DeFi offre au marché une plus grande opérabilité, mais apporte également des mécanismes de trading plus complexes. Bien que le trading à effet de levier offre aux utilisateurs davantage d'opportunités d'investissement, ses risques potentiels et les défis en matière de sécurité des protocoles sont également devenus plus importants.

À mesure que l’effet de levier augmente, le fonctionnement du protocole devient plus flexible, mais il devient également plus fragile et vulnérable à diverses menaces de sécurité. Cela inclut la possibilité de ne pas faire de distinction stricte entre les ordres à cours limité et les ordres au marché, les erreurs de calcul, les erreurs logiques et une extrême sensibilité à des facteurs tels que les fluctuations de prix. Dans ce cas, nous devons accorder plus d’attention à la sécurité du protocole pour garantir que les actifs des utilisateurs sont efficacement protégés.

ScaleBit est une équipe leader en matière de sécurité blockchain dans le domaine Web3, située dans la Silicon Valley, à Singapour, à Hong Kong, à Taiwan et ailleurs. Nous avons fourni des solutions de sécurité blockchain à plus de 200 institutions et projets dans le domaine mondial du Web3, audité un total de plus de 180 000 lignes de code et protégé des actifs d'utilisateurs représentant plus de 8 milliards de dollars américains. Rendre la sécurité accessible à tous ! Si vous avez des besoins en matière d'audit de sécurité, n'hésitez pas à nous contacter. Nous personnaliserons des solutions de sécurité détaillées, complètes et professionnelles pour vous protéger ainsi que le domaine Web3 !