Dieser technische Forschungsbericht wurde von Polaris vom ScaleBit-Forschungsteam verfasst, mit besonderem Dank an Norman und Henry von SnapFingers für ihre Revisionskommentare.

TL;DR

In diesem Artikel werden die Vielfalt und Anwendungsszenarien der DeFi-Hebelwirkung eingehend untersucht, Schwachstellen auf Codeebene im Detail analysiert und wichtige Sicherheitspunkte von Hebelprotokollen vorgeschlagen.

Einführung in DeFi Leverage

Die kürzliche Einführung von dYdX V4 hat viel Aufmerksamkeit und Beteiligung am Austausch unbefristeter Verträge hervorgerufen. dYdX hat Hebelhandelsfälle erfolgreich angewendet, und wir sollten uns nicht nur auf das enorme Potenzial von dYdX V4 freuen, sondern auch auf die Sicherheit des Hebelprotokolls achten. Als Nächstes machen wir Sie anhand spezifischer Codeanalysen und Beispiele mit verschiedenen Hebelstrategien und Sicherheitsaspekten vertraut.

Was ist Hebelwirkung?

Im Finanzwesen ist Leverage eine Strategie, die auf der Aufnahme von Krediten beruht, um die potenzielle Rendite einer Investition zu steigern. Einfach ausgedrückt: Ein Investor oder Händler leiht sich Geld, um das Engagement in einer bestimmten Art von Vermögenswerten, Projekten oder Instrumenten weit über das hinaus zu erhöhen, was allein mit seinem eigenen Kapital erreicht werden könnte. Typischerweise können Anleger durch den Einsatz von Hebelwirkung ihre Kaufkraft am Markt steigern.

Hebelwirkung im DeFi-Handel

Der Einsatz von Hebelwirkung ist eines der wichtigsten und häufigsten Merkmale beim Handel mit Krypto-Assets. Schon kurz nach der Gründung dezentraler Börsen erfreute sich der Handel mit Hebelwirkung immer größerer Beliebtheit, auch wenn der Kryptomarkt bereits eine hohe Volatilität aufwies.

Wie im traditionellen Finanzwesen nutzen Händler die Hebelwirkung entweder einfach, um Geld zu leihen, um ihre Kaufkraft zu erhöhen, oder um verschiedene Finanzderivate wie Futures und Optionen zu nutzen.

Auch die Hebelwirkung ist von 3x, 5x auf über 100x gestiegen. Ein höherer Leverage bedeutet ein höheres Risiko, aber wie bei den meisten zentralisierten Börsen zu beobachten ist, ist dies ein Risiko, das aggressive Händler, die auf der Suche nach höheren Renditen sind, bereit sind, mit zunehmendem Leverage-Handelsvolumen einzugehen.

Detaillierte Erläuterung der Leverage-Klassifizierung

Was DeFi betrifft, werden Hebelprodukte hauptsächlich in vier Typen mit unterschiedlichen Mechanismen zur Hebelwirkung unterteilt: Leveraged Lending, Margin Trading Leverage, Perpetual Contract Leverage und Leveraged Tokens.

Leveraged Lending

DeFi-Borrowing und -Lending ist eine der frühesten und größten DeFi-Anwendungen, und Giganten wie MakerDao, Compound, AAVE, Venus usw. sind bereits auf dem Markt tätig. Die Logik, durch das Verleihen von Krypto-Assets Hebelwirkung zu erzielen, ist einfach.

Wenn Sie beispielsweise 10.000 $ in Ethereum (ETH) halten und optimistisch sind, können Sie Ihre ETH als Sicherheit bei Compound hinterlegen, 5.000 $ in USDC verleihen und diese 5.000 $ in USDC dann gegen weitere 5.000 $ in ETH eintauschen. Dadurch erhalten Sie eine 1,5-fache Hebelwirkung auf die ETH, was Ihnen ein ETH-Engagement von 15.000 US-Dollar im Vergleich zu Ihrem anfänglichen Kapital von 10.000 US-Dollar verschafft.

Wenn Sie pessimistisch sind, können Sie sich auch dafür entscheiden, Stablecoins einzuzahlen und ETH auszuleihen. Wenn der ETH-Preis sinkt, können Sie ETH zu einem niedrigeren Preis auf dem Markt kaufen und die Schulden abbezahlen.

