Po jednom z největších hackerských útoků na Ronin Network v minulém týdnu přišel o víkendu i masivní exploit na DeFi protokolu Inverse Finance. Dnes se proto podíváme na to, co se stalo, i jak se podobným problémům vyvarovat.
Co je Inverse Finance?
Inverse Finance je DeFi open-source protokol, který cílí zejména na kryptoměnové půjčky. Umožňuje tak lidem jak si půjčit s kolaterálem v kryptoměnách, tak i uzamknout své kryptoměny za účelem poskytování půjček ostatním lidem a získání zajímavých úroků. Za zajímavé úroky zde však někteří uživatelé zaplatili poměrně značným rizikem, které se pojí s menšími DeFi protokoly zaměřenými na lending. Fungování protokolu totiž útočník či útočníci zneužili (proběhl tzv. exploit protokolu). Díky tomu si útočníci přišli až na 15 milionů dolarů, o které přišli půjčující.
Co je to lending a jak se dá na kryptoměnových půjčkách vydělat se dozvíte zde.
Ač se tentokrát nejednalo o úplně klasický flash loan problém, při kterém si uživatelé půjčí za kryptoměny, jejichž cena poté rapidně klesne (často manipulací útočníků) a likvidace proběhne tak rychle, že půjčující nezískají zpět hodnotu, kterou zapůjčili, byl problém flash loan exploitům velice podobný.
Co se tedy stalo?
O problému jako první informoval twitterový účet PeckShield Inc., který odkázal na podezřelé transakce provedené z peněženky financované skrz Tornado Cash. Tornado Cash je poté kryptoměnový ‘mixér’ sloužící k zastření původu prostředků. Tato peněženka využila nižší likvidity na Sushiswapu, konkrétně na párech INV/WETH a zejména INV/DOLA a cenového oracle na INV/WETH, které využívala platforma Inverse Finance pro zjištění hodnoty kolaterálu atd. Jak ale konkrétně?
Útočník vybral 901 ETH z Tornado Cash a začal obchodovat na páru INV/DOLA na Sushiswapu, kde byla oproti jiným platformám, kde je INV dostupné, výrazně nižší likvidita. V návaznosti na změnu ceny INV v tomto páru přišel problém na INV/DOLA amTWAP oracle, které vedlo k pumpě na ceně až k 20 926 USD z cca 390 USD.
Kolaterál v Inverse Finance tokenech vysoce nadhodnocen
Útočník, který nakoupil většinu svých INV ještě za cenu původní, poté využil této chyby v oracle informujícím o ceně k tomu, aby si za výrazně dražší INV vypůjčil spoustu kryptoměn. K tomu využil produkt Anchor přímo na Inverse Finance (pozor neplést s Anchor Protocol na Terra), kde jako kolaterál uzamknul tyto INV, které byly daleko nad svou tržní cenou na ostatních platformách. Dnešní report útoku od Inverse Finance uvádí, že se mu podařilo půjčit si dokonce 1 588 ETH, 94 WBTC, 4 000 000 DOLA a 39 YFI. To vše s původním financováním 901 ETH. Aby poté zastřel své chování, využil ještě část svých prostředků k tomu, aby zaspamoval síť drobnějšími transakcemi a svůj útok skryl. Díky tomu situace nestihli využít ani zájemci o arbitráž, kdy zde vznikly zajímavé příležitosti k ní.
Poté, co oracle začalo rozpoznávat cenu správným způsobem, byly sice útočníkovi INV uzamčené jako kolaterál zlikvidovány ve prospěch půjčujících. Ani to však nemělo šanci nahradit ztráty, které tím některým stakeujícím (půjčujícím) WBTC, ETH, YFI a DOLA na Anchoru vznikly.
Co bude následovat?
Tým Inverse Finance slíbil, že zajistí, aby veškeré prostředky, o které přišly jejich klienti, byly navráceny. Zároveň slíbili, že budou dělat vše pro to, aby uchránili vazbu jejich stablecoinu DOLA na americký dolar. Zároveň neplánují vyplácet poškozené v INV tokenu, aby nezpůsobili propad na jeho ceně.
Mimo to tým v současnosti testuje kód INV oracles a pozastavil půjčky na Anchoru. Zároveň se tým rozhodl navýšit DOLA likviditu na Curve, aby redukoval možnost zneužít nedostatečné likvidity.
Jak se chránit?
Ač těmto situacím není úplně nejjednodušší předcházet, máme dvě možnosti, jak riziko redukovat. První z nich je pojištění prostředků s využitím smart kontraktů od společností, které se touto problematikou zabývají. To může být zajímavé zejména v dobu, kdy úročíme vyšší kapitál. Zároveň stojí za to sledovat rezervní fondy daného projektu a zhodnotit si, jestli by byl projekt schopný hackerský útok pokrýt.
Zároveň se těmto flash loan a podobným útokům dá předcházet tím, že zvolíme platformu, která neumožňuje uzamykání kolaterálu v kryptoměnách, které mají nízkou likviditu na platformách, z nichž oracles čerpají informace o ceně. A nebo jednoduše nízkou likviditu a vysokou volatilitu obecně. Ač se totiž nejednalo tentokrát o typický flash loan, ale problém s oracles, v obou případech by se problém nestal, kdyby byl kolaterál např. v BTC. Nebo by bylo minimálně výrazně složitější manipulovat s cenou, a to i na menších směnárnách.
Samozřejmostí je poté kontrola toho, zdali kód daných protokolů auditovaly důvěryhodné kyberbezpečnostní společnost. A kdo dokáže, může se samozřejmě pročíst kódy sám, jelikož se v naprosté většině případů jedná o open-source protokoly.
Chcete se o DeFi dozvědět ještě více? Doražte na workshop. V současnosti v této oblasti pořádáme 2 workshopy:
- Jak vydělat na decentralizované směnárně
- Jak farmit kryptoměny (poskytovat likviditu a přijít si na zajímavé úroky)
Interesantny clanok. Palec hore