Flash loan. Klinkt fancy, he? Dat is het ook wel! Maar eigenlijk is het niets meer dan de term doet vermoeden: het is een zeer ‘snelle’ lening. Hoe dat precies in elkaar zit, en wat je er allemaal mee kunt doen, bespreken we in dit artikel!

Wat is een flash loan?

Een flash loan is een lening waarmee je enorme hoeveelheden crypto, zonder onderpand en bijna zonder rente, kunt lenen. In ruil voor een zeer klein bedrag kun je hiermee beschikken over honderden miljoenen euro’s. Het addertje onder het gras is dat je de lening in dezelfde transactie moet terugbetalen als waarin je de lening bent aangegaan.

Technisch gezien is een flash loan een smart contract dat wordt uitgevoerd op een blockchain. De geleende gelden zijn afkomstig uit een liquiditeitspool, een pot met (crypto)geld die is ingebracht door een groot aantal gebruikers van het betreffende protocol. Daarom kun je een bedrag lenen dat maximaal net zo groot is als de volledige liquiditeitspool.

Het geld dat je met een flash loan leent kun je gebruiken voor van alles. Zo lang je het maar weer in dezelfde blockchain transactie terugbetaald. Hoelang zo een transactie duurt, hangt af van de blockchain die je gebruikt. Namelijk: hoe langer het duurt om een nieuw blok aan de blockchain toe te voegen, hoe langer je de tijd hebt. Bij de meeste blockchains heb je slechts enkele seconden de tijd om de lening terug te betalen.

Populaire protocollen waarop je flash loans kunt gebruiken zonder veel technische kennis zijn Aave en dYdX.

Hoe werkt een flash loan?

Een flash loan werkt als volgt:

  1. Je voert een smart contract uit waarmee je net zo veel geld leent als je wil.
  2. Met dit geld doe je wat jij wil.
  3. Het geleende bedrag betaal je terug in dezelfde transactie. Met andere woorden: voordat er een nieuw blok is geverifieerd (voordat de blocktime is verstreken).

In één blockchaintransactie kun je meerdere stappen uitvoeren. Zo kun je bijvoorbeeld ETH vastzetten en daarmee USDC lenen op protocol A, deze USDC weer voor de helft inruilen op protocol B voor LINK, om vervolgens deze USDC en LINK als liquiditeit te storten op protocol C. In dit voorbeeld worden drie stappen gezet in één transactie.

Zo werkt dat ook met een flash loan, aangezien dit altijd gebeurt in één blockchaintransactie. In theorie kun je duizenden stappen in één transactie zetten. Echter, in de praktijk komt dat nooit voor, omdat er slechts een maximale hoeveelheid transactie fee (uitgedrukt in gas of gwei) mag worden gespendeerd in één blok. Hoe meer stappen een transactie bevat, hoe meer gas er mee gestuurd moet worden.

“In één blockchaintransactie kun je meerdere stappen uitvoeren. Zo werkt dat ook met een flash loan.”

Om een flash loan te laten slagen, moet alles kloppen. Zo moet geleend geld altijd weer 100% worden terugbetaald, waardoor je niet zomaar geld kunt stelen door gigantisch veel te lenen met een flash loan.

Als er iets niet klopt, wordt dat opgemerkt door het smart contract en wordt de flash loan niet uitgevoerd. Je ontvangt dan niet het geld dat je wilde lenen, maar ook hetgeen wat je met het geld wilde doen, gebeurt niet. Wel ben je de transactiekosten kwijt die het protocol, waarop je een flash loan aangaat, vraagt. Op Aave gaat dit om 0.09% van het bedrag in kwestie.

Wat kun je doen met een flash loan?

Een flash loan wordt hoofdzakelijk gebruikt voor drie doeleinden:

  1. Winst maken door middel van arbitrage
  2. Snel van onderpand wisselen met collateral swaps
  3. Leningen aflossen met je onderpand via self liquidation

Arbitrage

Arbitrage gaat over het opsporen van (vaak) kleine prijsverschillen. Soms is een cryptomuntje op de ene exchange net iets meer waard dan op een andere exchange. Door gebruik te maken van flash loans kun je hier flink gebruik van maken.

Voorbeeld

