BlockchainSecurity
SR EN RU
Odgovor na incidente
DeFi i Pametni Ugovori

Flash loan napad: kako se pametni ugovor isprazni u jednoj transakciji

Flash loan napad: kako se pametni ugovor isprazni u jednoj transakciji

Ključno ukratko:

  • Prema dokumentaciji Aave-a, flash loan mora biti vraćen zajedno sa naknadom pre kraja iste transakcije. U suprotnom se cela transakcija poništava.
  • Cyfrin opisuje napad u kojem pozajmljena sredstva pomeraju cenu u pulu likvidnosti, a ranjivi protokol na osnovu te cene daje previše sredstava.
  • Flash loan je legitiman alat za arbitražu i refinansiranje. Sam po sebi nije napad ni greška.
  • Mango Markets ilustruje manipulaciju cenovnim oracle-om, a ne potvrđenu upotrebu flash loan-a.
  • Među odbranama koje navodi Cyfrin su decentralizovani oracle-i, TWAP, rezervni oracle i praćenje uz pauziranje ugovora.

Pozajmljena sredstva mogu privremeno pomeriti cenu kojoj pametni ugovor veruje. Flash loan napad kroz manipulaciju cenom koristi upravo tu slabost: protokol prihvata pomerenu cenu i daje previše sredstava. Problem je u načinu na koji ranjivi protokol koristi cenu, dok sama pozajmica ima i legitimne namene.

Šta je flash loan i kada se pozajmica vraća

Flash loan je pozajmica čije vraćanje mora da se završi unutar iste transakcije. Pozajmljeni iznos i naknada moraju biti dostupni pre njenog kraja. Ako taj uslov nije ispunjen, transakcija se poništava, odnosno dolazi do postupka revert.

Takav uslov vraćanja objašnjava kako funkcioniše pozajmica, ali nije potvrda bezbednosti protokola koji koristi pozajmljena sredstva. Flash loan služi i za arbitražu i refinansiranje. Za razumevanje napada zato je potrebno odvojiti alat za pozajmljivanje od ranjivosti koja se njime iskorišćava.

Prema Aave dokumentaciji, naknada za flash loan u Aave v3 pri pokretanju je postavljena na 0,05 % i može se menjati glasanjem. To je početna postavka, a ne podatak o današnjoj naknadi. Za konkretnu upotrebu relevantan je važeći iznos u dokumentaciji protokola.

Dok procenjujete neki DeFi proizvod, korisno je da imate odvojene beleške o uslovima pozajmice i bezbednosti protokola. U prvoj bi bili uslovi vraćanja i naknada, a u drugoj poreklo cene i način njene provere. Tako pitanje koliko pozajmica košta ostaje odvojeno od pitanja kako protokol odlučuje koliko sredstava da izda.

Kako izgleda flash loan napad kroz manipulaciju cenom

U ovom mehanizmu oracle je izvor cene koju koristi zavisni protokol. On čita spot, odnosno trenutnu cenu iz pula likvidnosti. Kada napadač pozajmljenim sredstvima privremeno promeni odnos sredstava u pulu, ta cena postaje izmanipulisana, ali je ranjivi protokol ipak prihvata.

  1. Pozajmica. Napadač koristi flash loan da dođe do sredstava za manipulaciju. Uslov pozajmice ostaje vraćanje iznosa i naknade pre završetka iste transakcije.
  2. Pomeranje cene. Pozajmljena sredstva privremeno menjaju odnos sredstava u pulu likvidnosti. Time se pomera spot cena koju oracle očitava.
  3. Prihvatanje izmanipulisane cene. Oracle prenosi cenu iz pula, a zavisni protokol koristi je kao osnovu za izdavanje sredstava. U tom prihvatanju cene ispoljava se ranjivost.
  4. Prekomerno izdavanje sredstava. Protokol na osnovu pogrešne cene daje previše. Manipulacija cenom tako prelazi u gubitak sredstava protokola.
  5. Završetak transakcije. Pozajmljeni iznos i naknada moraju biti vraćeni. Ako potreban iznos nije dostupan, cela transakcija se poništava.

Za procenu konkretnog protokola korisna su pitanja o tome odakle cena dolazi i kako se obrađuje pre upotrebe. Dokumentacija bi trebalo da omogući praćenje tog puta, od izvora cene do odluke ugovora. Povezana tema je oracle napad, posebno kada želite da razjasnite ulogu izvora cene.

Mango Markets: primer manipulacije oracle-om

Prema Cyfrinu, Mango Markets je 2022. pretrpeo gubitak od 117 miliona dolara. Napadač je naduvao cenu MNGO tokena i podigao vrednost jednog naloga sa 10 miliona na preko 400 miliona dolara. Zatim je pozajmio gotovo svu vrednu imovinu protokola.

