attack crypto

Wat is een Sandwich Attack in DeFi? Volledige uitleg voor beginners!

We kunnen haast geen wereld meer voorstellen zonder DeFi. Van het oneindig swappen via je MetaMask tot exorbitante rentes krijgen wanneer jij liquiditeit gaat toevoegen; de toekomst ligt aan onze voeten. Maar deze grote vrijheid, gaat ook schuil onder een reeks attacks waarbij iedereen maar al te graag uit is op jouw crypto.

In DeFi gebruiken we geen orderboeken, waarbij we crypto peer-to-peer kopen, maar handelen op basis van een Automated Market Maker en smart contracts. Maar dit is ook niet geheel zonder gevaar. Bots kunnen je transacties vroegtijdig opsporen en je een veel slechtere prijs geven, dan dat jij eigenlijk zou kunnen krijgen. Hoe? Ontdek in deze blog alles over Sandwich Attacks in DeFi!

Bekijk snel

Bekijk in deze video een uitgebreide uitleg over Sandwich Attacks en hoe deze werken: 

Wat is een Sandwich Attack?

Een Sandwich Attack is een front running attack op een decentrale exchange (DEX), waarbij invloed wordt uitgeoefend op de initiële prijs bij een swap. De aanvaller neemt een voorrang op deze transactie en koopt deze munt tegen de huidige voordelige prijs en verkoopt deze vervolgens aan een duurdere prijs aan het slachtoffer. Het slachtoffer zit tussen beide transactie, zoals een sandwich. Een sandwich attack is een veelvoorkomende aanval die plaatsvindt in de wereld van DeFi.

Alvorens we kunnen uitleggen wat een sandwich attack precies is en hoe dit werkt, is het belangrijk om te gaan kijken naar de verschillende termen die hier een grote rol bij spelen.

Wat is een AMM?

Een AMM is een Automated Market Maker op een decentrale exchange (DEX), zoals UniSwap of PancakeSwap. Wanneer je handelt op een centrale exchange, zoals Bitvavo of Binance, heb je een orderboek waarbij een reeks koop-en verkooporders klaar staan. Zo kan je aangeven tegen welke exacte prijs jij bereid bent om bijvoorbeeld Bitcoin (BTC) te kopen. Hierbij koop je als het ware Bitcoin van iemand anders, die bereid is zijn of haar Bitcoin te verkopen tegen die bepaalde prijs.

Een AMM werkt niet met een orderboek, maar werkt aan de hand van decentrale liquiditeitspools door middel van smart contracts. Wanneer gebruikers van de AMM willen traden, zien zij een bepaalde prijs, een prijs waartegen zij bereid zijn te kopen. Indien akkoord, geven ze goedkeuring voor deze transactie. Merk op dat je op centrale exchange een limiet order kan plaatsen, waarbij je koopt tegen een bepaalde prijs. Ondanks dat deze ontwikkeling gaande is in DeFi 2.0, is het gebruik van limiet orders in DeFi nog zeer ongebruikelijk.

Image
uniswap pancakeswap
INDEEDLYxZilverlight/Shutterstock.com
Je bent offline
 
 
 

Liquiditeit

Liquiditeit van deze AMM is dus cruciaal om handel mogelijk te maken. Hoe schaarser een bepaalde asset in deze liquiditeitspool, des te moeilijker het is om hierin te handelen en des te groter het effect op de prijs hiervan zal zijn. Daarom is het providen van liquiditeit in DeFi voor veel investeerders interessant, omdat ze hierdoor hoge rentes ontvangen. Hoe kleiner de liquiditeitspool, hoe hoger de rentes die je hiervoor ontvangt. Maar ook hoe hoger het risico, want is er onvoldoende liquiditeit, dan kan je problemen hebben met het opnemen van je eigen valuta. De prijs wordt ook bepaald door een specifiek algoritme en uitgevoerd door peer-to-contract transacties.

Front running attack & mempool

De Sandwich Attack is onderdeel van een frontrunning attack. Zoals het woord het zegt, loopt er iemand vóór jou, die als het ware de kaas van je brood eet. Hoe? Een transactie wordt niet meteen toegevoegd aan de blockchain, maar ze worden eerst verzameld als onderdeel van deze blokken. Een blok is dus een verzameling van allemaal transacties die klaar staan om uitgeveord te worden.

