Visi jūsų Uniswap v3 likvidumo ūkininkavimo skaičiavimai yra klaidingi! Štai kodėl

2 X 2 = 5

Žinote, kad tai negerai, bet pirmą kartą pamatę, patys atspėsite ir galvojate: „Gal mano skaičiavimuose kažkas negerai“. Tiesa?

Na, būtent taip jaučiausi, kai sužinojau, kad Uniswap V3 vartotojo sąsajoje rodomi likvidumo ir TVL (Bendra vertė užrakinta) skaičiai yra visiškai neteisingi.

Uniswap yra didžiausias decentralizuotas finansavimas (defi) projektas įjungtas Ethereum ir visuma blockchain industrija. Tūkstančiai likvidumo teikėjų kasdien naudoja šiuos skaičius kurdami savo investavimo strategijas. Taigi, kaip šie skaičiai gali būti netikslūs?

Aš praleidau valandas, bandydamas rasti klaidą savo skaičiavimuose, ir spėk ką? Aš nepadariau jokių klaidų. O situacija dar blogesnė nei tiesiog netiksli TVL.

Bet eikime žingsnis po žingsnio ir pradėkime nuo problemos.

Problema

Pirma, kas yra TVL ir kaip ji naudojama? Trumpai tariant, TVL apibrėžiamas kaip viso kriptovaliutų turto, kurį vartotojai šiuo metu deleguoja blokų grandinei arba protokolui, vertė doleriais. Pavyzdžiui, šis turtas gali būti visas decentralizuoto mainų, tilto ar skolinimo protokolo likvidumas arba visas sukauptas PoS blokų grandinės turtas.

Kripto rinkos investuotojai ir kiti dalyviai TVL naudoja keliais atvejais:

  1. Protokolo sveikatos įvertinimas. Štai kodėl populiarūs protokolai puikuojasi savo TVL pagrindiniame puslapyje. Didesnis TVL = didesnis vartotojų pasitikėjimas = mažesnė rizika = stabilus pelnas.
  2. Protokolų palyginimas. Jei būčiau kriptovaliutų prekiautojas, norėčiau naudoti DeFi įrankius, tokius kaip decentralizuotos biržos ar tiltai su aukštesniu TVL.
  3. Protokolo augimo matavimas. Investuotojai, kurie mato, kad protokolo ar projekto TVL sparčiai auga, mano, kad tai signalas, kad protokolo žetonų kaina yra labai didelė.

Atrodo, svarbu žinoti tikslus TVL numeriai, tiesa?

Bet ką daryti, jei pasakysiu, kad labiausiai prieinami duomenys apie Uniswap v3 TVL yra klaidinantys? Vis dėlto didžiausias netikėtumas man buvo tas pareigūnas Uniswap diagramos programa taip pat yra problema! Štai kaip aš sužinojau.

Dirbau su likvidumo analizės projektu, lyginau oficialius Uniswap v3 duomenis su skaičiavimais, naudojant neapdorotus blokų grandinės duomenis. Šis žingsnis yra būtinas norint laikytis aukščiausių duomenų kokybės standartų. Norėdami pradėti tikrinimą, pasirinkau populiarų likvidumo fondą USDC-WETH (0,3% mokesčio lygis).

vaizdo 202
MEV Bot padidina eterio likvidumą

Pažvelkite į 3 baseiną Uniswap v3 – jo įspūdingas TVL siekia 333 mln. USD (remiantis oficialiais Uniswap diagramomis rašymo metu) ir 61 mln. USD per dieną.

Iškart susidūriau su problema: mano apskaičiuota TVL vertė buvo 176 mln. USD, o ne 333 mln. USD, apie kuriuos pranešta Uniswap svetainėje. Gerai, taip atsitinka klaidų. Tačiau prieš pereidamas prie derinimo nusprendžiau patikrinti TVL populiariausiame Ethereum blockchain explorer, Eterų kanalas. Techniškai kiekvienas Uniswap v3 telkinys yra išmanioji sutartis. Taigi, blokų grandinės tyrinėtojas gali parodyti telkinio turimus žetonų likučius, o tai yra TVL.

vaizdo 203
Standartinis apsikeitimo sandoris.

