Vsi vaši izračuni likvidnosti Uniswap v3 so popolnoma napačni! Evo zakaj

2 x 2 = 5

Veš, da je narobe, a ko ga prvič vidiš, se še enkrat zamisliš in pomisliš: »Mogoče je nekaj narobe z mojim izračunom«. Prav?

No, točno tako sem se počutil, ko sem odkril, da so bili podatki o likvidnosti in TVL (Total Value Locked), prikazani na uporabniškem vmesniku Uniswap V3, popolnoma napačni.

Uniswap je največje decentralizirano financiranje (Defi) projekt naprej Ethereum in celota blockchain industrija. Na tisoče ponudnikov likvidnosti dnevno uporablja te številke za izgradnjo svojih naložbenih strategij. Torej, kako so lahko te številke netočne?

Ure in ure sem poskušal najti napako v svojih izračunih in veš kaj? Nisem naredil nobene napake. In situacija je še hujša kot le netočna TVL.

Toda pojdimo korak za korakom in začnimo s problemom.

Težava

Prvič, kaj je TVL in kako se uporablja? Skratka, TVL je opredeljen kot dolarska vrednost vseh kripto sredstev, ki so jih uporabniki trenutno delegirali v verigo blokov ali protokol. Ta sredstva so lahko na primer skupna likvidnost decentralizirane borze, premostitvenega protokola ali protokola posojanja ali skupna vložena sredstva verige blokov PoS.

Vlagatelji na kripto trgu in drugi udeleženci uporabljajo TVL za več primerov:

  1. Ocena zdravja protokola. Zato se priljubljeni protokoli ponašajo s svojim TVL na glavni strani. Večji TVL = več zaupanja uporabnikov = manjše tveganje = stabilen dobiček.
  2. Primerjava med protokoli. Če bi bil trgovec s kripto, bi raje uporabljal orodja DeFi, kot so decentralizirane borze ali mostovi, z višjim TVL.
  3. Merjenje rasti protokola. Vlagatelji, ki vidijo, da TVL protokola ali projekta hitro raste, menijo, da je to znak, da so optimistični glede cene žetona protokola.

Zdi se, da je pomembno vedeti natančna TVL številke, kajne?

Kaj pa, če rečem, da so najbolj razpoložljivi podatki o Uniswap v3 TVL zavajajoči? Največje presenečenje zame pa je bilo to uradno Aplikacija Uniswap Chart je tudi problem! Tukaj sem izvedel.

Delal sem na projektu analitike likvidnosti in primerjal uradne podatke o Uniswap v3 s svojimi izračuni z uporabo neobdelanih podatkov verige blokov. Ta korak je ključnega pomena za izpolnjevanje najvišjih standardov kakovosti podatkov. Za začetek preverjanja sem izbral priljubljeno skupino likvidnosti USDC-WETH (stopnja provizije 0,3 %).

slika 202
MEV Bot dodaja likvidnost za Ether

Poglejte bazen 3 na Uniswap v3 – ima impresiven TVL 333 milijonov $ (temelji na uradnih lestvicah Uniswap v času pisanja) in zdrav dnevni obseg 61 milijonov $.

Takoj sem naletel na težavo: moja izračunana vrednost TVL je bila 176 milijonov dolarjev namesto 333 milijonov dolarjev, navedenih na spletnem mestu Uniswap. Ok, hrošči se torej dogajajo. Preden pa preidem na odpravljanje napak, sem se odločil preveriti TVL na najbolj priljubljenem raziskovalcu verige blokov Ethereum, Etherscan. Tehnično je vsak bazen Uniswap v3 pametna pogodba. Torej lahko raziskovalec verige blokov prikaže stanja žetonov v posesti bazena, kar je TVL.

slika 203
Standardna menjalna transakcija.

