Toate calculele dvs. de lichiditate Uniswap v3 sunt total greșite! Iata de ce

2 2 x = 5

Știi că este greșit, dar când îl vezi prima oară, te gândești și te gândești: „Poate că ceva nu este în regulă cu calculul meu”. Dreapta?

Ei bine, exact așa m-am simțit când am descoperit că cifrele de lichiditate și TVL (Total Value Locked) afișate pe interfața de utilizator Uniswap V3 erau complet greșite.

Uniswap este cea mai mare finanțare descentralizată (DEFI) proiect pe Ethereum și întregul blockchain industrie. Mii de furnizori de lichidități folosesc aceste cifre zilnic pentru a-și construi strategiile de investiții. Deci, cum ar putea aceste cifre să fie inexacte?

Am petrecut ore întregi încercând să găsesc o greșeală în calculele mele și ghici ce? Nu am făcut nicio greșeală. Și situația este chiar mai rea decât doar TVL inexact.

Dar să mergem pas cu pas și să începem cu problema.

Problema

În primul rând, ce este TVL și cum se utilizează? Pe scurt, TVL este definit ca o valoare în dolari a tuturor activelor cripto delegate în prezent de utilizatori unui blockchain sau protocol. De exemplu, aceste active pot fi lichiditatea totală a unui protocol de schimb descentralizat, punte sau de împrumut, sau totalul activelor mizate ale blockchain-ului PoS.

Investitorii de pe piața cripto și alți participanți folosesc TVL pentru mai multe cazuri:

  1. Evaluarea stării de sănătate a protocolului. Acesta este motivul pentru care protocoalele populare își laudă TVL-ul pe pagina principală. TVL mai mare = mai multă încredere în utilizatori = risc mai mic = profit stabil.
  2. Comparație între protocoale. Dacă aș fi un trader cripto, aș prefera să folosesc instrumente DeFi, cum ar fi schimburi descentralizate sau bridge-uri, cu TVL mai mare.
  3. Măsurarea creșterii protocolului. Investitorii care văd că TVL-ul unui protocol sau al unui proiect crește rapid, consideră că este un semnal de a fi optimist cu privire la prețul simbol al protocolului.

Se pare că este important de știut precis Numerele TVL, nu?

Dar dacă spun că cele mai disponibile date despre Uniswap v3 TVL sunt înșelătoare? Cea mai mare surpriză pentru mine a fost însă că oficialul Aplicația Uniswap Chart este si o problema! Iată cum am aflat.

Lucram la un proiect de analiză a lichidității, comparând datele oficiale despre Uniswap v3 cu calculele mele folosind date brute blockchain. Acest pas este vital pentru a respecta cele mai înalte standarde de calitate a datelor. Pentru a începe verificarea, am ales un grup de lichidități popular, USDC-WETH (nivel de comision de 0,3%).

imagine 202
MEV Bot adaugă lichiditate pentru Ether

Uitați-vă la grupul 3 de pe Uniswap v3 — are un TVL impresionant de 333 de milioane de dolari (pe baza graficelor oficiale Uniswap la momentul scrierii) și un volum zilnic sănătos de 61 de milioane de dolari.

Imediat m-am confruntat cu o problemă: valoarea TVL calculată a fost de 176 milioane USD în loc de 333 milioane USD raportate pe site-ul Uniswap. Ok, deci apar erori. Dar înainte de a trece la depanare, am decis să verific TVL pe cel mai popular explorator blockchain Ethereum, Etherscan. Din punct de vedere tehnic, fiecare grup Uniswap v3 este un contract inteligent. Deci, exploratorul blockchain poate arăta soldurile de jetoane aflate în posesia pool-ului, ceea ce este TVL.

imagine 203
Tranzacție standard de swap.