Tikėjausi, kad fondo žetonų likutis bus šiek tiek didesnis nei TVL, apie kurį pranešė Uniswap. Taip yra todėl, kad fondas turi likvidumą ir mokesčius, kurie buvo sukaupti, bet dar nepareikalauti. Tačiau šis likutis buvo beveik pusė sumos, apie kurią pranešė Uniswap, ir, stebėtinai, tai sutapo su mano skaičiavimais!

Lyginant likvidumą pagal turtą taip pat buvo matyti didžiulis skirtumas. Šiuo metu supratau, kad klaida neturi nieko bendra su mano matematikos įgūdžiais.

vaizdo 205
Ir tai mes vadiname „likvidumo šnipinėjimu“.

Bet kaip tai galėjo atsitikti? Ištyręs radau, kad „Uniswap“ remiasi decentralizuota „blockchain“ indeksavimo paslauga Grafikas. Naudodamiesi šia paslauga, bet kuris kūrėjas gali pridėti asmeninį analizės kodą (vadinamą pografu) konkretiems blokų grandinės duomenų naudojimo atvejams ir padaryti analizę prieinamą per API.

„Uniswap Labs“ sukūrė savo „Uniswap“ protokolo analizės pografius ir padarė juos pasiekiamus per „Graph Hosted“ paslauga. Geras dalykas yra tai, kad jo kodas yra viešai prieinama. Tačiau blogas dalykas yra TVL skaičiavimo klaidos.

Trumpa kodo analizė rodo, kad jame atsižvelgiama į visus apsikeitimo sandorius ir likvidumo įvykius, bet neatsižvelgiama į mokesčius. Vieno apsikeitimo fonduose taikomas 0.01–1% mokestis už kiekvieną apsikeitimą. Šis mokestis išskaičiuojamas iš parduodamo turto ir sukaupiamas likvidumo tiekėjams. Savo ruožtu likvidumo teikėjai gali bet kada rinkti sukauptus mokesčius.

Tačiau dabartiniame Uniswap v3 pografike rodomi skaičiai taip, tarsi jokie mokesčiai niekada nebūtų sukaupti ir surinkti. Taigi, Uniswap v3 TVL skaičiai nukrypo nuo realybės su kiekvienu apsikeitimu.

Jums gali kilti klausimas: „Ar „GitHub“ pateikėte problemos bilietą prieš rašydami šį straipsnį? Taip, tai yra pirmasis mano ketinimas, kai atradau klaidą. Ir žinai ką? Tas klausimas yra jau užsiregistravęs2021 m. lapkritį sukūrė pagrindinis kūrėjas!

Taigi kodėl ši problema nebuvo išspręsta? Neturiu supratimo. Galbūt klaida buvo nereikšminga tuo metu, kai buvo aptikta ši klaida. Tačiau tai yra kaupiamoji klaida, kuri didėja su kiekvienu apsikeitimu. Taigi, augant mokesčiui ir prekybos apimčiai baseine, atsirandantis TVL neatitikimas nuo klaidos lems didesnį skirtumą nuo tikrovės. Ir matome, kad dideliame baseine, pvz., USDC-ETH su didesniu 0.3% mokesčiu, jis tapo nekontroliuojamas! Šiuo metu tai beveik dvigubai daugiau nei tikrieji skaičiai.

Patikriname bendrą TVL

Gerai, mes jau žinome, kad TVL numeriai atskiruose telkiniuose yra iškraipyti. Toliau išnagrinėsime, kaip tai gali paveikti investicinius sprendimus. Tačiau prieš pereidami prie to, pažiūrėkime, kaip šios klaidos paveikia bendrą „Uniswap v3“ protokolo TVL. Skelbiama, kad šio TVL vertė šio rašymo metu yra beveik 12 mlrd.

Nereikia būti duomenų mokslininku, kad pamatytum, kas čia negerai.

vaizdo 207

Aukščiau matome, kad 500 m. kovo 4.5 d. buvo pranešta, kad TVL lėtai, bet nuolat auga nuo 6 mln. USD iki 2022 mlrd. USD. Tada atsitiko kažkas beprotiško ir 254 m. kovo 7 d. TVL buvo pranešta kaip 2022 mlrd. USD. Tai 2,5 karto daugiau nei aukščiausia TVL visame Ethereum tinkle per VIENĄ dieną! Aišku, tai duomenų klaida. Kitomis savaitėmis TVL buvo pranešta kaip 10–20 mlrd. USD.

Šiuo metu praradau bet kokį pasitikėjimą „Uniswap“ analizės duomenimis. Bet kaip mes galime žinoti tikrąją TVL? Turėjau 2 variantus.