Da Sie Kredite über ein dezentrales Protokoll aufnehmen, ist es wichtig zu beachten, dass Sie möglicherweise liquidiert werden, wenn der Wert der Sicherheit sinkt oder der Wert des Vermögenswerts, den Sie leihen, einen bestimmten Schwellenwert überschreitet.

Hebelwirkung beim Margenhandel

Mit DeFi-Krediten können Sie mit diesen digitalen Vermögenswerten machen, was Sie wollen. Der DeFi-Margin-Handel konzentriert sich mehr auf die Vergrößerung der Positionsgröße (Erhöhung der Kaufkraft) und gilt als echte „gehebelte Position“. Es gibt jedoch einen wichtigen Unterschied: Während eine Margin-Position offen bleibt, dienen die Vermögenswerte des Händlers als Sicherheit für die geliehenen Mittel.

dYdX ist eine bekannte dezentrale Margin-Handelsplattform, die einen maximalen Hebel von 5x ermöglicht. Beim Margin-Handel auf dYdX verwenden Händler ihre eigenen Mittel als Sicherheit, erhöhen ihr ursprüngliches Kapital um ein Vielfaches und nutzen diese verstärkten Mittel, um größere Investitionen zu tätigen.

Händler sind verpflichtet, mit dem Handel verbundene Zinsen und Gebühren zu zahlen. Die Position wird nicht virtuell aufgebaut, sondern beinhaltet die tatsächliche Kreditaufnahme und den Kauf/Verkauf.

Wenn sich der Markt in eine negative Richtung bewegt, ist das Vermögen des Händlers möglicherweise nicht in der Lage, das geliehene Geld vollständig zurückzuzahlen. Um dies zu verhindern, wird das Protokoll Ihre Position liquidieren, bevor ein bestimmtes Liquidationsverhältnis erreicht wird.

Wie verändert sich die Hebelwirkung im Margenhandel?

Nehmen wir an, Sie haben eine 3-fache Long-Position in der ETH auf Marge, sind aber nicht bereit, Ihr Engagement von Zeit zu Zeit anzupassen.

Sie halten 100 $ in USDC, leihen sich weitere 200 $ in USDC und handeln 300 $ in ETH, um die gewünschte Long-Position in ETH aufzubauen. Der Hebel beträgt 300 $ / 100 $ = 3x.

Wenn der ETH-Preis um 20 % steigt, beträgt Ihr Gewinn 300 (1+20 %) – 300 = 60 $. Ihr Risiko im Vergleich zur Liquidation ist geringer und die tatsächliche Hebelwirkung verringert sich auf 360/(360-200) = 2,25x. Mit anderen Worten: Sie entschulden automatisch, wenn der ETH-Preis steigt.

Wenn der ETH-Preis um 20 % sinkt, beträgt Ihr Verlust 300 (1-20 %) -300 = -60 $. Wenn es um die Liquidation geht, sind Sie in einer riskanteren Lage und die tatsächliche Hebelwirkung erhöht sich automatisch auf 240/(240-200) = 6x. Mit anderen Worten: Sie gleichen Ihre Hebelwirkung neu aus, wenn der ETH-Preis sinkt, was darauf hinweist, dass Sie sich in einer höheren Risikoposition als zuvor befinden.

Während Sie vielleicht denken, dass Sie durch den Handel mit einer festen 3-fachen Marge einen konstanten Hebel beibehalten, ändert sich der Hebel in Echtzeit ständig. Schauen Sie sich die Tabelle unten an, um zu sehen, wie sich die Hebelwirkung aufgrund von Preisänderungen ändert[1].

Unbefristeter Vertragshebel

Unbefristete Kontrakte ähneln herkömmlichen Terminkontrakten, haben jedoch kein Ablaufdatum. Unbefristete Verträge ahmen den margenbasierten Spotmarkt nach und werden daher nahe am zugrunde liegenden Referenzindexpreis gehandelt.

Es gibt viele DeFi-Projekte, die Händlern unbefristete Verträge anbieten, wie z. B. dYdX, MCDEX, Perpetual Protocol, Injective usw. Vielen Händlern fällt es möglicherweise schwer, den Unterschied zwischen Margin-Handel und unbefristeten Verträgen zu unterscheiden – tatsächlich beinhalten beide die Hebelwirkung des Benutzers.

Es gibt jedoch einige Unterschiede bei Hebelmechanismen, Gebühren und Hebelniveaus.

Bei unbefristeten Verträgen handelt es sich um Derivate, die mit synthetischen Vermögenswerten handeln und die Merkmale eines Margin-Handels aufweisen. Der Preis des zugrunde liegenden Vermögenswerts wird auf synthetische Weise verfolgt, ohne dass der tatsächliche zugrunde liegende Vermögenswert gehandelt werden muss. Beim Margin-Handel handelt es sich jedoch um die tatsächliche Kreditaufnahme und den Handel mit tatsächlichen Krypto-Assets.

Mit dem Aufkommen unbefristeter Verträge entstand das Konzept der Finanzierungssätze, deren Zweck darin besteht, den Handelspreis unbefristeter Verträge mit dem zugrunde liegenden Referenzpreis in Einklang zu halten. **Wenn der Vertragspreis höher ist als der Spotpreis, zahlen Long-Positionen Short-Positionen. **Mit anderen Worten: Händler müssen ständig Gebühren für die Kreditaufnahme zahlen.

Der Hebel bei unbefristeten Verträgen ist in der Regel höher als beim Margin-Handel und kann bis zum 100-fachen betragen. Die Liquidations- und Real-Leverage-Mechanismen sind die gleichen wie beim Margin-Handel.

Gehebelte Token

Leveraged Tokens sind Derivate, die den Inhabern ein gehebeltes Engagement im Kryptowährungsmarkt ermöglichen, ohne sich um die aktive Verwaltung einer gehebelten Position kümmern zu müssen. Sie bieten den Inhabern zwar ein gehebeltes Engagement, verlangen jedoch nicht, dass sie sich mit Margen, Liquidation, Sicherheiten oder Finanzierungssätzen befassen.

Der größte Unterschied zwischen Leveraged Tokens und Margin Trading/Perpetual Contracts besteht darin, dass Leveraged Tokens regelmäßig neu gewichtet werden oder wenn ein bestimmter Schwellenwert erreicht wird, um einen bestimmten Leverage aufrechtzuerhalten.

Dies unterscheidet sich offensichtlich vom Margin-Handel und unbefristeten Verträgen – die tatsächliche Hebelwirkung dieser Produkte ändert sich ständig aufgrund von Preisbewegungen, auch wenn der Händler möglicherweise ursprünglich eine Hebelhöhe angegeben hat.

Schauen wir uns an, wie die Neuausrichtung im obigen 3x-ETH-Beispiel funktioniert:

Sie halten 100 USDC und kaufen einen ETHBULL (3x) Leveraged Token. Das Protokoll leiht sich automatisch 200 USDC aus und handelt mit 200 USD ETH.

Nehmen wir an, der Preis der ETH steigt um 20 % und der Preis des ETHBULL (3x)-Tokens steigt auf 300*(1+20 %)-200 = 160 $, bevor es zu einer Neuausrichtung kommt. Jetzt liegt Ihr tatsächlicher Hebel bei 2,25 (360/160), was niedriger ist als der Ziel-Hebel.

Im Rahmen des Neuausrichtungsprozesses wird das Protokoll mehr USD aus dem Stablecoin-Pool leihen und zusätzliche ETH-Token kaufen, um die Hebelwirkung wieder auf das Dreifache zu erhöhen. In unserem Beispiel leiht sich das Protokoll weitere 120 US-Dollar und tauscht sie gegen ETH ein. Daher beträgt der Gesamthebel wieder (360+120)/160 = 3-mal.

Nehmen wir an, der Preis der ETH sinkt um 20 % und der Preis des ETHBULL (3x)-Tokens fällt auf 300*(1-20 %)-200 = 40 $, bevor es zu einer Neuausrichtung kommt. Jetzt beträgt Ihr tatsächlicher Hebel 6 (240/40), was höher ist als der Ziel-Hebel.

In diesem Fall wird das Protokoll ETH-Token verkaufen und ausstehende Schulden zurückzahlen, um die Hebelwirkung zu verringern. In diesem Beispiel verkauft das Protokoll ETH im Wert von 120 US-Dollar, um den Pool zu bezahlen. Die Schulden belaufen sich auf 80 $ und die Gesamtverschuldung beträgt wiederum (240-120)/40 = 3x.