De nodes in het netwerk krijgen vervolgens melding van deze transacties. Wanneer nodes een kopie van deze transactie ontvangen, voegen ze deze toe aan de pool van ongebruikte transacties, genaamd de mempool.

Wanneer een nieuw blok wordt aangemaakt op de blockchain, verwerkt de maker van dit blok al deze ongebruikte transacties. De volgorde wordt bepaald door de hoeveelheid van de transactiekosten. Hoe hoger de gas fee, hoe sneller je transactie wordt voltooid.

Image
transacties blockchain
Olivier Le Moal/Shutterstock.com
Je bent offline
 
 
 

 

In deze enkele minuten gebeurt een front running attack. Ze profiteren van het proces, waarbij transacties worden toegevoegd op basis van transactiekosten. Een attacker heeft de mogelijkheid om ervoor te zorgen dat zijn transactie vóór elke andere transactie wordt verwerkt, door hogere transactiekosten op te nemen. In definitie is een front running attack het voorrecht om invloed uit te oefenen op informatie voor anderen dit kunnen.

Door te beschikken over deze extra informatie, weet een front runner dus welke transacties zich bevinden in de mempool en welke nog niet zijn toegevoegd in een block. Hierdoor kan een front-runner een transactie plaatsen in een block, voor iemand anders. Hoe? Door te kijken naar de transactiekost van de huidige transactie, en deze voorbij te steken door middel van een hogere transactiekost. Miners behandelen transacties met een hogere fee eerst.

In eerste instantie zou je denken dat dit logisch is, dat de persoon met de hoogste transactiekost voorrang krijgt. Maar front runners kunnen dit uitbuiten om andere gebruikers schade toe te dienen. Front runners kunnen deze strategie ook toepassen bij Ethereum Name Service. Stel je voor dat je een domeinnaam wil registreren bij Ethereum om ervoor te zorgen dat je netwerk goed wordt gevonden door middel van een leuke naam.

Een front runner kan deze informatie dus eerder zien en deze informatie gebruiken. Vervolgens kan deze front runner jou deze domeinnaam verkopen tegen een hogere prijs. Ethereum Name Service heeft zich beschermd tegen dit probleem, dit is slechts als voorbeeld.

Wat is slippage?

Slippage kennen we in DeFi wanneer de handelaar een andere prijs krijgt dan initieel was vooropgesteld. De prijs waartegen je order is uitgevoerd, komt dus niet overeen met de prijs die was aangevraagd. Naast het gebrek aan liquiditeit, kan ook een volatiele markt oorzaak zijn van deze slippage. Bijvoorbeeld wanneer jij een trade hebt klaarstaan, en de waarde van deze assets ineens dipt.

Hoe kan een front runner dit dus beïnvloeden? Door informatie te achterhalen van de transactie die nog niet is opgenomen in de block, om vervolgens deze prijs te veranderen zodat jij jouw trade enkel kan uitvoeren tegen een hogere prijs. Een front runner kan hier duizenden dollars mee verdienen door telkens dezelfde aanval uit te voeren.

Hoe hoger jij je slippage instelt op een DEX, hoe waarschijnlijker het is dat hier een frontrunner gebruik van maakt om de prijs te beïnvloeden. Hoe groter je silppage, des te meer jij bereid bent om in feite minder tokens te ontvangen. Deze front runners, meestal bots, merken dit op en zullen er alles aan doen, dat jij tegen het worst case scenario dat je ingeeft, jouw tokens krijgt. Kies je bijvoorbeeld voor 20% slippage? Dan zal je ook 20% krijgen, en geen 15%. Waarom? Als die mogelijkheid er wel zou zijn, gaat de front runner aan de haal met de betere deal.

Image
UniSwap AMM trade
app.uniSwap.org
Je bent offline
 
 
 

 