Pričakoval sem, da bo stanje žetonov v bazenu nekoliko večje od TVL, o katerem poroča Uniswap. To je zato, ker ima združenje likvidnost in provizije, ki so bile nabrane, vendar še niso zahtevane. Toda to stanje je bilo skoraj polovica zneska, ki ga je poročal Uniswap, in, presenetljivo, enaka številki kot moji izračuni!

Tudi primerjava likvidnosti, sredstvo za sredstvom, je pokazala veliko razliko. Na tej točki sem ugotovil, da napaka ni imela nobene zveze z mojimi matematičnimi sposobnostmi.

slika 205
In temu pravimo »likvidnostno ostrostrelno iskanje«.

Toda kako se je to lahko zgodilo? Po raziskavi sem ugotovil, da se Uniswap opira na decentralizirano storitev indeksiranja blockchain Graf. S to storitvijo lahko vsak razvijalec doda osebno analitično kodo (imenovano podgraf) za posebne primere uporabe podatkov verige blokov in omogoči analitiko na voljo prek API-ja.

Uniswap Labs je ustvaril lastne podgrafe za analitiko protokola Uniswap in jih dal na voljo prek Storitev gostovanja Graph. Dobra stvar je, da je njegova koda javno dostopna. Slaba stvar pa so njegove napake pri izračunu TVL.

Kratka analiza kode pokaže, da upošteva vse zamenjave in likvidnostne dogodke, ne upošteva pa provizij. Bazeni Uniswap imajo 0.01 % do 1 % provizije za vsako zamenjavo. Ta provizija se odšteje od sredstev, s katerimi se trguje, in se pripiše vzdrževalcem likvidnosti. Ponudniki likvidnosti pa lahko kadar koli poberejo natečene provizije.

Trenutni podgraf Uniswap v3 pa prikazuje številke, kot da provizije nikoli niso bile nabrane in pobrane. Torej so številke Uniswap v3 TVL z vsako zamenjavo odstopale od realnosti.

Morda se sprašujete: "Ali ste pred pisanjem tega članka na GitHub predložili prijavo izdaje?" Da, to je moj prvi namen po odkritju napake. In veš kaj? To vprašanje je že prijavljen, ki ga je ustvaril glavni razvijalec novembra 2021!

Zakaj torej ta težava ni bila odpravljena? Nimam pojma. Mogoče je bila napaka zanemarljiva v času, ko je bila odkrita ta napaka. Vendar je to kumulativna napaka, ki raste z vsako zamenjavo. Ko torej provizija in obseg trgovanja v skupini rasteta, bo posledično odstopanje TVL od napake povzročilo večjo razliko od realnosti. In lahko vidimo, da je v velikem bazenu, kot je USDC-ETH z večjim 0.3-odstotnim nadomestilom, ušlo izpod nadzora! Trenutno je skoraj dvakrat več od resničnih številk.

Preverimo skupno TVL

V redu, zdaj vemo, da so številke TVL v posameznih skupinah popačene. Spodaj bomo raziskali, kako lahko to vpliva na naložbene odločitve. Toda preden se lotimo tega, poglejmo, kako te napake vplivajo na skupni TVL protokola Uniswap v3. V času pisanja je ta TVL ocenjen na skoraj 12 milijard dolarjev.

Ni vam treba biti podatkovni znanstvenik, da vidite, da je tukaj nekaj narobe.

slika 207

Zgoraj lahko vidimo, da je TVL poročal o počasnem, a vztrajnem naraščanju s 500 milijonov dolarjev na 4.5 milijarde dolarjev 6. marca 2022. Nato se je zgodilo nekaj norega in 254. marca 7 je bil TVL po poročanju 2022 milijard dolarjev. To je 2,5-krat več kot najvišji TVL celotnega omrežja Ethereum doslej – v ENEM dnevu! Očitno gre za napako v podatkih. V naslednjih tednih so poročali o TVL med 10 in 20 milijardami dolarjev.

Na tej točki sem izgubil vse zaupanje v analitične podatke Uniswap. Toda kako lahko poznamo pravi TVL? Imel sem 2 možnosti.