Mit anderen Worten: Gehebelte Token werden bei Gewinnen automatisch eine neue Hebelwirkung erzielen und bei Verlusten ihre Hebelwirkung verringern, um ihre angestrebten Hebelwirkungsniveaus wiederherzustellen. Wenn dieser Mechanismus auch bei ungünstigen Markttrends gut funktioniert, werden Leveraged-Token-Inhaber nicht liquidiert, da der Deleveraging-Mechanismus das effektive Leverage-Niveau des Benutzers kontinuierlich verringert.

Daher unterliegen Kreditpools in einem Leveraged-Token-Modell keinem Liquidationsrisiko und sind sicherer als Kreditpools im Margin-Handel.

Nutzen Sie Anwendungsfälle

Wir haben bereits einige gängige DeFi-Protokoll-Hebeltypen kennengelernt. Als nächstes werden wir die Anwendung von Hebelwirkung anhand spezifischer DeFi-Protokolle im Detail erläutern.

GMX

GMX [2] ist eine dezentrale Spot- und Dauerbörse, die Händlern die Möglichkeit bietet, Vermögenswerte mit bis zu 50-facher Hebelwirkung zu handeln. Das Protokoll läuft derzeit auf Arbitrum und Avalanche. Bei GMX verfügen Händler über umfassende Kenntnisse über ihre Kontrahenten, was sich völlig vom Handel an CEX unterscheidet. GMX unterscheidet sich von anderen unbefristeten Vertragsprotokollen wie dYdX dadurch, dass es vollständig in der Kette arbeitet und die AMM-Funktionalität nutzt, um gehebelten Handel zu ermöglichen.

Was GMX von anderen Diensten unterscheidet, ist, dass es sich um eine dezentrale Börse handelt, die Leveraged-Trading-Dienste anbietet. In dieser Hinsicht kombiniert es eine ähnliche Erfahrung wie andere DeFi-Börsen wie Uniswap mit gehebelten Handelsdiensten, die von Unternehmen wie Binance angeboten werden.

GMX verfügt über einen Liquiditätspool, GLP, einen Multi-Asset-Pool, der Liquidität für den Margin-Handel bereitstellt: Benutzer können Long/Short-Positionen eingehen und Geschäfte ausführen, indem sie GLP-Token prägen und vernichten. Der Pool erwirtschaftet LP-Gebühren aus dem Handel und Leveraged Trades, die an GMX- und GLP-Inhaber ausgeschüttet werden.

Um mit Hebelwirkung zu handeln, hinterlegen Händler Sicherheiten im Protokoll. Händler können eine Hebelwirkung bis zum 50-fachen wählen. Je höher die Hebelwirkung, desto höher der Liquidationspreis. Mit steigenden Kreditgebühren erhöht sich der Liquidationspreis allmählich.

Wenn ein Händler beispielsweise eine Long-Position bei ETH eingeht, „mietet“ er das Aufwärtspotenzial der ETH aus dem GLP-Pool. Die Vermögenswerte im GLP-Pool werden jedoch nicht tatsächlich geleast.

Beim Schließen einer Position werden Gewinne aus dem GLP-Pool in Form von Long-Tokens ausgezahlt, andernfalls werden Verluste von der Sicherheit abgezogen und in den Pool eingezahlt. GLP profitiert von den Verlusten der Händler und profitiert von den Gewinnen der Händler.

Dabei zahlen Händler Handelsgebühren, Eröffnungs-/Schließungsgebühren und Kreditgebühren als Gegenleistung für den Vorteil, mit bestimmten Token (BTC, ETH, AVAX, UNI und LINK) Long/Short-Positionen gegenüber dem US-Dollar einzugehen.

Merkle-Handel

Merkle Trade[3] ist eine dezentrale Handelsplattform, die den Handel mit Kryptowährungen, Devisen und Rohstoffen mit einem Hebel von bis zu 1.000x und erweiterten benutzerorientierten Handelsfunktionen bietet. Merkle Trade basiert auf der Aptos-Blockchain und bietet erstklassige Leistung und Skalierbarkeit. Im Vergleich zu Gains Network weist es geringere Transaktionsverzögerungen und Bearbeitungsgebühren auf und bietet gleichzeitig die gleiche hohe Hebelwirkung.