In bovenstaand voorbeeld zie je dat ik voor 0.0069 Ethereum wil investeren in Quant. Hiervoor ontvang ik 0.1532 QNT-tokens. Onder de prijszetting, zie je dat de prijsimpact in dit geval 0.00% is. Echter, we zien ook dat het minimum ontvangen na slippen van 25% nog maar 0.122 QNT-tokens zijn. Een aanzienlijk verschil, zeker op zo een kleine transactie. Wanneer ik deze transactie doorvoer, zal een front runner deze opmerken en dezelfde transactie invoeren, maar met een hogere gasfee. Hierdoor krijgt hij voorrang op de transactie en kan hij mij deze QNT-tokens verkopen tegen een hogere prijs dan gepland.

Ander fictief voorbeeld:

Je wil voor 5000 BUSD aan CAKE-tokens kopen tegen een koersprijs van 20 USD per token. Wanneer jij je slippage op 20% zet, ben je in principe bereid om één CAKE-token te kopen voor 24 BUSD elk. Vervolgens kan de aanvaller aan de haal gaan met deze 20% en op deze transactie dus 1.000 BUSD winst maken.

Image
sandwich attack example
Illustratie is afkomstig vanuit Youtube video in de inleiding
Je bent offline
 
 
 

Hoe werkt een Sandwich Attack?

Iemand wil een transactie uitvoeren en tokens kopen op een DEX. Een automatische bot houdt constant deze mempool in de gaten en detecteert deze transactie met de bijhorende transactiekosten. Deze bot zet dus een kooporder met een hogere gasfee, zodat hij voorrang krijgt op deze transactie. Meteen daarna, plaatst hij een verkooporder van hetzelfde aantal tokens maar dan met een lagere gasfee dan die van de initiële trader; het slachtoffer in dit geval. Resultaat? De bot koopt en verkoopt in hetzelfde block en verdient hier dus geld, dankzij het vooropgestelde percentage van slippage.  

Sandwich Attack Voorbeeld

Dankzij het transparante karakter van de blockchaintechnologie kunnen we alle transacties raadplegen en opvolgen. We bespreken onderstaand voorbeeld dankzij dextools, die ons meer informatie geeft over transacties op Pancakeswap, met het handelspaar BNB/One.  

Image
dextools
https://www.dextools.io/
Je bent offline
 
 
 

In bovenstaand voorbeeld zien we meteen hoe de sandwich attack werkt.

  1. Een koper heeft een order geplaatst, waarbij hij bereid is op 8,44 BNB te betalen per token tegen 31,841 ONE-tokens.
  2. De front runner ziet deze transactie en plaats eenzelfde order, maar met een hogere transactiekost, waardoor hij voorrang krijgt. Hij koopt maar liefst 15,56 BNB-tokens tegen 57 841 ONE-tokens.
  3. Vrijwel meteen daarna, verkoopt hij hetzelfde aantal ONE-tokens, namelijk 31 578 tegen een BNB-prijs van 8.4744. Hier betaalt de koper dus meer dan dat hij zou krijgen, waarbij de attacker dus aan de haal gaat met een deel van deze tokens.

Hoe vermijd je Sandwich Attacks?

Front running en sandwich attacks hebben invloed op het hele netwerk. Het zorgt er voor dat handelen in DeFi voor sommige niet langer aantrekkelijk is, ondanks dat de mogelijkheden in DeFi eindeloos zijn.  Wie wil er tenslotte meer betalen dan de huidige prijs? Daarom zijn er een aantal manieren om deze aanvallen te minimaliseren:

Limiet gasprijs

Deze aanvallen kunnen alleen plaatsvinden, omdat transacties met een hogere gasfee voorrang krijgen op anderen. Door een bepaalde limiet op deze gasprijs te zetten, zal er in mindere mate een voorkeursbehandeling plaatsvinden. De impact zal alvast minder groot zijn. Dit probleem kan je nooit helemaal wegnemen, want er zijn altijd verschil zijn in gas fee. Maar door dit verschil minder groot te maken, zal het vervolgens ook minder snel gebeuren. 

Vermijd pools met lage liquiditeit

Gebrek aan goede liquiditeit is nefast voor dit probleem. Hoe kleinere deze pool, hoe kleiner de kans dat een investeerder een goede prijs krijgt, omdat hier sneller sprake is van slippage. Hoe hoger de slippage, hoe meer winst er te halen valt door een sandwich attack.

Kleinere trades