1 variantas – išjunkite ir pataisykite Uniswap v3 pografį. Blogas šios parinkties dalykas yra tas, kad prireiks dienų, kol pografas bus iš naujo indeksuojamas. Ir aš nesu GraphQL kalbos, kurią naudoja „The Graph“, gerbėjas.

Laimei, turėjau 2 variantą – – Datamintdidelio našumo analitinės duomenų bazės, skirtos visiems Uniswap v3 ir Ethereum duomenims, lengvai pasiekiamos sudėtingoms internetinėms užklausoms.

Po keleto eksperimentų sukūriau šį algoritmą tiksliam TVL skaičiavimui. Patikrinkite toliau pateiktą žingsnis po žingsnio procesą.

  1. Atlikdami šiuos du veiksmus, apskaičiuokite TVL visiems esamiems Uniswap v3 telkiniams.
    1. Pridėkite visus ERC-20 žetonų pervedimus į fondo sutartį ir iš jos (įskaitant visus nepareikalautas mokesčius) ir suderinkite žetonų likučius Eterų kanalas
    2. Pridėkite visus likvidumo įvykius, gaunamus ir išeinančius, tada pridėkite visus apsikeitimo įvykius atsiskaityti už mokesčius
  2. Palyginkite du metodus ir įsitikinkite, kad neliktų nepaaiškinamų neatitikimų
  3. Pašalinti paliktus ir tuščius telkinius, kuriuose yra mažiau nei 50 apsikeitimo sandorių arba 0.00000000000001 prieigos rakto suma (su aptiktais 7,863 2,083 telkiniais (įskaitant 112 XNUMX poras su arklidėmis), mano algoritmas pašalino XNUMX telkinių kaip tuščius / apleistus)
  4. Raskite kelią iki stabilių monetų kiekvienam žetonui, kad galėtumėte konvertuoti telkinio TVL į USD vertę
  5. Pašalinkite mažo likvidumo fondus su pažeistomis USD vertėmis, nes kai kurių telkinių vertės gali būti netinkamos visiškai pašalinus likvidumą (pavyzdį žr. toliau pateiktoje diagramoje).
vaizdo 208
  1. Konvertuokite visų likusių porų TVL į USD vertę ir pridėkite jas

Po kelių kryžminių patikrinimų sugalvojau TVL skaičiavimą. Pradėjau jį ir norėjau išgerti kavos, kol buvo atliktas skaičiavimas, bet jis baigėsi man neatsistojus. Tai vienintelis trūkumas naudojant didelio našumo analitinę duomenų bazę.

Ar esate pasiruošę pamatyti rezultatą?

vaizdo 210

Jau beveik 4 kartus mažiau nei pranešta $11,8b… Jūs turite padaryti išvadą.

Atsakomybės neigimas: Mano skaičiavime gali būti klaidų. Duomenų projektuose verslo klientams naudojame dokumentais pagrįstą metodiką, automatinius testus ir daugybę kitų įrankių, kad pasiektume aukščiausią duomenų kokybę. Šios priemonės būtų pernelyg didelės tokiam asmeniniam tyrimų projektui kaip šis. Šis tyrimas išryškina akivaizdžias turimų duomenų problemas, o ne pateikia galutinį sprendimą.

Gerai, pataisysime TVL skaičiavimus – ar tai padės?

Problema yra ne neteisingi skaičiai, o sprendimai, kuriuos priimame remiantis šiais skaičiais. Pavyzdžiui, dauguma likvidumo teikėjų pelno skaičiuoklių naudoja šiuos skaičius prognozėms.

Tačiau sutvarkyti TVL skaičiavimą nėra taip sunku. Arba Uniswap Labs tai pataiso savo pografo kode, arba skaičiuotuvų kūrėjai pradeda naudoti kitus duomenų šaltinius. Pagrindinis klausimas yra, ar galime būti tikri, kad skaičiuotuvo prognozės yra teisingos.

Aš atlikau keletą skaičiavimų ir trumpas atsakymas yranet neuždaryta.

Žinau, drąsus teiginys. Daugelis likvidumo teikėjų naudoja esamas skaičiuokles ir daro įtaką sprendimams, kurie kainuoja dešimtis milijonų dolerių. Tačiau atlikime skaičiavimo veiksmus, kad galėtumėte nuspręsti patys.