Im Gegensatz zu den meisten Börsen gibt es bei Merkle Trade kein Orderbuch. Stattdessen fungiert Merkle LP als Kontrahent bei jedem Trade, sammelt Sicherheiten, wenn Händler Geld verlieren, und zahlt Gewinne aus geschlossenen Trades mit positiven Renditen aus.

  • Handeln Sie Kryptowährungen, Devisen und Rohstoffe mit bis zu 1.000-fachem Hebel

Merkle Trade zielt darauf ab, vom ersten Tag an eine breite Palette an Handelspaaren anzubieten, darunter Kryptowährungen, Devisen und Rohstoffe, und bietet einige der höchsten Hebelwirkungen auf dem Markt, bis zu 150x bei Kryptowährungen und 1.000x bei Devisen.

  • Auftragsausführung zu fairen Preisen, Latenz im Millisekundenbereich, minimaler Slippage

Unterstützt durch die bisher von Aptos generierte Blockchain mit der niedrigsten Latenzzeit, das schnellstmögliche On-Chain-Transaktionserlebnis. Für Händler bedeutet dies ein schnelleres Handelserlebnis mit weniger Preisschwankungen aufgrund von Ausführungsverzögerungen.

  • Dezentraler, nicht verwahrter Handel ohne Kontrahentenrisiko

Händler handeln mit einem Liquiditätspool (Merkle LP), der als Gegenpartei für jeden Handel im Protokoll fungiert. Alle Transaktionen und Abrechnungen werden durch Smart Contracts ausgeführt und es gibt zu keinem Zeitpunkt eine Verwahrung der Benutzergelder.

  • Mindestbearbeitungsgebühr

Merkle Trade behauptet, eine der niedrigsten Gebühren auf dem Markt zu haben. Zum Start betragen die Gebühren nur 0,05 % für Kryptowährungs-Handelspaare und nur 0,0075 % für FX-Handelspaare.

dYdX

dYdX[4] ist eine dezentrale Börse (DEX), die Benutzern die Möglichkeit gibt, effizient mit unbefristeten Verträgen zu handeln und gleichzeitig ihre Vermögenswerte vollständig zu kontrollieren. Seit seiner Einführung im Jahr 2021 hat dYdX V3 eine einzigartige nicht verwahrte Layer-2-Skalierungslösung zur Implementierung seiner Börse eingeführt, sein Orderbuch und seine Matching-Engine werden jedoch weiterhin zentral verwaltet.

Und jetzt, mit dYdX V4, entwickelt sich das Protokoll zu einer eigenen Kette und überarbeitet das gesamte Protokoll vollständig, um eine vollständige Dezentralisierung bei gleichzeitiger Erhöhung des Durchsatzes zu erreichen. dYdX umfasst außerdem drei Funktionen: Kreditvergabe, Margin-Handel und unbefristete Verträge. Der Margin-Handel verfügt über eine Kreditaufnahmefunktion. Die von den Benutzern eingezahlten Gelder bilden automatisch einen Fondspool. Wenn während der Transaktion nicht genügend Geld vorhanden ist, werden sie automatisch geliehen und Zinsen gezahlt.

Nutzen Sie die Sicherheitsanalyse

Wir haben die gängigen Arten und Anwendungen der Hebelwirkung in DeFi vorgestellt. Ebenso gibt es bei der Gestaltung der Hebelwirkung noch viele Sicherheitsprobleme, die unsere Aufmerksamkeit verdienen. Wir werden die Sicherheitsprobleme und Prüfpunkte der DeFi-Hebelwirkung anhand spezifischer Prüffälle analysieren.

Unterscheiden Sie zwischen Limit- und Market-Orders

In den meisten gehebelten Börsenanwendungen gibt es Limit-Orders und Markt-Orders, und es ist notwendig, Limit-Orders und Markt-Orders strikt zu unterscheiden und zu überprüfen. Als nächstes werden wir eine detaillierte Analyse der Probleme durchführen, die wir im Merkle Trade-Audit gefunden haben [5].

lass jetzt = Zeitstempel::jetzt_Sekunden(); wenn (jetzt - Bestell.erstellt_Zeitstempel > 30) { cancel_order_internal<PairType, CollateralType>( Bestell-ID, Bestellung, T_CANCEL_ORDER_EXPIRED ); return };

Dieser Teil des Codes dient der Überprüfung in der Bestellfunktion. In dieser Funktion wird überprüft, ob seit der Erstellung der Bestellung mehr als 30 Sekunden vergangen sind. Wenn die Bedingungen erfüllt sind, wird cancel_order_internal() aufgerufen, um die Bestellung zu stornieren. Wenn es sich bei der Order jedoch um eine Limit-Order handelt, bedeutet dies, dass die Order einen bestimmten, vom Händler festgelegten Preis hat, zu dem sie bereit ist, den Vermögenswert zu kaufen oder zu verkaufen. Dieses Urteil sollte bei der Ausführung von Limit-Orders nicht angewendet werden, da dies dazu führen kann, dass die meisten Limit-Orders nicht ausgeführt werden. Daher ist es wichtig, die Handelslogik von Limit-Orders und Market-Orders strikt zu unterscheiden.

Hebelberechnungsfehler

Berechnungsfehler waren schon immer ein sehr häufiges Problem bei DeFi, und sie treten besonders häufig bei der Hebelwirkung auf. Wir werden die bei Prüfungen Dritter des Unstoppable[6]-Protokolls festgestellten Probleme nutzen, um eine eingehende Untersuchung der Hebelberechnung durchzuführen .

Schauen wir uns den Code in Unstoppable an, der die Hebelwirkung berechnet:

def berechne den Hebel (Positionswert: uint256, Schuldenwert: uint256, Marginwert: uint256) -> uint256: if Positionswert <= Schuldenwert: # uneinbringliche Schulden return max_value(uint256) return ( PRECISION * (_debt_value + marginvalue) / (_position_value - Debtvalue) / PRECISION ) Die Funktion „calcleleverage“ führt dazu, dass der Leverage falsch berechnet wird, indem „debtvalue + marginvalue“ als Zähler anstelle von „positionvalue“ verwendet wird. Die drei Eingabeparameter dieser Funktion, positionvalue, _debt_value und marginvalue, werden alle durch die Preisinformationen bestimmt, die das Orakel in der Chainlink-Kette bereitstellt. wobei _debt_value den Wert der Umrechnung des Schuldenanteils der Position in einen USD-Schuldenbetrag darstellt. _margin_value stellt den aktuellen Wert (in USD) des anfänglichen Margin-Betrags der Position dar. _position_value stellt den aktuellen Wert (in USD) des anfänglichen Positionsbetrags der Position dar.

Das Problem bei der obigen Berechnung besteht darin, dass Schuldenwert + Margenwert nicht den Wert der Position darstellen. Der Hebel ist das Verhältnis zwischen dem aktuellen Positionswert und dem aktuellen Margin-Wert. _position_value – Debtvalue ist korrekt, es stellt den aktuellen Margin-Wert dar, aber Debtvalue + Marginvalue stellt nicht den aktuellen Wert der Position dar, da es keine Garantie dafür gibt, dass der Liability-Token und der Positions-Token entsprechende Preisschwankungen aufweisen.

Zum Beispiel:

Der Haftungs-Token ist ETH und der Positions-Token ist BTC.

Mit 1 ETH als Margin leiht sich Alice 14 ETH (2.000 $ pro ETH) und erhält 1 BTC (30.000 $ pro BTC) in Form von Positionstoken. Der Hebel beträgt 14.

Am nächsten Tag lag der Preis der ETH immer noch bei 2.000 $/ETH, aber der Preis von BTC fiel von 30.000 $/BTC auf 29.000 $/BTC.

Zu diesem Zeitpunkt sollte der Hebel (_position_value == 29.000)/(_position_value == 29.000 - Debtvalue == 28.000) = 29 betragen

Anstelle des im Vertrag berechneten Wertes: (_debt_value == 28.000 + marginvalue == 2.000) / (_position_value == 29.000 - Debtvalue == 28.000) = 30.

Um dieses Problem zu beheben, sollte daher die oben genannte korrekte Formel zur Berechnung der Hebelwirkung in Smart Contracts verwendet werden. Fehler bei der Hebelberechnung können bei Preisvolatilität zu unfairen Liquidationen oder zu stark gehebelten Positionen führen.

