Ilgalaikio turto apsauga skolinimo protokoluose nuo TWAP Oracle atakų
Dauguma skolinimo protokolų įsilaužimų kyla dėl išmaniųjų sutarčių pažeidžiamumų, dėl kurių kasmet pavagiama šimtai milijonų dolerių. Kūrėjai ir auditoriai tapo atsargesni į įprastas atakas, o protokolai yra kelis kartus peržiūrimi kodais ir sprendžiamos klaidų programos. Tačiau skolinimo protokolai taip pat susiduria su ekonominiais išpuoliais dėl rinkos nepastovumo ir kainų problemų, tokių kaip atsiejimo įvykiai ir manipuliavimas orakulu.
Siekiant užkirsti kelią šioms atakoms, daugumoje protokolų pateikiami tik labai likvidūs turtai ir naudojami labiausiai patikimi orakulų tiekėjai, pirmiausia „Chainlink“. Nors dauguma skolinimo protokolų nenaudoja decentralizuotų mainų pagal laiką svertinės vidutinės kainos (TWAP) orakulų, jie yra viena iš labiausiai prieinamų parinkčių. Tačiau daugeliui protokolų nepavyko rasti saugios metodikos, kaip saugiai naudoti šiuos orakulus, nes tai paprastai yra per daug rizikinga, palyginti su alternatyvomis.
Uniswap V3 TWAP kainų orakulai buvo naudojami skolinimo protokoluose, tokiuose kaip Inverse Finance, Rari Capital ir Euler Finance. Nors Uniswap ir jo V3 orakulai ne kartą minimi visoje ataskaitoje, kiti TWAP orakulai galėtų veikti panašiai. Šie orakulai turi daug privalumų, pavyzdžiui, gali būti laisvai integruojami į protokolus ir mažiau priklausomi nuo centralizuotų valdiklių, tačiau trūkumai neleidžia plačiai naudoti.
Yra daugybė pavyzdžių, kai orakulais buvo manipuliuojama, ypač TWAP orakulais, ir tyrimų, išsamiai paaiškinančių, kodėl įvyksta šios atakos. Paprastai tai yra problematiška, kai orakulo šaltinio, pvz., Uniswap fondo, likvidumas yra nepakankamas, todėl skolinimo protokolams, kurie naudoja orakulą kainoms, kyla atakos pavojus.
„Euler Finance“ komanda parašė ataskaitas, įskaitant „Manipulating Uniswap v3 TWAP Oracles“, kurią sukūrė Michaelas Bentley , ir išleido „Oracle“ ataką.
Užpuolikai bandys apriboti nesėkmės riziką naudodami greitąją paskolą, kad užbaigtų ataką per vieną bloką. Nors greitosios paskolos leidžia užpuolikams panaudoti daugiau likvidumo, nei jie galėtų turėti, vargu ar greitos paskolos bus sėkmingos naudojant likvidžiausią turtą viename bloke.
Pavyzdžiui, toliau pateiktame 1 paveiksle parodytos bendros išlaidos (598,85 mlrd. USD), norint įvykdyti vieno bloko ataką, siekiant 20 % įtakos USDC/WETH 0,3 % mokesčių porai. Dėl skolinimo apribojimų, pvz., skolinimosi ir užstato faktorių (LTV koeficientas), užpuolikams paprastai tektų padidinti arba nuleisti kainas gerokai viršijančias 20 %, kad pasiektų pelningą ataką.
Sumažinti blokų skaičių atakai atlikti būtina dėl dviejų priežasčių. Pirma, užpuolikai naudoja greitas paskolas, kurias reikia grąžinti tame pačiame bloke. Antra, kuo daugiau blokų įvyksta, padidėja tikimybė, kad užpuolikas bus arbitražinis, o tai nutrauktų ataką, nes prekiautojai pamatytų kainų skirtumą ir sudarytų sandorį, kad kaina būtų normali, kol puolimas gali būti baigtas.
Dažniausiai naudojamas turtas, pvz., USDC, USDT ir WETH, paprastai yra pakankamai likvidus, kad būtų išvengta TWAP oracle manipuliavimo atakos, ypač greitųjų paskolų atveju. Tai labiau matoma „Ethereum“ tinkle, nes dauguma antrojo sluoksnio ir kitų grandinių turi palyginti mažesnį likvidumą. Skolinimo protokoluose paprastai bus naudojami „Chainlink“ kainų orakulai „blue chip“ turtui, nes verta apsaugoti šį turtą, kuris dažniausiai nustatomas kaip užstatas.
Net jei labiausiai likvidūs fondai neturi pakankamai likvidumo, yra daugybė kitų Uniswap fondų ir kitų DEX, kurie suteikia tiesioginio arbitražo galimybių. Kainų skirtumą tarp dviejų labai likvidžių žetonų skirtinguose telkiniuose pataisys prekybininkai, rankiniu būdu radę arbitražo galimybę, robotai, agregatoriai arba greičiausiai Uniswap.
„Auto Router“ ras geriausią prieinamą kainą, padalydamas sandorius į kelis fondus. Tai reiškia, kad jei užpuolikas rado skolinimo fondą su dideliais indėliais, kurie naudojo mažos apimties ir mažo likvidumo fondą Uniswap V3 kaip savo orakulą, ataka vis tiek gali nepavykti, jei kitų to paties prieigos rakto fondų apimtis ir likvidumas būtų didelis, nes kitas „Auto Router“ prekyba pasinaudotų arbitražo galimybe. Atakai pasisekti dar sunkiau, nes automatinis maršruto parinktuvas taip pat gali suskaidyti kitų nesusijusių žetonų maršrutus.
Panašios prielaidos taip pat gali būti daromos apie mažai skysčius, didelio tūrio telkinius. Esant mažam likvidumui, fondo orakulas gali būti pažeidžiamas taikinys. Tačiau dėl didelės apimties sandoriai nuolat koreguoja kainą pagal rinkos kursą. Todėl mažai tikėtina, kad ataka pasiseks.
Užpuolikas taip pat turėtų atsižvelgti į likvidumo skirtumą Uniswap V3, nes Likvidumo teikėjai gali užtikrinti visą likvidumą arba koncentruotą likvidumą. Viso diapazono likvidumas, kuris prideda žetonų iš abiejų pusių visam kainų diapazonui nuo nulio iki begalybės, padidina atakos išlaidas. Koncentruotas likvidumas, tam tikras intervalas, kuris gali būti tik vienpusis, gali padidinti arba sumažinti išlaidas, priklausomai nuo esamos kainos ir likvidumo paskirstymo intervale. „Wonderland's CTO 0xGorilla“ savo straipsnyje pateikia daugiau informacijos apie tai
„Saugiame“ Uniswap fonde nebūtina turėti milijardų dolerių vertės žetonų, paskirstytų visame diapazone, kad kainos orakulas būtų saugus. Apsvarstykite aukščiau pateiktą 1 paveikslą, kuriame kainavo 598,85 milijardo dolerių perkelti kainą 20% viename bloke, o dešimtyje blokų vis tiek kainuotų beveik 200 milijonų dolerių. Šio baseino bendra vertė užrakinta beveik 70 mln. Tačiau šio fondo skirtumas nėra vien tik visas, nes didelė likvidumo dalis yra koncentruota, o tai gali padidinti riziką.
„Euler Oracle“ įrankis taip pat gali parodyti, kad 10 milijonų JAV dolerių sumažins šio fondo kainą beveik 14% ir kainuos 1 milijoną JAV dolerių ir beveik 56% padidins 1,7 mln. Tai gali kilti problemų naudojant kaip orakulą, tačiau šis 0,3 % fondas tikriausiai nebūtų pagrindinis skolinimo protokoluose naudojamas fondas, nes pagal 0,05 % mokesčių fondą TVL yra 129 mln. USD ir 7 dienų 2,4 mlrd. USD. Uniswap duomenys.
Vartotojai turėtų atkreipti dėmesį į skirtingus likvidumo skirtumo profilius, kad geriau suprastų riziką, susijusią su deponavimu pagal skolinimo protokolus, kuriuose naudojami Uniswap V3 TWAP kainų orakulai. 2 paveiksle pateiktose diagramose pavaizduoti įvairūs likvidumo profiliai, kuriuos vartotojas gali rasti Uniswap telkiniuose.
Toliau pateiktame LP 1 grafike parodytas likvidumo profilis, dažnai manomas Uniswap V3 fonduose. Likvidumas (L) paprastai koncentruojasi ties dabartine kaina (P), bet mažėja toliau kiekvienoje dviejų žetonų – Token01 ir Token02 – kryptimis.
LP 2 demonstruoja tipišką stabilių monetų poros profilį, pvz., USDC/USDT, kur likvidumas yra labai koncentruotas iki kelių žymių apie dabartinę kainą.
LP 3 parodo, kaip galėtų atrodyti viso diapazono fondas be koncentruotų likvidumo ženklų.
Likvidumas LP 4 yra sutelktas į dabartinės kainos Token01 pusę, todėl brangu išmesti, bet pigiau pumpuoti, o LP 5 rodo priešingai.
Jei skolinimo protokole abu žetonai leidžiami kaip užstatas, užpuolikas gali pasirinkti pumpuoti arba išmesti bet kuria kryptimi, kuri yra pigesnė ir pelningesnė. Jei vienas turtas yra izoliuotas ir negali būti naudojamas kaip užstatas, užpuolikas gali jį išmesti tik siekdamas pelno. Yra ir kitų būdų, kaip pasipelnyti iš izoliuoto turto perkėlimo, tačiau tai gali būti sudėtingiau, brangiau ar rizikingiau, palyginti su tiesiog atskirto turto išmetimu orakulo atakos metu arba pasikliaujant kitokio pobūdžio išnaudojimo metodika.
LP 6 tai parodo praktiškai, nes būtų pigiau išmesti žetoną iš senosios kainos (P1) taške A į naują kainą (P0) taške B.
Naudotojai turi žinoti apie likvidumo lygį, skirtumą ir sandorių apimtį, jei skolinimo protokole naudojami Uniswap V3 TWAP kainų orakulai savo telkiniams. Labai pažeidžiamas Uniswap telkinys, skirtas užpuolikui, turėtų mažą likvidumą, mažą apimtį, likvidumą būtų sutelktas ne nuo tikslinės kainos ir dabartinės kainos, o kitų Uniswap ir kitų DEX fondų arba bent jau panašios struktūros telkinių.
Ilgos uodegos turto fondai paprastai turi mažą likvidumą ir mažesnės atakos sąnaudos, tačiau nebūtinai mažesnė užpuoliko rizika. Nors maža apimtis sumažina galimybę arbitražo nutraukti ataką, gali būti labai koncentruotas likvidumas ir mažas skaičius žetonų, kurie cirkuliuoja atviroje rinkoje, kuriuos galima įsigyti atakai. Dėl to užpuolikui gali būti neįmanoma gauti pelno.
Kelių blokų atakos pelningumas priklauso nuo to, ar žetonų vertė Uniswap telkinyje yra mažesnė už likvidumo vertę skolinimo protokolo tiksliniame telkinyje. Nustatant Uniswap fondo vertę taip pat reikėtų atsižvelgti į manipuliavimo orakulu išlaidas, jei vertė dabartine žetono kaina yra per didelė. Taigi „Uniswap“ fondo vertė gali būti didesnė už skolinimo protokolo fondo vertę, bet jei jos atšaukimo kaina yra mažesnė už skolinimo protokolo telkinio vertę, ataka gali būti pelninga.
Kai užpuolikas nusprendžia, kad galės pasipelnyti, jis gali išsiaiškinti, ar efektyviau įsigyti atakai reikalingus žetonus, ar juos pasiskolinti. Pirma, jie išskaičiuotų žetonų pirkimo išlaidas iš pelno, gauto pardavus juos naudojant Uniswap atakos metu. Greičiausiai tai būtų nuostolis dėl praslydimo, atsižvelgiant į tai, kad jie bando sumažinti mažo likvidumo Uniswap fondo kainą. Tačiau problema taip pat gali būti ta, kad jiems nėra pakankamai žetonų, kuriuos jie galėtų nusipirkti, arba kad jie neturi pakankamai kapitalo, kad galėtų nusipirkti pakankamai žetonų. Užpuolikas taip pat gali manyti, kad galimi nuostoliai būtų per dideli, jei pakankamai žetonų įsigijimo kaina būtų per didelė, jei ataka nepavyktų.
Jei žetonų įsigijimas yra pernelyg sudėtingas, užpuolikas gali pasiskolinti žetonus iš tikslinio skolinimo protokolo arba kito. Labiau tikėtina, kad užpuolikas sumažintų išlaidas, pasiskolinęs žetonus iš tikslinio skolinimo protokolo, darant prielaidą, kad kažkas kitas nevykdys atakos. Dėl manipuliavimo orakulu kainų pokyčių skolintis žetonus iš tikslinio skolinimo protokolo tampa vis pigiau.
Galiausiai, užpuolikas turėtų apsvarstyti, ar nori sumažinti blokus ir rizikuoti didesniu užstatu, ar bandyti kelis kartus skolintis ir parduoti, kad panaudotų mažiau užstato. Ideali situacija yra rasti mažiausią užstato sumą, reikalingą didžiausiai indėlių sumai pavogti. Jei kaina pasikeičia arba kaina negali toliau nukristi iki numatyto tikslo, ataka gali užrakinti dalį arba visą jų užstatą protokole.
Galime apskaičiuoti galimą pelną, darant prielaidą, kad užpuolikas skolinasi žetonus iš tikslinio skolinimo protokolo ir parduoda juos, kad manipuliuotų Uniswap kainų orakulu. Norėdami tai padaryti, turime atsižvelgti į skolinimo protokolo apribojimus, pvz., skolinimosi ir užstato veiksnius, jei jis turi abu, įkeisto sumą ir „Oracle“ fondo likvidumą.
Multi-Block Attack naudojimas
1 vartotojo padėtis rodo didžiausią žetonų sumą, kurią užpuolikas gali pasiskolinti pagal įneštą užstatą. Užpuolikas parduos maksimalius pasiskolintus žetonus tiksliniame Uniswap telkinyje ir įves pelną bei naują kainą į 1 likvidavimo raundo skyrių. 2-oje vartotojo pozicijoje ir tolesniuose likvidavimo etapuose rodomos naujos vertės, atsižvelgiant į reikalingą užstatą naujo pasiskolinto žetono kainai.
Papildomų raundų esmė yra sekti, kiek žetonų galima parduoti, kad būtų sukurtas pageidaujamas kainos poveikis, jei pirmojo turo nepakanka. Vartotojai taip pat gali nustatyti, kiek užstato reikia, kad būtų įvykdyta pelninga ataka per kuo mažiau pardavimo ciklų. Papildomuose skyriuose apskaičiuojamas pelnas, jei užpuolikas palieka užstatą arba baigia ataką paskutiniame raunde, pasiimdamas bet kokį sukauptą pelną ar nuostolius.
Dirbdami su skolinimo protokolais naudodami TWAP orakulus, vartotojai gali modeliuoti skirtingus scenarijus ir sukurti individualizuotas rizikos sistemas. Sujungę „Euler Oracle“ įrankį su „Multi-Block Attack Simulator“, vartotojai taip pat gali susidaryti išsamų vaizdą apie galimą „Flash“ paskolos ir kelių blokų atakų riziką. Be to, vartotojai gali atlikti daugybę modeliavimų, kad atrastų geriausios praktikos rizikos parametrus skolinimo protokolams, žetonų kategorijas, kurioms gresia didžiausias orakulų atakų pavojus, sukurti išankstinio įspėjimo sistemas ir kt.
Vartotojai gali automatizuoti šį lapą naudodami API, priedus arba sukurti programą, pagrįstą skaičiavimais. Skaičiuoklės esmė yra užtikrinti metodiką, kurią ateityje galėtų naudoti bet kas, jei API ar programa būtų pašalinta, apribota ar pakeista.
Šia priemone siekiama padidinti rizikos suvokimą ir užtikrinti didesnį ilgalaikio turto skolinimo saugumą, kurio paprastai neapima dauguma orakulų. Šis įrankis taip pat neatsižvelgia į arbitražą ir tikslų blokų skaičių atakoje, o sutelkia dėmesį į galimų kelių blokų atakos sąnaudų ir pelno apskaitą.
„ Multi-Block Attack Simulator“ turi vartotojo vadovą, skaičiavimus ir pavyzdį naudotojų patogumui. Nukopijuokite ir redaguokite mėlynus langelius Simuliatoriaus skirtuke.
Nors yra didelis potencialas sukurti skolinimo rinkas ilgalaikiam turtui, akivaizdu, kad rizika, susijusi su saugaus skolinimo galimybėmis, gali būti didesnė už naudą. Protokoluose turėtų būti bent jau daugiau įrankių, kad vartotojai žinotų apie su tuo susijusios rizikos lygį. Ilgos uodegos turtas, pvz., memecoins, valdymo žetonai ir decentralizuotas žetonų paleidimas, gali gauti naudos iš skolinimo rinkų ir išvestinių finansinių priemonių, tačiau šie žetonai taip pat yra labiausiai pažeidžiami manipuliavimo.
Ir toliau bandoma išlaisvinti ilgalaikio turto skolinimo ir skolinimosi galimybes, nes stengiamasi įtraukti daugiau orakulų, apriboti skolinimąsi, sukurti atskirus fondus ir atidėti išėmimus. Neaišku, ar nepastovumo kontrolė veiks nelikvidiausiam turtui, nes kontrolė greičiausiai negalės atskirti tikrų kainų pokyčių ir tų, kuriais siekiama manipuliuoti orakulu.
Keliuose skolinimo protokoluose buvo nagrinėjamas laiku pagrįstų paskolų kūrimas. Tačiau pagrindinė blogos skolos atsiradimo problema vis dar egzistuoja ir skolintojai turėtų būti pasirengę priimti šią riziką. Nors šiame tyrime nėra gilinamasi į šią skolinimo protokolų sritį, kintamomis palūkanų normomis pagrįsti protokolai ir toliau dominuoja rinkoje.
Norint nustatyti riziką ilgalaikio skolinimo ir skolinimosi rinkose, galimi sprendimai galėtų apsvarstyti Uniswap apimtį, likvidumo skirtumą ir žetonų kiekį. Rinkos, kurioms suteiktas didesnis rizikos reitingas, gali būti užblokuotos arba apribotos, kol Uniswap oracle fondui bus suteikta daugiau likvidumo. Kai kurie iš šių veiksnių buvo panaudoti „Euler V1“ „Oracle“ vertinimo sistemoje.
Kiti sprendimai kuriami kaip Uniswap V4 kabliukai ir esamų protokolų, tokių kaip Euler V2 ir Bunni, atnaujinimai ir pataisymai. Kainų orakulai taip pat gali tapti veiksmingesni naudojant kitų tipų decentralizuotus mainus, pvz., pagal laiką svertinius automatizuotus rinkos formuotojus (TWAMM) arba pavedimų knyga pagrįstą skolinimo protokolą, aprašytą Bedlam Research. Tokios platformos kaip „Kamino Finance“ demonstruoja daugybę rizikos kontrolės priemonių, įskaitant dinaminę LTV, o kiti protokolai, įskaitant „GammaSwap“, „Timeswap“ ir „Ammalgam“, siūlo sprendimus be „Oracle“ ir kitus sprendimus.
Galiausiai, jei yra tik vienas mažo likvidumo kainų šaltinis, beveik jokios rizikos kontrolės priemonės nepadarys to saugios ir finansiškai įmanomos skolinimo protokolo dalyviams.