Možnost 1—razdelite in popravite podgraf Uniswap v3. Slaba stvar pri tej možnosti je, da bi trajalo nekaj dni, da se podgraf ponovno indeksira. In nisem oboževalec jezika GraphQL, ki ga uporablja Graph.

Na srečo sem imel možnost 2—- DatamintVisoko zmogljive analitične baze podatkov za vse podatke Uniswap v3 in Ethereum, ki so takoj na voljo za zapletene spletne poizvedbe.

Po nekaj poskusih sem ustvaril naslednji algoritem za natančen izračun TVL. Spodaj preverite postopek po korakih.

  1. Izračunajte TVL za vsa obstoječa združenja Uniswap v3 s pomočjo teh dveh korakov.
    1. Dodajte vse prenose žetonov ERC-20 v pogodbo o bazenu in iz nje (to vključuje vse nezahtevane provizije) in uskladite stanja žetonov na Etherscan
    2. Dodajte vse likvidnostne dogodke, dohodne in odhodne, nato dodajte vse dogodke zamenjave v račun za pristojbine
  2. Primerjajte obe metodi in zagotovite, da ne ostanejo nepojasnjena odstopanja
  3. Odstranite zapuščene in prazne bazene z manj kot 50 zamenjavami ali 0.00000000000001 zneskom žetona (z zaznanimi 7,863 bazeni (vključno s 2,083 pari s stabilnimi) je moj algoritem odstranil 112 bazenov kot praznih/zapuščenih)
  4. Poiščite pot do stabilnih kovancev za vsak žeton, da pretvorite skupni TVL v vrednost USD
  5. Odstranite skupine z nizko likvidnostjo z zlomljenimi vrednostmi USD, saj lahko nekatera združenja po popolni odstranitvi likvidnosti prikazujejo neustrezne vrednosti (preverite spodnjo tabelo kot primer)
slika 208
  1. Pretvorite TVL vseh preostalih parov v vrednost USD in jih dodajte

Po več navzkrižnih preverjanjih sem prišel do izračuna TVL. Začel sem ga in hotel popiti kavo, medtem ko je bil izračun izveden, vendar se je končal, preden sem vstal. To je edina slaba stran uporabe visoko zmogljive analitične baze podatkov.

Ste pripravljeni videti rezultat?

slika 210

Skoraj je že 4-krat manj kot prijavljeni $11,8b… Na vas je, da naredite zaključek.

Zavrnitev odgovornosti: Moj izračun lahko vsebuje napake. V podatkovnih projektih za poslovne stranke uporabljamo dokumentirano metodologijo, samodejne teste in mnoga druga orodja za doseganje najvišje kakovosti podatkov. Ta orodja bi bila pretirana za osebni raziskovalni projekt, kot je ta. Ta raziskava poudarja očitne težave v razpoložljivih podatkih, namesto da bi zagotovila končno rešitev.

V redu, popravili bomo izračune TVL – bo pomagalo?

Težava niso napačne številke, temveč odločitve, ki jih sprejemamo na podlagi teh številk. Na primer, večina kalkulatorjev dobička za ponudnike likvidnosti uporablja te številke za napovedi.

Vendar pa ni tako težko popraviti izračuna TVL. Bodisi Uniswap Labs to popravi v svoji podgrafski kodi ali pa razvijalci kalkulatorjev začnejo uporabljati druge vire podatkov. Glavno vprašanje je, ali smo lahko prepričani, da so napovedi kalkulatorja pravilne.

Naredil sem nekaj izračunov in kratek odgovor je -niti zaprta.

Drzna trditev, vem. Mnogi ponudniki likvidnosti uporabljajo obstoječe kalkulatorje in vplivajo na odločitve, ki stanejo na desetine milijonov dolarjev. Toda pojdimo skozi korake izračuna, da boste lahko presodili sami.

Najprej si oglejmo nekaj temeljnih konceptov protokola Uniswap v3.

