Flash loan exploit
Een flash loan-exploit is een aanval op een DeFi-protocol. De aanvaller leent tijdelijk veel crypto om een fout in dat protocol te misbruiken.
Wat is een flash loan-exploit?
Een flash loan is een lening zonder onderpand. De lening moet wel, inclusief fee, binnen dezelfde transactie worden terugbetaald. Een transactie is hier één pakket van handelingen dat tegelijk wordt uitgevoerd.
Lukt de terugbetaling niet? Dan draait de blockchain het hele pakket terug. Bij een exploit gebruikt een aanvaller de tijdelijke lening om bijvoorbeeld een prijs te veranderen. Daarna kan een ander protocol een verkeerde beslissing nemen.
De fout zit meestal niet in de flash loan zelf. Het probleem zit vaak in de prijsdata, regels of smart contracts van het aangevallen protocol.
Een voorbeeld van een flash loan-exploit
Een aanvaller leent tijdelijk veel crypto en wisselt daarmee een token op een DEX. Door die grote wissel kan de prijs in die ene pool kort sterk stijgen.
Een lendingprotocol ziet die hoge prijs en waardeert het onderpand van de aanvaller te hoog. Daardoor kan de aanvaller mogelijk te veel crypto lenen. Daarna betaalt de aanvaller de flash loan terug. Als alle stappen niet binnen dezelfde transactie lukken, wordt alles teruggedraaid.
Waarom zijn flash loan-exploits belangrijk in crypto?
Flash loan-exploits kunnen gebruikers, liquiditeitsverschaffers en een DAO crypto kosten. Het aangevallen protocol kan bijvoorbeeld met te weinig onderpand of een tekort achterblijven. De schade ligt meestal bij dat protocol, niet bij de verstrekker van de flash loan.
In nieuws over DeFi-aanvallen lees je vaak dat een prijsoracle, een DEX-prijs of governance is misbruikt. Een oracle vertelt een protocol wat een token waard is. Vertrouwt een protocol op één tijdelijk beïnvloedbare prijs, dan kan dat gevaarlijk zijn.
Een flash loan is niet automatisch slecht. Flash loans kunnen ook normaal worden gebruikt, bijvoorbeeld voor arbitrage. Een melding over een flash loan-exploit betekent vooral dat een aanvaller een zwakke plek in een protocol heeft benut.