Een sandwich attack is pas interessant bij grotere trades. Hoe groter de trade, des te groter de winstmarge. Een manier om sandwich attacks te vermijden is door je trade op te splitsen in verschillende kleinere transacties. Deze kleine transacties zijn voor front runners niet interessant genoeg. Het is dan wel zo dat je op deze kleinere transacties steeds een transactiekost betaalt in plaats van één fee op de gehele trade. Dit is een keuze die je zelf maakt.

Conclusie

De wereld van DeFi is een openbaring voor vele. Volledig gedecentraliseerd handelen op basis van smart contracts heeft veel mogelijk gemaakt. Maar wat velen niet weten is dat jij als investeerder nu ook de volledige verantwoordelijkheid draagt. With great power, comes great responsibilities.

In een wereld waarin iedereen een DEX kan lanceren, een NFT-collectie kan maken en zelfs smart contracts kan ontwikkelen, gebeuren attacks helaas steeds vaker. Scammers en attackers zullen op allerlei verschillende manieren een poging doen om toegang te krijgen tot jouw portefeuille of een deel van jouw tokens, zoals bij de sandwich attack. Dankzij het transparante karakter en de blockchaintechnologie, kunnen bots vrij snel transacties detecteren, alvorens deze vastgelegd zijn in een blok, om hier vervolgens profijt uit te halen door deze sandwich methode.

Wees je daarom altijd bewust van wat je dat, en wat de potentiële gevaren zijn.  Heb jij nog vragen over Sandwich Attacks of over DeFi? Vraag het in onze AllesOverCrypto Facebookgroep waar we inmiddels met meer dan 100.000 leden zijn! Het antwoord op een vraag over crypto vind je ook makkelijk bij onze FAQs. Verder kun je ook veel informatie vinden door je vraag + AllesOverCrypto te googelen.

Header image: Sergey Nivens/Shutterstock.com


Starten met crypto en geen idee waar je moet beginnen?

Kom dan naar onze gratis Online Bitcoin Training!

Bekijk hier wat je gaat leren!

Image
Online Bitcoin Training van allesovercrypto

 

 

 

Alle uitingen van AllesOverCrypto, waaronder begrepen alle producten (o.a. Crypto Signalen en de Crypto Masterclass), berichten en e-mails, zijn de professionele mening van AllesOverCrypto en kan op géén enkele wijze worden opgevat als een persoonlijke uitnodiging, een advies of enige aanbeveling om tot aankoop van één of meer cryptovaluta over te gaan en daarin te beleggen. AllesOverCrypto is geen financieel adviseur en beoogt dat uitdrukkelijk ook niet te zijn.

De uitingen van AllesOverCrypto hebben uitsluitend een educatief karakter en kunnen op geen enkele wijze als financieel, juridisch of fiscaal advies worden opgevat. AllesOverCrypto is geen financieel, juridisch- en/of fiscaal adviseur. Er komt geen adviesrelatie tot stand tussen jou en AllesOverCrypto.

De door AllesOverCrypto gepresenteerde informatie is door haar met de grootste aandacht en zorg samengesteld. AllesOverCrypto kan echter niet instaan voor de juistheid en/of volledigheid ervan. Het gebruik van deze informatie gebeurt op jouw eigen risico. Je dient ervan bewust te zijn dat de gepresenteerde informatie, mede door de snelheid waarmee de cryptomarkt zich beweegt, al snel achterhaald is dan wel kan zijn. Wees hiervan bewust bij het bestuderen van de informatie. Daarnaast wordt uitdrukkelijk verzocht de informatie zelf te verifiëren.

Eenieder die in één of meer cryptovaluta wil beleggen dient zijn/haar eigen onderzoek te doen alvorens een beslissing te nemen tot aan- of verkoop van cryptovaluta. AllesOverCrypto is op geen enkele wijze bij dit proces betrokken. Uitsluitend jijzelf bent verantwoordelijk voor jouw eigen aan-en verkoopbeslissingen. Het aankopen van cryptovaluta brengt vanwege de aard van het product en de volatiliteit van de cryptomarkt grote risico’s met zich mee. Deze risico’s zijn zo groot dat het zelfs mogelijk is je hele aankoopbedrag te verliezen. Koop dus geen cryptovaluta die je niet kunt veroorloven te verliezen.