Ena njegovih glavnih novosti je koncentrirana likvidnost. V bistvu lahko z Uniswap v3 izberete cenovni razpon, za katerega želite, da vaš denar deluje kot ponudnik likvidnosti. To je neverjeten koncept, ki lahko uporabnikom protokola prinese veliko vrednost. Ponudniki likvidnosti omejujejo svojo izpostavljenost trajnim izgubam, trgovci pa lahko uživajo v manjšem zdrsu cen, ko je volatilnost nizka. Ampak vse te potencial koristi imajo svojo ceno -kompleksnost.

slika 211

Zato želimo razumeti, kako se izračunajo zaslužki ponudnika likvidnosti Uniswap v3.

V Uniswap v3 ponudnik likvidnosti izbere cenovni razpon, ki mu bo zagotovil likvidnost. Ko bo cena v tem razponu, bo prejel svoj del provizij za zamenjavo. Na prvi pogled vzdrževalec likvidnosti želi imeti čim širši cenovni razpon svoje likvidnostne pozicije. Vendar je likvidnost sorazmerno porazdeljena v tem razponu. Torej, širši kot je razpon, nižja je provizija za zamenjavo za vsak posel.

slika 211

V tem primeru možnost A prikazuje ponudnika likvidnosti, ki izbere širši cenovni razpon, možnost 2 pa prikazuje ožjega z enakim zneskom. Pod pogojem, da je v obeh primerih cena znotraj izbranega cenovnega razpona, dobi vzdrževalec likvidnosti 3x več provizij pri možnosti B. Če pa je cena bolj nestanovitna, lahko vzdrževalec likvidnosti pri možnosti A doseže višji dobiček.

Torej je v resnici izbira pravega cenovnega razpona odvisna od iskanja najboljšega ravnovesja med tveganjem zgrešene cene in nižjim donosom za vsak posel.

Še en parameter vpliva na dobiček vzdrževalca likvidnosti in je pogosto spregledan. Ne poznam nobenega kalkulatorja dobička LP, ki bi to upošteval, ta parameter pa lahko spremeni vse. Zdaj se sprašujete, kaj je to. To je distribucija plošč. Razmislite o naslednjem primeru:

slika 212

V tem primeru imata dva ponudnika likvidnosti (LP1 in LP2) pozicije. LP1 ima ozko pozicijo 3 $. LP2 ima široko pozicijo 5 $. V tem primeru, če cena ne zapusti razpona pozicije LP1, bo prejel 3x več provizij kot LP2. To je zato, ker ima LP2 samo 1 $ v tem razponu. In ta 1 $ tekmuje s 3 $ LP1.

Če pogledate porazdelitev likvidnosti katerega koli bazena Uniswap v3, boste videli, da ni enotna.

slika 213

Višja je letvica, večja je konkurenca. Ponudniki likvidnosti morajo najti ravnotežje med izbiro konkurenčnih razponov in razponom z manjšo verjetnostjo padca cene. Zato ima ta porazdelitev veliko vlogo pri napovedovanju dobička LP in gradnji strategije. Edina težava je … nisem prepričan, da je ta porazdelitev pravilno izračunana.

Kot da to ni dovolj – ostrostrelci likvidnosti

Biti ponudnik likvidnosti pomeni ugibati ceno, stanje konkurence in obseg trgovanja. Če bi imel LP željo, bi bilo treba vedeti prihodnost poslov, da bi vnaprej prilagodil likvidnostne pozicije.

Kaj pa, če vam povem, da je to mogoče?

Med raziskovanjem so mojo pozornost pritegnili nekateri nenavadni ponudniki likvidnosti. Večkrat na dan so dodali in odstranili pomembne likvidnostne pozicije (več kot 10 milijonov USD). Še bolj presenetljivo je, da so vedno dodajali in odvzemali likvidnost v istem bloku.

Oglejmo si primer:

slika 214