Mă așteptam ca soldul token al pool-ului să fie puțin mai mare decât TVL raportat de Uniswap. Acest lucru se datorează faptului că grupul deține lichidități, precum și comisioane care au fost acumulate, dar care nu au fost încă solicitate. Dar acest sold a fost aproape jumătate din suma raportată de Uniswap și, în mod surprinzător, a fost aceeași cifră ca și calculele mele!

Compararea lichidității, activ cu activ, a arătat, de asemenea, o diferență uriașă. În acest moment, mi-am dat seama că eroarea nu avea nimic de-a face cu abilitățile mele de matematică.

imagine 205
Și aceasta este ceea ce numim „lichidity sniping”.

Dar cum s-ar putea întâmpla asta? După cercetare, am descoperit că Uniswap se bazează pe serviciul de indexare blockchain descentralizat Graficul. Cu acest serviciu, orice dezvoltator poate adăuga un cod de analiză personal (numit subgraf) pentru anumite cazuri de utilizare a datelor blockchain și poate face analiza disponibilă prin API.

Uniswap Labs și-a creat propriile subgrafe pentru analiza protocolului Uniswap și le-a pus la dispoziție prin Serviciul găzduit Graph. Lucrul bun este că codul său este public. Lucrul rău, totuși, sunt erorile sale de calcul TVL.

O scurtă analiză a codului arată că acesta ține cont de toate swapurile și evenimentele de lichiditate, dar nu ține cont de comisioane. Pool-urile Uniswap au o taxă de 0.01% până la 1% pentru fiecare swap. Această taxă este dedusă din activele tranzacționate și acumulată furnizorilor de lichidități. La rândul lor, furnizorii de lichidități pot colecta comisioane acumulate în orice moment.

Subgraful actual Uniswap v3, totuși, afișează cifrele ca și cum nu ar fi fost vreodată acumulate și colectate taxe. Deci, cifrele Uniswap v3 TVL au deviat de la realitate cu fiecare schimb.

S-ar putea să vă întrebați: „Ați trimis un bilet de emisiune pe GitHub înainte de a scrie acest articol?” Da, aceasta este prima mea intenție după ce am descoperit eroarea. Și știi ce? Acea problemă este deja logat, creat de un dezvoltator de bază în noiembrie 2021!

Deci de ce nu a fost rezolvată această problemă? Nu am nici o idee. Poate că eroarea a fost neglijabilă în momentul în care a fost descoperită această eroare. Cu toate acestea, aceasta este o eroare cumulată care crește cu fiecare schimb. Deci, pe măsură ce comisionul și volumul de tranzacționare din pool cresc, discrepanța TVL rezultată din eroare va duce la o diferență mai mare față de realitate. Și putem vedea că într-un grup mare precum USDC-ETH cu o taxă mai mare de 0.3% — a scăpat de sub control! În prezent, este aproape dublu față de cifrele reale.

Să verificăm TVL total

Ok, știm până acum că numerele TVL din grupurile individuale sunt distorsionate. Vom explora mai jos modul în care acest lucru poate afecta deciziile de investiții. Dar înainte de a ajunge la asta, să vedem cum aceste erori afectează totalul TVL al protocolului Uniswap v3. Acest TVL este raportat la aproape 12 miliarde USD la momentul scrierii acestui articol.

Nu trebuie să fii cercetător de date pentru a vedea că ceva nu este în regulă aici.

imagine 207

Putem vedea mai sus că TVL a fost raportat ca crește lent, dar constant, de la 500 de milioane de dolari la 4.5 miliarde de dolari pe 6 martie 2022. Apoi s-a întâmplat ceva nebunesc, iar TVL a fost raportat ca 254 de miliarde de dolari pe 7 martie 2022. Este de 2,5 ori mai mult decât cel mai mare TVL din întreaga rețea Ethereum vreodată — într-o zi! În mod clar, este o greșeală în date. În săptămânile următoare, TVL a fost raportat ca 10-20 miliarde USD.

În acest moment, mi-am pierdut toată încrederea în datele de analiză Uniswap. Dar cum putem cunoaște adevăratul TVL? Am avut 2 variante.

Opțiunea 1: scoateți și reparați subgraful Uniswap v3. Lucrul rău la această opțiune este că ar dura câteva zile pentru ca subgraful să se reindexeze. Și nu sunt un fan al limbajului GraphQL pe care îl folosește Graph.

Din fericire, am avut varianta 2—— Datamintbazele de date analitice de înaltă performanță pentru toate datele Uniswap v3 și Ethereum, ușor disponibile pentru interogări online complexe.

După câteva experimente, am creat următorul algoritm pentru un calcul precis al TVL. Verificați procesul pas cu pas mai jos.

  1. Calculați TVL pentru toate pool-urile Uniswap v3 existente utilizând acești doi pași.
    1. Adăugați toate transferurile de jetoane ERC-20 către și de la contractul de grup (aceasta include toate taxele nerevendicate) și potriviți soldurile de jetoane pe Etherscan
    2. Adăugați toate evenimentele de lichiditate, de intrare și de ieșire, apoi adăugați toate evenimentele de swap la cont pentru taxe
  2. Comparați cele două metode și asigurați-vă că nu rămân discrepanțe inexplicabile
  3. Eliminați pool-urile abandonate și goale cu mai puțin de 50 de schimburi sau 0.00000000000001 token (cu 7,863 de pool-uri detectate (inclusiv 2,083 de perechi cu grajduri), algoritmul meu a eliminat 112 pool-uri ca goale/abandonate)
  4. Găsiți o cale către monede stabile pentru fiecare jeton pentru a converti TVL în valoare USD
  5. Eliminați pool-urile cu lichiditate scăzută cu valori USD sparte, deoarece unele pool-uri pot afișa valori inadecvate după eliminarea completă a lichidității (verificați graficul de mai jos ca exemplu)
imagine 208
  1. Convertiți TVL din toate perechile rămase în valoare USD și adăugați-le

După mai multe verificări încrucișate, am venit cu un calcul TVL. Am început-o și am vrut să iau cafea în timp ce se executa calculul, dar s-a terminat înainte să mă ridic. Acesta este singurul dezavantaj al utilizării unei baze de date analitice de înaltă performanță.

Ești gata să vezi rezultatul?

imagine 210

Este aproape de 4 ori mai putin decât $ raportat11,8b... Depinde de tine să tragi o concluzie.

Declinare a responsabilităţii: calculul meu poate conține erori. În proiectele de date pentru clienții întreprinderi, folosim metodologie documentată, autotestări și multe alte instrumente pentru a obține cea mai înaltă calitate a datelor. Aceste instrumente ar fi exagerat pentru un proiect personal de cercetare ca acesta. Această cercetare evidențiază problemele evidente ale datelor disponibile, mai degrabă decât să ofere o soluție finală.

Ok, vom repara calculele TVL - Va ajuta?

Problema nu sunt numerele incorecte, ci mai degrabă deciziile pe care le luăm pe baza acestor numere. De exemplu, majoritatea calculatoarelor de profit pentru furnizorii de lichidități folosesc aceste numere pentru predicții.

Cu toate acestea, nu este atât de dificil să repari calculul TVL. Fie Uniswap Labs o rezolvă în codul de subgraf, fie dezvoltatorii de calculatoare încep să folosească alte surse de date. Întrebarea de bază este dacă putem fi încrezători că predicțiile calculatorului sunt corecte.

Am făcut niște calcule, iar răspunsul scurt este...Nici măcar pe aproape.

O afirmație îndrăzneață, știu. Mulți furnizori de lichidități folosesc calculatoare existente și afectează deciziile care costă zeci de milioane de dolari. Dar haideți să trecem prin pașii de calcul, astfel încât să vă puteți face propria judecată.

Mai întâi, să revizuim câteva concepte de bază ale protocolului Uniswap v3.

Una dintre principalele sale inovații este lichiditatea concentrată. În esență, cu Uniswap v3, puteți selecta intervalul de preț în care doriți ca banii dvs. să funcționeze ca furnizor de lichidități. Acesta este un concept uimitor care poate aduce o mare valoare utilizatorilor de protocol. Furnizorii de lichiditate își limitează expunerea la pierderi nepermanente, iar comercianții se pot bucura de derapaje mai mici ale prețurilor atunci când volatilitatea este scăzută. Dar toate acestea potenţial beneficiile au un cost-complexitate.

imagine 211

Deci, dorim să înțelegem cum sunt calculate câștigurile furnizorului de lichidități Uniswap v3.

În Uniswap v3, furnizorul de lichiditate selectează intervalul de preț pentru a oferi lichiditate. El va primi reducerea taxelor de swap odată ce prețul se va încadra în acest interval. La prima vedere, un furnizor de lichiditate dorește să aibă gama de prețuri a poziției sale de lichiditate cât mai larg posibil. Cu toate acestea, lichiditatea este distribuită proporțional în acest interval. Deci, cu cât intervalul este mai mare, cu atât taxa de swap este mai mică pentru fiecare tranzacție.

imagine 211

În acest exemplu, opțiunea A arată furnizorul de lichidități care aleg un interval de preț mai larg, iar opțiunea 2 arată unul mai restrâns, cu aceeași sumă. Cu condiția ca, în ambele cazuri, prețul să se încadreze în intervalul de preț ales, furnizorul de lichiditate primește de 3 ori mai multe comisioane în opțiunea B. Cu toate acestea, dacă prețul este mai volatil, furnizorul de lichiditate ar putea avea un profit mai mare în opțiunea A.

Deci, în realitate, selectarea intervalului corect de preț se bazează pe găsirea celui mai bun echilibru între riscul de a pierde prețul și obținerea unui profit mai mic pentru fiecare tranzacție.

Încă un parametru influențează profitul furnizorului de lichidități și este adesea trecut cu vederea. Nu cunosc niciun calculator de profit LP care să-l ia în considerare, iar acest parametru poate schimba totul. Te întrebi ce este asta până acum. Este distribuția LP-urilor. Luați în considerare următorul exemplu:

imagine 212

În acest exemplu, doi furnizori de lichiditate (LP1 și LP2) au poziții. LP1 are o poziție restrânsă de 3 USD. LP2 are o poziție largă de 5 USD. În acest caz, dacă prețul nu iese din intervalul poziției LP1, el va primi de 3 ori mai multe comisioane decât LP2. Asta pentru că LP2 are doar 1 USD în acest interval. Și acest 1 USD concurează cu 3 USD din LP1.

Dacă te uiți la distribuția lichidității oricărui pool Uniswap v3, vei vedea că nu este uniformă.

imagine 213

Cu cât bara este mai mare, cu atât concurența este mai mare. Furnizorii de lichiditate trebuie să găsească echilibrul între alegerea intervalelor competitive și intervalul cu o probabilitate mai mică de a atinge prețul. De aceea, această distribuție joacă un rol important în predicția profitului LP și în construirea strategiei. Singura problemă este... Nu sunt sigur că această distribuție este calculată corect.

De parcă asta nu ar fi de ajuns — Lunetiştii de lichiditate

A fi un furnizor de lichidități înseamnă a ghici prețul, starea concurenței și volumul tranzacțiilor. Dacă un LP ar avea o dorință, ar fi să cunoască viitorul tranzacțiilor pentru a ajusta în prealabil pozițiile de lichiditate.

Dar dacă îți spun că este posibil?

În timpul cercetării, unii furnizori de lichidități neobișnuiți mi-au atras atenția. Au adăugat și au eliminat poziții semnificative de lichiditate (peste 10 milioane USD) de multe ori pe zi. Și mai surprinzător, au adăugat și scos întotdeauna lichiditate în același bloc.

Să vedem un exemplu:

imagine 214

Avem trei tranzacții, toate în blocul 15413416, pozițiile 3-5, executate în ordine de jos în sus. Prima tranzacție, cu metoda Execute, este un contract numit „MEV Bot”, adăugând lichiditate de 22 de milioane USD la pool-ul USDC-WETH.

imagine 215

A doua tranzacție este un schimb de la USDC la DogeChain prin WETH. Acesta este un swap obișnuit cu o valoare de aproximativ 16,500 USD.

imagine 216

A treia tranzacție este din nou „MEV Bot”, eliminând lichidități de 22 de milioane de dolari din pool-ul USDC-WETH.

imagine 217

Ceea ce sa întâmplat în exemplu se numește „lichidity sniping”. Permiteți-mi să vă explic cum a funcționat:

  1. Cineva a trimis o tranzacție pentru a schimba USDC cu DogeChain
  2. MEV Bot a detectat această tranzacție în mempool și a activat o legătură privată cu un grup de minerit folosind tehnologia Flashbots sau ceva similar
  3. MEV Bot a plătit minerilor să includă o tranzacție de swap și două tranzacții într-o anumită ordine care a permis extragerea valorii
  4. MEV Bot a adăugat atât de multă lichiditate (22 de milioane de dolari) la o gamă de prețuri foarte restrânsă, astfel încât, efectiv, toate profiturile din comisioane din acel tranzacție specifică USDC-DogeChain i-au fost acumulate.
  5. MEV Bot a eliminat apoi lichiditatea și a câștigat comisioane (aproximativ 35 USD)

Deci, profitul său brut după taxele de gaz a fost de aproximativ 30 de dolari. Nu prea mult? Da, dar el execută această strategie de mai multe ori pe minut, ceea ce se adună. Puteți verificați singur.

Ce înseamnă asta pentru tine, ca furnizor de lichidități? Înseamnă că lunetiştii de lichiditate ar putea lua o reducere semnificativă a profiturilor din comisioane.

Concluzie

Permiteți-mi să închei concluziile cercetării mele:

  1. Cifrele TVL din diagramele Uniswap v3 sunt extrem de inexacte. Aceleași erori există în toate instrumentele analitice care se bazează pe subgraful oficial Uniswap v3.
  2. Totalul Uniswap v3 TVL este de 3,14 miliarde USD față de 11,8 miliarde USD raportat de site-ul oficial (la momentul scrierii).
  3. Calculatoarele pentru furnizorii de lichidități Uniswap v3 au puțină valoare pentru strategiile din viața reală, deoarece nu țin cont de concurență și de lunetiştii de lichiditate.
imagine 218

Din fericire, acum puteți înțelege mai bine cum funcționează fondurile de lichiditate Uniswap v3 în viața reală și vă puteți ajusta cercetarea în consecință.

Nu sunt în măsură să dau sfaturi financiare, dar văd doar 2 opțiuni pentru a construi o strategie proeminentă de furnizare de lichidități:

  1. SIMPLU. Utilizați datele istorice de performanță. Încercați câteva poziții de lichiditate cu mize mici și vedeți ce opțiuni funcționează mai bine. Evident, acest lucru funcționează doar în ipoteza că piața este stabilă.
  2. ADVANCED. Efectuați cercetări și optimizați strategia LP în consecință. După cum am descris mai sus, aceasta necesită o înțelegere aprofundată a protocolului Uniswap v3, competențe de matematică și teoria jocurilor și un instrument puternic de analiză a datelor pentru a procesa cantități uriașe de date în timp real.

Ambele opțiuni au un lucru în comun: îți bazezi deciziile pe date, mai degrabă decât pe un sentiment sau pe instrumente aleatorii. Uneori lucrul cu date este dificil, dar dă roade.

La Datamint, suntem întotdeauna aici pentru a vă ajuta cu proiectele dvs. de date personalizate.

Fie ca datele să fie cu tine!

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