Stel, Dogecoin kost 0,20 USDT op Uniswap en 0,21 USDT op Sushiswap. Daarom wil je heel veel Dogecoin kopen op Uniswap om ze direct daarna weer te verkopen op Sushiswap. Er is één probleem: je bent zo goed als blut. Dus:

  1. Je gaat een flash loan op Aave aan, waarmee je 10.000.000 USDT leent.
  2. Je koopt je voor 10.000.000 USDT aan Dogecoin op Uniswap. Dit zijn 50.000.000 DOGE, want 10.000.000 USDT / 0,20 USDT = 50.000.000.
  3. Je verkoopt deze 50.000.000 DOGE weer op Sushiswap voor 0,21 USDT per stuk. Je verkoopt het in totaal dus voor 0,21 USDT * 50.000.000 = 10.500.000 USDT.
  4. Je betaalt het bedrag terug dat je met de flash loan geleend hebt: 10.000.000 USDT. Ook betaal je de 0.09% fee die Aave vraagt voor het gebruiken van hun protocol: 0.09% * 10.000.000 USDT = 9.000 USDT.

Resultaat: In totaal heb je 10.500.000 USDT ontvangen, en heb je 10.009.000 USDT betaald. Je hebt dus een winst van 491.000 USDT!

Om het te laten slagen, doe je dit natuurlijk allemaal in één transactie. Hieronder zie je nog eens overzichtelijk hoe je profiteert van prijsverschillen met een flash loan:

Arbitrage met flash loan voorbeeld

Inmiddels zijn er veel bots actief die automatisch en heel snel inspelen op zeer kleine prijsverschillen. Daarom is het voor de gemiddelde crypto-enthousiasteling op deze manier nauwelijks meer geld te verdienen.

Zelfs al zou je een prijsverschilletje opmerken voordat een bot het doet, is je kans van slagen nihil. Niet alleen is de concurrentie bizar hoog, ook bots scannen mempools om te kijken of er opmerkelijke transacties actief zijn. Als deze bots vermoeden dat jij probeert te profiteren van arbitrage door middel van een flash loan, zullen de bots dezelfde transactie indienen maar dan met een hogere gas fee. Hierdoor zal de transactie van de bots voorrang krijgen, en profiteren zij van het prijsverschil.

Bovendien kun je te maken krijgen met hoge network fees en price slippage. Network fees lopen op naarmate je meer stappen zet in één transactie. Price slippage wordt hoger naarmate het betreffende bedrag hoger is.

Collateral swap

Collateral swap maakt het mogelijk om via een flash loan je onderpand te verwisselen in één transactie. Soms heb je de asset nodig die je als onderpand hebt ingelegd. De reden kan van alles zijn: omdat je het onderpand wil verkopen, of omdat je met het onderpand een mooi dividend kan verdienen op een ander protocol, etc.

Voorbeeld

Stel, je hebt ter waarde van $100.000 aan ETH. Verder denk je dat LINK op het punt staat om hard te stijgen. Echter, om LINK te kopen wil je geen ETH verkopen. Daarom besluit je LINK te lenen, met ETH als onderpand:

  1. Je leent ETH (ter waarde van $100.000) uit op Compound, en ontvangt er LINK (ter waarde van $80.000) voor terug.
  2. Een week later ziet de prijsgrafiek van ETH er verschrikkelijk uit. Je wil niet dat de waarde van je ETH onder de $80.000 komt, anders krijg je problemen met je LINK-lening (de geleende LINK is immers $80.000 waard). Daarom wil je je ETH verkopen. Helaas kan je ETH geen kant op, want je hebt het als onderpand gebruikt om LINK te lenen. Daarom ga je een flash loan aan op Aave, waarmee je 100.000 USDT leent.
  3. Deze 100.000 USDT gebruik je om je ETH-onderpand (ter waarde van $100.000) los te krijgen. De ETH is weer van jou! En de LINK-lening heeft nu USDT als onderpand.
  4. De losgekomen ETH verwissel je op Uniswap voor 100.000 USDT.
  5. De 100.000 USDT gebruik je om de flash loan terug te betalen. Ook betaal je weer een commissie van 0.09%.

Resultaat: je hebt je ETH verkocht, en je LINK-lening wordt steeds ondersteund (door 100.000 USDT) én je kunt nog steeds profiteren van een eventuele stijging van LINK.

Hieronder zie je hoe je een flash loan inzet om een collateral swap te doen:

Collateral swap met flash loan voorbeeld

Self liquidation

Door via een flash loan self liquidation uit te voeren, kun je je lening aflossen door met het onderpand van die lening te betalen.

Voorbeeld