Imamo tri transakcije, vse v bloku 15413416, pozicije 3-5, izvedene v vrstnem redu od spodaj navzgor. Prva transakcija z metodo Execute je pogodba z imenom »MEV Bot«, ki naboru USDC-WETH doda 22 milijonov USD likvidnosti.

slika 215

Druga transakcija je zamenjava iz USDC v DogeChain prek WETH. To je običajna zamenjava v vrednosti približno 16,500 USD.

slika 216

Tretja transakcija je spet »MEV Bot«, ki odvzame 22 milijonov $ likvidnosti iz sklada USDC-WETH.

slika 217

Kar se je zgodilo v primeru, se imenuje "likvidnostno ostrostrelno opazovanje". Naj pojasnim, kako je to delovalo:

  1. Nekdo je poslal transakcijo za zamenjavo USDC za DogeChain
  2. MEV Bot je zaznal to transakcijo v mempoolu in aktiviral zasebno povezavo z rudarskim bazenom s tehnologijo Flashbots ali kaj podobnega
  3. MEV Bot je plačal rudarjem, da so vključili transakcijo zamenjave in dve transakciji v določenem vrstnem redu, ki je omogočal pridobivanje vrednosti
  4. MEV Bot je dodal toliko likvidnosti (22 milijonov USD) zelo ozkemu cenovnemu razponu, tako učinkovito, da so bili vsi dobički od provizij iz te posebne trgovine USDC-DogeChain pripisani njemu.
  5. MEV Bot je nato odstranil likvidnost in zaslužene provizije (približno 35 USD)

Torej je bil njegov bruto dobiček po plačilu plina okoli 30 USD. Ne preveč? Da, vendar to strategijo izvaja večkrat na minuto, kar se vse skupaj sešteje. Ti lahko preverite sami.

Kaj to pomeni za vas kot vzdrževalca likvidnosti? To pomeni, da bi lahko likvidnostni ostrostrelci občutno zmanjšali vaš dobiček od honorarjev.

zaključek

Naj povzamem ugotovitve svoje raziskave:

  1. Številke TVL v grafikonih Uniswap v3 so skrajno netočne. Enake napake obstajajo v vseh analitičnih orodjih, ki se opirajo na uradni podgraf Uniswap v3.
  2. Skupni TVL Uniswap v3 znaša 3,14 milijarde USD v primerjavi z 11,8 milijarde USD, kot poroča uradna spletna stran (v času pisanja).
  3. Kalkulatorji za ponudnike likvidnosti Uniswap v3 nimajo velike vrednosti za strategije v resničnem življenju, ker ne upoštevajo konkurence in likvidnostnih ostrostrelcev.
slika 218

Na srečo lahko zdaj bolje razumete, kako likvidnostni skladi Uniswap v3 delujejo v resničnem življenju, in lahko temu primerno prilagodite svoje raziskave.

Ne morem dajati finančnih nasvetov, vendar vidim le dve možnosti za izgradnjo vidne strategije za zagotavljanje likvidnosti:

  1. ENOSTAVEN. Uporabite pretekle podatke o uspešnosti. Preizkusite nekaj likvidnostnih pozicij z majhnimi vložki in preverite, katere možnosti delujejo bolje. Očitno to deluje samo ob predpostavki, da je trg stabilen.
  2. NAPREDNA. Izvedite raziskavo in ustrezno optimizirajte strategijo LP. Kot smo opisali zgoraj, to zahteva poglobljeno razumevanje protokola Uniswap v3, kompetence matematike in teorije iger ter zmogljivo orodje za analizo podatkov za obdelavo ogromnih količin podatkov v realnem času.

Obe možnosti imata eno skupno lastnost – svoje odločitve temeljite na podatkih in ne na občutku ali naključnih orodjih. Včasih je delo s podatki težko, a se splača.

Pri Datamintu smo vedno tu, da vam pomagamo pri vaših projektih podatkov po meri.

Naj bodo podatki z vami!

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