Pirmiausia apžvelkime kai kurias pagrindines Uniswap v3 protokolo sąvokas.

Viena pagrindinių jos naujovių – koncentruotas likvidumas. Iš esmės, naudodami Uniswap v3, galite pasirinkti kainų diapazoną, kuriame norite, kad jūsų pinigai veiktų kaip likvidumo teikėjas. Tai nuostabi koncepcija, kuri gali suteikti didelę vertę protokolo vartotojams. Likvidumo teikėjai riboja savo nuolatinių nuostolių riziką, o prekybininkai gali mėgautis mažesniu kainų slydimu, kai nepastovumas yra mažas. Bet visa tai potencialas nauda kainuoja-sudėtingumas.

vaizdo 211

Taigi, norime suprasti, kaip apskaičiuojamos Uniswap v3 likvidumo teikėjo pajamos.

Uniswap v3 atveju likvidumo teikėjas pasirenka kainų intervalą, kuriam teikti likvidumą. Kai kaina bus šio diapazono ribose, jis sumažins apsikeitimo mokesčius. Iš pirmo žvilgsnio likvidumo teikėjas nori, kad jo likvidumo pozicijos kainų diapazonas būtų kuo platesnis. Tačiau likvidumas paskirstomas proporcingai šiame diapazone. Taigi, kuo platesnis diapazonas, tuo mažesnis kiekvieno sandorio apsikeitimo mokestis.

vaizdo 211

Šiame pavyzdyje A variantas rodo, kad likvidumo teikėjas pasirenka platesnį kainų diapazoną, o 2 variantas – siauresnį su ta pačia suma. Jei abiem atvejais kaina patenka į pasirinktą kainų intervalą, likvidumo teikėjas gauna 3 kartus daugiau mokesčių pasirinkus B variantą. Tačiau jei kaina yra nepastovi, likvidumo teikėjas gali gauti didesnį pelną pasirinkęs A variantą.

Taigi iš tikrųjų, pasirenkant tinkamą kainų diapazoną, reikia rasti geriausią pusiausvyrą tarp rizikos praleisti kainą ir mažesnės grąžos už kiekvieną sandorį.

Dar vienas parametras turi įtakos likvidumo teikėjo pelnui ir dažnai nepaisomas. Aš nežinau jokios LP pelno skaičiuoklės, kuri tai atsižvelgtų, ir šis parametras gali pakeisti viską. Jums įdomu, kas tai yra dabar. Tai LP platinimas. Apsvarstykite šį pavyzdį:

vaizdo 212

Šiame pavyzdyje du likvidumo teikėjai (LP1 ir LP2) turi pozicijas. LP1 užima siaurą 3 USD poziciją. LP2 turi didelę 5 USD poziciją. Tokiu atveju, jei kaina nepalieka LP1 pozicijos diapazono, jis gaus 3 kartus daugiau mokesčių nei LP2. Taip yra todėl, kad LP2 šiame diapazone turi tik 1 USD. Ir šis 1 USD konkuruoja su 3 USD LP1.

Jei pažvelgsite į bet kurio Uniswap v3 fondo likvidumo pasiskirstymą, pamatysite, kad jis nėra vienodas.

vaizdo 213

Kuo aukštesnė kartelė, tuo didesnė konkurencija. Likvidumo teikėjai turi rasti pusiausvyrą tarp konkurencingų diapazonų ir mažesnės kainos nukritimo tikimybės pasirinkimo. Štai kodėl šis paskirstymas vaidina svarbų vaidmenį prognozuojant LP pelną ir kuriant strategiją. Vienintelė problema yra... Nesu tikras, kad šis skirstymas tinkamai apskaičiuotas.

Lyg to būtų negana – Likvidumo snaiperiai

Būti likvidumo tiekėju reiškia atspėti kainą, konkurencijos būklę ir prekybos apimtį. Jei VP norėtų, tai būtų žinoti sandorių ateitį ir iš anksto pakoreguoti likvidumo pozicijas.

Bet kas, jei aš jums pasakysiu, kad tai įmanoma?

Atliekant tyrimus, mano dėmesį patraukė kai kurie neįprasti likvidumo teikėjai. Jie daug kartų per dieną pridėjo ir pašalino reikšmingas likvidumo pozicijas (daugiau nei 10 mln. USD). Dar labiau stebina tai, kad jie visada pridėdavo ir pašalindavo likvidumą tame pačiame bloke.