Mango Markets ovde pokazuje posledice manipulacije cenovnim oracle-om. Ovaj primer ne potvrđuje da je napadač koristio flash loan. Naduvana cena i pozajmljivanje imovine opisuju mehanizam gubitka, ali sami po sebi ne utvrđuju kako je napad finansiran.

Cyfrin navodi da je tokom 2022. u DeFi-ju ukradeno više od 403,2 miliona dolara kroz više od 40 napada manipulacijom cenovnim oracle-om. Taj zbir odnosi se na manipulacije oracle-om. Nije zbir potvrđenih flash loan napada.

Pri čitanju izveštaja o incidentu korisno je razdvojiti uzrok, način finansiranja i iznos gubitka. Za svaku stavku vredi imati odgovarajući izvor, umesto pretpostavke da opis jedne objašnjava ostale. U vašoj belešci podatak koji izveštaj ne potvrđuje može jednostavno ostati označen kao nepoznat.

Odbrane protokola i provere pre ulaganja

Odbrane obuhvataju izbor izvora cene, način njenog obračuna i reagovanje na sumnjivu aktivnost. Za decentralizovane oracle-e Cyfrin navodi Chainlink i API3 kao primere, kod kojih bi napadač morao da kontroliše 50 % + 1 čvorova. TWAP, vremenski ponderisanu prosečnu cenu, opisuje kao odbranu otpornu na flash loan, uz cenu kašnjenja.

Odbrana Kako radi Cena/ograničenje
Decentralizovani oracle Koristi decentralizovan izvor cene. Za opisani model uslov napada je kontrola većine čvorova.
TWAP Koristi vremenski ponderisanu prosečnu cenu. Otpornost na flash loan dolazi uz kašnjenje cene.
Rezervni oracle Predviđa dodatni izvor cene. Za procenu primene korisno je pitanje kada se prelazi na rezervni izvor.
Praćenje i pauziranje Stalno praćenje uz pauziranje ugovora pri sumnjivoj aktivnosti. Reagovanje uključuje pauzu rada ugovora.

Tabela povezuje odbrane sa njihovim ograničenjima i pitanjima za proveru primene. Za vas je korisniji dokumentovan opis konkretnog rešenja nego samo naziv mehanizma. Dobar početak pregleda dokumentacije jeste naziv izvora cene, a zatim objašnjenje kako ta cena stiže do ugovora koji je koristi.

Za TWAP bi vredelo potražiti opis primene i kašnjenja, a za rezervni oracle uslove njegovog uključivanja. Kod praćenja i pauziranja relevantna su pitanja ko prati aktivnost, kada je predviđena pauza i kako izgleda postupak reagovanja. Odgovore možete povezati sa dostupnim izveštajem o reviziji pametnih ugovora, posebno delom koji se bavi cenama i oracle-ima.

Praktična beleška pre odluke može imati link do dokumentacije, kratak odgovor i otvoreno pitanje za svaki mehanizam. Ako opis nije razumljiv, razuman sledeći korak je dodatno tehničko objašnjenje pre ulaganja. Cilj takve provere je procena i smanjenje rizika, bez očekivanja garancije bezbednosti. Širi okvir za tu procenu pruža tema DeFi bezbednosti pre ulaganja.

Česta pitanja

Da li je flash loan nelegalan?

Flash loan je legitiman alat za arbitražu i refinansiranje. Sam po sebi nije napad ni greška; kod opisanog napada problem je ranjivi protokol koji veruje ceni promenljivoj u jednoj transakciji.

Zašto napadač ne mora da ima kapital?

Za opisanu manipulaciju koristi pozajmljena sredstva iz flash loan-a. Pozajmljeni iznos i naknada moraju biti vraćeni pre kraja transakcije, pa pozajmljivanje ne znači da troškovi ne postoje.

Šta je oracle?

U opisanom mehanizmu oracle je izvor cene za zavisni protokol. Ako očita izmanipulisanu spot cenu iz pula likvidnosti, ranjivi protokol na osnovu nje može dati previše sredstava.

Šta je TWAP?

TWAP je vremenski ponderisana prosečna cena. Među opisanim odbranama pruža otpornost na flash loan uz cenu kašnjenja.

Kako kao korisnik da smanjim rizik?

Možete početi od dokumentacije o izvoru cene, upotrebi TWAP-a, rezervnom oracle-u i pravilima praćenja i pauziranja. Korisno je da za svaku od tih stavki imate razumljiv odgovor i link do objašnjenja primene u konkretnom protokolu.

Izvori

← Nazad na BlockchainSecurity.rs
Nazad na vrh