Bei Smart Contracts ist die Sicherstellung korrekter Leverage-Berechnungen von entscheidender Bedeutung, um die Robustheit des Systems und die Interessen der Benutzer aufrechtzuerhalten. Die korrekte Hebelberechnung sollte auf dem Verhältnis zwischen dem aktuellen Wert der Position und dem aktuellen Margin-Wert basieren. Wenn eine falsche Berechnungsformel verwendet wird, kann dies dazu führen, dass das System unangemessen auf Preisänderungen reagiert, Positionen liquidiert, die nicht liquidiert werden sollten, oder dass übermäßig gehebelte Positionen weiterhin bestehen bleiben, wodurch sich die Risiken für das System und die Benutzer erhöhen.

logischer Fehler

Logikfehler erfordern besondere Aufmerksamkeit bei der Prüfung von Smart Contracts, insbesondere bei komplexer Logik wie DeFi-Leverage-Transaktionen.

Lassen Sie uns die Probleme nutzen, die bei externen Prüfungen von Tigris[7] festgestellt wurden (Tigris ist eine dezentrale Handelsplattform mit synthetischer Hebelwirkung, die auf Arbitrum und Polygon basiert), um die logischen Probleme zu diskutieren, auf die bei der DeFi-Hebelwirkung geachtet werden muss.

Schauen wir uns die Logik der Limit-Closing-Funktion in Tigris an:

Funktion limitClose( uint id, bool tp, PriceData calldata priceData, Bytes calldata Signatur ) extern { checkDelay(id, false); (uint limitPrice, Adresse tigAsset) = tradingExtension._limitClose(_id, tp, priceData, Signatur); closePosition(_id, DIVISION_CONSTANT, limitPrice, Adresse(0), tigAsset, true); } Funktion limitClose( uint id, bool tp, PriceData calldata priceData, Bytes calldata Signatur ) externe Ansicht gibt zurück(uint limitPrice, Adresse tigAsset) { checkGas(); IPosition.Trade Speicher Handel = Position.Trades(id); tigAsset = trade.tigAsset; getVerifiedPrice(_trade.asset, priceData, Signatur, 0); uint256 Preis = priceData.Preis; wenn (_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 wird zum benutzerdefinierten Preis geschlossen, NICHT zum Marktpreis limitPrice = _trade.slPrice; } }

Wenn Stop-Loss zum Schließen einer Position verwendet wird, ist der Schlusskurs des Benutzers der vom Benutzer festgelegte Stop-Loss-Preis und nicht der aktuelle Preis des Vermögenswerts. In direktionalen Märkten und mit hohem Leverage können Benutzer dies missbrauchen, um praktisch risikofreien Handel zu erreichen. Benutzer können eine Long-Position eröffnen und einen Stop-Loss-Preis festlegen, der 0,01 $ unter dem aktuellen Preis liegt.

Wenn der Preis bei der nächsten Aktualisierung sofort sinkt, schließen sie die Position zum Einstiegspreis und zahlen nur Eröffnungs- und Schlussgebühren. Wenn die Preise steigen, können sie deutlich zulegen. Infolgedessen können Benutzer die Stop-Loss-Preisfestlegungsmethode missbrauchen, um Transaktionen mit hoher Hebelwirkung, hohem Aufwärtspotenzial und geringem Abwärtsrisiko zu eröffnen.

Preisschwankungen

Die Auswirkungen von Preisschwankungen auf die DeFi-Hebelwirkung sind sehr wichtig. Nur wenn Sie Preisschwankungen stets berücksichtigen, können Sie die Sicherheit der Hebelvereinbarung gewährleisten. Nehmen wir die Probleme, die bei der Prüfung des DeFiner[8]-Protokolls durch Dritte festgestellt wurden, als Beispiel für eine eingehende Analyse:

Das DeFiner-Protokoll führt vor der Verarbeitung von Auszahlungen zwei Prüfungen durch.

Zunächst prüft die Methode, ob der vom Benutzer zum Abheben angeforderte Betrag den Saldo des Vermögenswerts übersteigt:

Funktion Abheben (Adresse Kontoadresse, Adresse Token, uint256 Betrag) extern nur autorisiert gibt zurück (uint256) { // Prüfen, ob der Abhebungsbetrag geringer ist als das Guthaben des Benutzers erforderlich (Betrag <= getDepositBalanceCurrent (_token, Kontoadresse), „Unzureichendes Guthaben.“); uint256 AusleiheLTV = globalConfig.tokenInfoRegistry ().getBorrowLTV (Token);

Zweitens prüft die Methode, ob Abhebungen dem Benutzer eine zu große Hebelwirkung bescheren würden. Der abgehobene Betrag wird von der „Kreditkraft“ des Benutzers des aktuellen Preises abgezogen. Wenn der gesamte Kreditwert des Benutzers die neue Kreditkraft übersteigt, schlägt die Methode fehl, da der Benutzer nicht mehr über genügend Sicherheiten zur Absicherung seiner Kreditposition verfügt. Diese Anforderung wird jedoch nur überprüft, wenn der Benutzer nicht bereits überlastet ist:

if (getBorrowETH(_accountAddr) <= getBorrowPower(_accountAddr)) require( getBorrowETH(_accountAddr) <= getBorrowPower(_accountAddr).sub( amount.mul(globalConfig.tokenInfoRegistry().priceFromAddress(token)) .mul(borrowLTV).div(Utils.getDivisor(address(globalConfig), _token)).div(100) ), "Unzureichende Sicherheiten bei Auszahlung.");

Wenn ein Benutzer mehr geliehen hat, als seine „Kreditkraft“ zulässt, können Abhebungen trotzdem vorgenommen werden. Diese Situation kann in verschiedenen Situationen auftreten, am häufigsten sind Preisschwankungen. Das Protokoll berücksichtigte nicht die Auswirkungen von Preisschwankungen auf das Protokoll, die dieses Problem verursachten.

andere

Zusätzlich zu der oben erwähnten fehlenden Unterscheidung zwischen Limit-Orders und Market-Orders, Berechnungsfehlern, Logikfehlern und den Auswirkungen von Preisschwankungen gibt es viele Sicherheitsaspekte im Zusammenhang mit Leverage-Vereinbarungen, auf die wir achten müssen. Dazu gehören unter anderem Probleme wie Blitzkreditangriffe, Preismanipulation, Oracle-Sicherheit, Zugangskontrolle, unzureichende oder fehlende strenge Hebelüberprüfungen und andere Probleme. Beim Entwurf und der Implementierung eines Leverage-Protokolls müssen diese Faktoren sorgfältig und sorgfältig berücksichtigt werden, um die Robustheit des Protokolls und die Sicherheit der Benutzerressourcen zu gewährleisten. Präventive Maßnahmen, Echtzeitüberwachung und Notfallpläne sind ebenfalls von entscheidender Bedeutung, um potenzielle Risiken zu reduzieren und die Interessen der Benutzer zu schützen.

Zusammenfassen

Die Einführung des Hebelhandels in DeFi-Protokollen verleiht dem Markt zwar eine größere Bedienbarkeit, bringt aber auch komplexere Handelsmechanismen mit sich. Obwohl Leveraged Trading den Nutzern mehr Investitionsmöglichkeiten bietet, sind auch seine potenziellen Risiken und Herausforderungen für die Protokollsicherheit bedeutender geworden.

Mit zunehmender Hebelwirkung wird der Betrieb des Protokolls flexibler, es wird jedoch auch anfälliger und anfälliger für verschiedene Sicherheitsbedrohungen. Dazu gehören die Möglichkeit, dass nicht strikt zwischen Limit- und Marktaufträgen unterschieden wird, Berechnungsfehler, Logikfehler und eine extreme Empfindlichkeit gegenüber Faktoren wie Preisschwankungen. In diesem Fall müssen wir der Sicherheit des Protokolls mehr Aufmerksamkeit schenken, um sicherzustellen, dass die Vermögenswerte der Benutzer wirksam geschützt sind.

ScaleBit ist ein führendes Blockchain-Sicherheitsteam im Web3-Bereich mit Sitz im Silicon Valley, Singapur, Hongkong, Taiwan und anderen Orten. Wir haben Blockchain-Sicherheitslösungen für mehr als 200 Institutionen und Projekte im globalen Web3-Bereich bereitgestellt, insgesamt mehr als 180.000 Codezeilen geprüft und Benutzervermögen im Wert von mehr als 8 Milliarden US-Dollar geschützt. Machen Sie Sicherheit für alle zugänglich! Wenn Sie Sicherheitsüberprüfungen benötigen, können Sie sich gerne an uns wenden. Wir erstellen detaillierte, umfassende und professionelle Sicherheitslösungen für Sie, um Sie und den Web3-Bereich zu schützen!