Pažvelkime į pavyzdį:

vaizdo 214

Turime tris operacijas, visas 15413416 bloke, 3-5 pozicijose, vykdomas tvarka iš apačios į viršų. Pirmoji operacija, naudojant „Execute“ metodą, yra sutartis pavadinimu „MEV Bot“, pridedant USDC-WETH fondui 22 mln. USD likvidumo.

vaizdo 215

Antrasis sandoris yra apsikeitimas iš USDC į DogeChain per WETH. Tai įprastas apsikeitimas, kurio vertė yra maždaug 16,500 XNUMX USD.

vaizdo 216

Trečiasis sandoris vėl yra „MEV Bot“, pašalinantis 22 mln. USD likvidumą iš USDC-WETH fondo.

vaizdo 217

Tai, kas atsitiko pavyzdyje, vadinama „likvidumo šnipinėjimu“. Leiskite man paaiškinti, kaip tai veikė:

  1. Kažkas atsiuntė sandorį pakeisti USDC į DogeChain
  2. MEV Bot aptiko šią operaciją atmintinėje ir suaktyvino privačią nuorodą su kasybos telkiniu, naudodamas „Flashbots“ technologiją ar kažką panašaus
  3. MEV Bot sumokėjo kalnakasiams, kad jie įtrauktų apsikeitimo sandorį ir du sandorius konkrečia tvarka, leidžiančia išgauti vertę
  4. MEV Botas pridėjo tiek daug likvidumo (22 mln. USD) į labai siaurą kainų diapazoną, todėl iš tikrųjų visas mokesčių pelnas iš tos konkrečios USDC-DogeChain prekybos buvo sukauptas jam.
  5. Tada MEV Bot pašalino likvidumą ir uždirbo mokesčius (apie 35 USD)

Taigi, jo bendrasis pelnas po dujų mokesčių buvo apie 30 USD. Nelabai daug? Taip, bet jis šią strategiją vykdo kelis kartus per minutę, o tai sumuojasi. Tu gali patikrinkite patys.

Ką tai reiškia jums, kaip likvidumo tiekėjui? Tai reiškia, kad likvidumo snaiperiai gali gerokai sumažinti jūsų mokesčių pelną.

Išvada

Leiskite apibendrinti savo tyrimo išvadas:

  1. TVL skaičiai Uniswap v3 diagramose yra labai netikslūs. Tos pačios klaidos yra visose analizės priemonėse, kurios remiasi oficialiu Uniswap v3 pografu.
  2. Iš viso Uniswap v3 TVL yra 3,14 mlrd. USD ir 11,8 mlrd. USD, apie kuriuos pranešė oficiali svetainė (rašymo metu).
  3. Skaičiuoklės, skirtos Uniswap v3 likvidumo tiekėjams, yra mažai naudingos realioms strategijoms, nes jose neatsižvelgiama į konkurenciją ir likvidumo snaiperius.
vaizdo 218

Laimei, dabar galite geriau suprasti, kaip Uniswap v3 likvidumo fondai veikia realiame gyvenime, ir galite atitinkamai pakoreguoti savo tyrimą.

Negaliu duoti finansinių patarimų, bet matau tik 2 galimybes sukurti svarbią likvidumo didinimo strategiją:

  1. PAPRASTA. Naudokite istorinius našumo duomenis. Išbandykite kai kurias likvidumo pozicijas su mažais statymais ir pažiūrėkite, kurios galimybės veikia geriau. Akivaizdu, kad tai veikia tik darant prielaidą, kad rinka yra stabili.
  2. DETALI. Atlikite tyrimą ir atitinkamai optimizuokite LP strategiją. Kaip minėjome aukščiau, tam reikia nuodugniai išmanyti Uniswap v3 protokolą, matematikos ir žaidimų teorijos kompetencijas bei galingą duomenų analizės įrankį, kad būtų galima apdoroti didžiulius duomenų kiekius realiuoju laiku.

Abi parinktys turi vieną bendrą bruožą – savo sprendimus grindžiate duomenimis, o ne nuojauta ar atsitiktiniais įrankiais. Kartais dirbti su duomenimis yra sunku, bet tai apsimoka.

„Datamint“ visada esame pasiruošę padėti jums įgyvendinti tinkintus duomenų projektus.

Tegul duomenys būna su jumis!

Šaltinis: https://www.cryptopolitan.com/uniswap-v3-liquidity-farming-calculations/