Stel, 1 ETH is $100 waard. Jij bezit 500 ETH, waardoor je ter waarde van $50.000 aan ETH hebt. Ook sta je op het punt om een huis te kopen, waarvoor je geld nodig hebt. Echter, je wil geen ETH verkopen, omdat je denkt dat dit nog hard gaat stijgen:

  1. Je legt je 500 ETH (ter waarde van $50.000) in als onderpand op Compound, en krijgt daarmee een lening van 40.000 USDT.
  2. Deze 40.000 USDT zet je om in $40.000 en laat het uitbetalen. Je hebt nu genoeg eigen geld om een huis te kopen, én je hebt geen ETH verkocht.
  3. Een jaar later is 1 ETH $1000 waard, waardoor jouw onderpand $500.000 (500 * $1000) waard is geworden. Je wil je ETH terug, maar hebt niet genoeg geld om de lening van een jaar eerder (ter waarde van $40.000) terug te betalen. De 500 ETH kun je niet gebruiken, want die zijn vastgezet als onderpand.
  4. Je gaat een flash loan aan bij Aave, waarmee je 40.000 USDT leent.
  5. Deze 40.000 USDT gebruik je om de lening van vorig jaar af te lossen, waardoor je 500 ETH vrijkomt.
  6. Een deel van je ETH (ter waarde van 40.000 USDT) verkoop je op Uniswap.
  7. De 40.000 USDT gebruik je om de flash loan af te lossen. Uiteraard betaal je ook weer een commissie van 0.09%.

Resultaat: je hebt je lening afgelost én je hebt nog voor $460.000 ($500.000 – $40.000) aan ETH.

Hoe self liquidation met een flash loan werkt, staat in de volgende afbeelding nog eens uitgebeeld:

Self liquidation flash loan voorbeeld

Wat zijn de risico’s van flash loans?

Aan flash loans is een aantal risico’s verbonden. Sommige risico’s zijn voor de leners, andere risico’s zijn voor de crypto-protocollen. Daarentegen lopen de partijen wiens geld wordt uitgeleend bij flash loans, bijna geen risico.

Risico’s voor leners

Als je de flash loan niet terugbetaalt in dezelfde transactie als waarin je de flash loan bent aangegaan, ontvang je niet de lening maar betaal je wel commissie. Deze commissie verschilt per protocol. Bij Aave is deze bijvoorbeeld 0.09% van het bedrag dat je wil lenen.

Deze commissie betaal je ook als de flash loan slaagt, maar in dat geval heb je in ieder geval nog de mogelijkheid om je flash loan te benutten.

Risico’s voor crypto-protocollen

Voor crypto-protocollen liggen flash loan attacks op de loer. Een flash loan attack is het gebruiken/misbruiken van een kwetsbare plek in de code van het smart contract of het crypto-protocol, door middel van een flash loan. Via een flash loan attack kunnen zelfs prijzen van muntjes gemanipuleerd worden.

Voorbeeld

Stel, blockchain-hacker Harald vindt een fout in de code van een crypto-protocol, waardoor hij op een goedkope manier heel veel muntjes van dit crypto-protocol kan creëren.

Normaliter zijn mensen bij het gebruiken/misbruiken van dit soort zwakheden in de code, gebonden aan hun eigen vermogen. Echter, Harald gebruikt hiervoor een flash loan, waardoor hij een bijna oneindige hoeveelheid geld kan lenen. Met dit geld koopt hij gigantisch veel muntjes van het betreffende protocol in, om ze voor de huidige marktprijs te verkopen. Nadat hij de flash loan heeft terugbetaald, houdt hij nog genoeg buitgemaakt geld over.

Uiteraard zorgt dit voor een crash van de prijs. Doordat flash loan attacks de prijs van een muntje op één bepaald exchange sterk kunnen beïnvloeden, ontstaan er prijsverschillen tussen verschillende exchanges. Hierdoor ontstaan weer arbitrage kansen, waarvan de flash loan attackers met voorkennis van kunnen profiteren.

Inmiddels worden exchanges gelukkig steeds slimmer, waardoor dit soort aanvallen vaker en sneller onderschept worden.

Risico’s voor geldschieters

Geldschieters van flash loans lopen nauwelijks risico. Er is alleen een zeer kleine kans dat zij hun geld kwijtraken. Dit kan gebeuren als het smart contract of het protocol waarin zij hun geld hebben geïnvesteerd, wordt gehackt. Echter, de kans dat dit bij gevestigde namen als Aave en dYdX is amper aanwezig.

Video: Flash Loan

Wil je alles nog eens met beeld en geluid uitgelegd hebben? Check dan zeker even deze video: