Všetky vaše výpočty likvidity v poľnohospodárstve Uniswap v3 sú úplne nesprávne! Tu je Prečo

2 2 x = 5

Viete, že je to nesprávne, ale keď to prvýkrát uvidíte, uhádnete sami seba a pomyslíte si: „Možno niečo nie je v poriadku s mojím výpočtom“. Správny?

Presne tak som sa cítil, keď som zistil, že čísla likvidity a TVL (Total Value Locked) zobrazené v používateľskom rozhraní Uniswap V3 boli úplne nesprávne.

Uniswap je najväčšie decentralizované financovanie (defi) projekt na Ethereum a celok blockchain priemyslu. Tisíce poskytovateľov likvidity používajú tieto údaje denne na budovanie svojich investičných stratégií. Ako teda môžu byť tieto čísla nepresné?

Strávil som hodiny hľadaním chyby vo výpočtoch a hádajte čo? Neurobil som žiadne chyby. A situácia je ešte horšia ako len nepresná TVL.

Poďme však postupne a začnime s problémom.

Problém

Po prvé, čo je TVL a ako sa používa? Stručne povedané, TVL je definovaná ako dolárová hodnota všetkých kryptografických aktív, ktoré používatelia v súčasnosti delegujú na blockchain alebo protokol. Týmito aktívami môže byť napríklad celková likvidita decentralizovanej burzy, mostného protokolu alebo protokolu požičiavania alebo celkové vsadené aktíva PoS blockchainu.

Investori krypto trhu a ďalší účastníci používajú TVL vo viacerých prípadoch:

  1. Posúdenie zdravotného stavu protokolu. To je dôvod, prečo sa populárne protokoly môžu pochváliť svojou TVL na hlavnej stránke. Väčšia TVL = väčšia dôvera používateľov = nižšie riziko = stabilný zisk.
  2. Porovnanie medzi protokolmi. Ak by som bol obchodník s kryptomenami, radšej by som používal nástroje DeFi, ako sú decentralizované burzy alebo mosty, s vyššou TVL.
  3. Meranie protokolárneho rastu. Investori, ktorí vidia, že TVL protokolu alebo projektu rýchlo rastie, to považujú za signál býčieho postoja k cene tokenu protokolu.

Zdá sa, že je dôležité vedieť presný TVL čísla, však?

Čo ak však poviem, že najdostupnejšie údaje o Uniswap v3 TVL sú zavádzajúce? Najväčším prekvapením pre mňa však bolo, že úradník Aplikácia Uniswap Chart je tiež problém! Tu je návod, ako som to zistil.

Pracoval som na projekte analýzy likvidity a porovnával som oficiálne údaje o Uniswap v3 s mojimi výpočtami pomocou nespracovaných blockchainových údajov. Tento krok je nevyhnutný na dodržanie najvyšších štandardov kvality údajov. Na začiatok overovania som si vybral populárny fond likvidity USDC-WETH (úroveň poplatku 0,3 %).

obrázok 202
MEV Bot pridávajúci likviditu pre éter

Pozrite sa na fond 3 na Uniswap v3 – má pôsobivú TVL vo výške 333 miliónov dolárov (na základe oficiálnych grafov Uniswap v čase písania tohto článku) a zdravý denný objem 61 miliónov dolárov.

Okamžite som narazil na problém: moja vypočítaná hodnota TVL bola 176 miliónov dolárov namiesto 333 miliónov dolárov uvádzaných na webovej stránke Uniswap. Ok, takže chyby sa stávajú. Ale predtým, ako som sa pustil do ladenia, rozhodol som sa overiť TVL na najobľúbenejšom prieskumníkovi blockchainu Ethereum, Etherscan. Technicky je každý fond Uniswap v3 inteligentnou zmluvou. Prieskumník blockchainu teda môže ukázať zostatky tokenov vo vlastníctve fondu, čo je TVL.

obrázok 203
Štandardná swapová transakcia.

Očakával som, že tokenový zostatok fondu bude o niečo väčší ako TVL, ktorú uvádza Uniswap. Je to preto, že pool drží likviditu, ako aj poplatky, ktoré boli naakumulované, ale ešte neboli nárokované. Ale tento zostatok bol takmer polovičný oproti sume, ktorú Uniswap oznámil, a prekvapivo to bolo rovnaké číslo ako moje výpočty!

Porovnanie likvidity, aktíva po aktíve, tiež ukázalo obrovský rozdiel. V tomto bode som si uvedomil, že chyba nemá nič spoločné s mojimi matematickými schopnosťami.

obrázok 205
A tomu hovoríme „odstreľovanie likvidity“.

Ale ako sa to mohlo stať? Po preskúmaní som zistil, že Uniswap sa spolieha na decentralizovanú službu indexovania blockchainu Graf. Pomocou tejto služby môže každý vývojár pridať osobný analytický kód (nazývaný podgraf) pre konkrétne prípady použitia blockchainových údajov a sprístupniť analýzu prostredníctvom API.

Uniswap Labs vytvorilo svoje vlastné podgrafy pre analýzu protokolu Uniswap a sprístupnilo ich prostredníctvom Služba Graph Hosted Service. Dobrá vec je, že jeho kód je verejne dostupné. Zlou vecou sú však chyby výpočtu TVL.

Stručná analýza kódu ukazuje, že účtuje o všetkých swapoch a udalostiach likvidity, ale nezohľadňuje poplatky. Uniswap pooly majú poplatok 0.01% až 1% za každý swap. Tento poplatok sa odpočítava z obchodovaných aktív a pripisuje sa poskytovateľom likvidity. Na druhej strane poskytovatelia likvidity môžu kedykoľvek vyberať naakumulované poplatky.

Aktuálny podgraf Uniswap v3 však zobrazuje čísla, ako keby sa žiadne poplatky nikdy nehromadili a nevyberali. Takže čísla Uniswap v3 TVL sa pri každej výmene odchyľovali od reality.

Možno sa čudujete: „Odoslali ste lístok na vydanie na GitHub pred napísaním tohto článku?“ Áno, to je môj prvý zámer po zistení chyby. A viete čo? Ten problém je už prihlásený, ktorú vytvoril hlavný vývojár v novembri 2021!

Prečo sa teda tento problém nevyriešil? Netuším. Možno bola chyba v čase objavenia tejto chyby zanedbateľná. Ide však o kumulatívnu chybu, ktorá narastá s každou výmenou. Takže ako poplatok a objem obchodovania v skupine rastú, výsledný rozdiel TVL z chyby bude mať za následok väčší rozdiel od reality. A môžeme vidieť, že vo veľkom poole, akým je USDC-ETH s väčším poplatkom 0.3 % – sa to vymklo spod kontroly! V súčasnosti je to takmer dvojnásobok skutočných čísel.

Overíme celkovú TVL

Dobre, už vieme, že čísla TVL v jednotlivých fondoch sú skreslené. Nižšie preskúmame, ako to môže ovplyvniť investičné rozhodnutia. Ale skôr ako sa k tomu dostaneme, pozrime sa, ako tieto chyby ovplyvňujú celkovú TVL protokolu Uniswap v3. Táto TVL je v čase písania správy takmer 12 miliárd USD.

Nemusíte byť dátovým vedcom, aby ste videli, že niečo nie je v poriadku.

obrázok 207

Vyššie môžeme vidieť, že TVL pomaly, ale stabilne rastie z 500 miliónov dolárov na 4.5 miliardy dolárov 6. marca 2022. Potom sa stalo niečo šialené a 254. marca 7 bola TVL vykázaná ako 2022 miliárd dolárov. To je 2,5-krát viac ako najvyššie TVL v celej sieti Ethereum vôbec – za JEDEN deň! Je jasné, že ide o chybu v údajoch. V nasledujúcich týždňoch bola TVL hlásená ako 10-20 miliárd dolárov.

V tomto bode som stratil všetku dôveru v analytické údaje Uniswap. Ale ako môžeme poznať skutočnú TVL? Mal som 2 možnosti.

Možnosť 1 – rozvetviť a opraviť podgraf Uniswap v3. Zlá vec na tejto možnosti je, že preindexovanie podgrafu by trvalo niekoľko dní. A nie som fanúšikom jazyka GraphQL, ktorý Graph používa.

Našťastie som mal možnosť 2-- DatamintVysokovýkonné analytické databázy pre všetky údaje Uniswap v3 a Ethereum, ktoré sú ľahko dostupné pre zložité online dopyty.

Po niekoľkých experimentoch som vytvoril nasledujúci algoritmus na presný výpočet TVL. Pozrite si nižšie uvedený postup krok za krokom.

  1. Vypočítajte TVL pre všetky existujúce fondy Uniswap v3 pomocou týchto dvoch krokov.
    1. Pridajte všetky prevody tokenov ERC-20 do a zo zmluvy o fonde (zahŕňa to všetky nenárokované poplatky) a porovnajte zostatky tokenov na Etherscan
    2. Pridajte všetky udalosti likvidity, prichádzajúce a odchádzajúce, a potom pridajte všetky swapové udalosti účtovať poplatky
  2. Porovnajte tieto dve metódy a zabezpečte, aby nezostali žiadne nevysvetliteľné nezrovnalosti
  3. Odstráňte opustené a prázdne fondy s menej ako 50 swapmi alebo 0.00000000000001 tokenu (so zistenými 7,863 2,083 fondmi (vrátane 112 XNUMX párov so stajňami), môj algoritmus odstránil XNUMX fondov ako prázdnych/opustených)
  4. Nájdite cestu k stabilným coinom pre každý token, aby ste mohli previesť pool TVL na hodnotu USD
  5. Odstráňte fondy s nízkou likviditou s rozbitými hodnotami v USD, pretože niektoré fondy môžu po úplnom odstránení likvidity vykazovať neprimerané hodnoty (pozrite si nižšie uvedený graf ako príklad)
obrázok 208
  1. Preveďte TVL všetkých zostávajúcich párov na hodnotu USD a pridajte ich

Po viacerých krížových kontrolách som dospel k výpočtu TVL. Začal som to a chcel som si dať kávu, kým sa výpočet vykonal, ale skončilo to skôr, ako som vstal. Toto je jediná nevýhoda používania vysokovýkonnej analytickej databázy.

Ste pripravení vidieť výsledok?

obrázok 210

Je to skoro 4 krát menej ako hlásené $11,8b… Záver je len na vás.

Vylúčenie zodpovednosti: Môj výpočet môže obsahovať chyby. V dátových projektoch pre podnikových klientov využívame zdokumentovanú metodiku, autotesty a mnoho ďalších nástrojov na dosiahnutie najvyššej kvality dát. Tieto nástroje by boli pre osobný výskumný projekt, ako je tento, prehnané. Tento výskum skôr poukazuje na zjavné problémy v dostupných údajoch, než by poskytoval konečné riešenie.

Ok, opravíme výpočty TVL – pomôže to?

Problémom nie sú nesprávne čísla, ale skôr rozhodnutia, ktoré robíme na základe týchto čísel. Napríklad väčšina kalkulačiek zisku pre poskytovateľov likvidity používa tieto čísla na predpovede.

Opraviť výpočet TVL však nie je také ťažké. Buď to Uniswap Labs opraví v kóde podgrafov, alebo vývojári kalkulačiek začnú používať iné zdroje údajov. Hlavnou otázkou je, či si môžeme byť istí, že predpovede kalkulačky sú správne.

Urobil som nejaké výpočty a krátka odpoveď je -ani zatvorené.

Odvážne tvrdenie, ja viem. Mnoho poskytovateľov likvidity používa existujúce kalkulačky a ovplyvňuje rozhodnutia, ktoré stoja desiatky miliónov dolárov. Poďme si však prejsť kroky výpočtu, aby ste si mohli urobiť vlastný úsudok.

Najprv si zopakujme niektoré základné koncepty protokolu Uniswap v3.

Jednou z jeho hlavných inovácií je koncentrovaná likvidita. V podstate s Uniswap v3 si môžete vybrať cenové rozpätie, v ktorom chcete, aby vaše peniaze fungovali ako poskytovateľ likvidity. Ide o úžasný koncept, ktorý môže používateľom protokolu priniesť veľkú hodnotu. Poskytovatelia likvidity obmedzujú svoje vystavenie sa nestálej strate a obchodníci sa môžu tešiť z menšieho sklzu cien, keď je volatilita nízka. Ale všetky tieto potenciál výhody niečo stoja-zložitosť.

obrázok 211

Chceme teda pochopiť, ako sa počítajú zárobky poskytovateľa likvidity Uniswap v3.

V Uniswap v3 poskytovateľ likvidity vyberá cenové rozpätie, ktorému má poskytnúť likviditu. Keď sa cena dostane do tohto rozsahu, dostane svoj podiel na swapových poplatkoch. Poskytovateľ likvidity chce mať na prvý pohľad cenové rozpätie svojej likviditnej pozície čo najširšie. Likvidita je však v tomto rozsahu rozdelená proporcionálne. Takže čím širší je rozsah, tým nižší je swapový poplatok za každú transakciu.

obrázok 211

V tomto príklade možnosť A ukazuje poskytovateľa likvidity, ktorý si vyberá širší cenový rozsah, a možnosť 2 zobrazuje užší rozsah s rovnakou sumou. Za predpokladu, že v oboch prípadoch je cena v rámci zvoleného cenového rozpätia, poskytovateľ likvidity dostane 3x viac poplatkov pri možnosti B. Ak je však cena volatilnejšia, poskytovateľ likvidity môže skončiť s vyšším ziskom pri možnosti A.

Takže v skutočnosti sa výber správneho cenového rozpätia spolieha na nájdenie najlepšej rovnováhy medzi rizikom premeškania ceny a nižším výnosom z každého obchodu.

Ešte jeden parameter ovplyvňuje zisk poskytovateľa likvidity a je často prehliadaný. Nie som si vedomý žiadnej kalkulačky zisku LP, ktorá by to zvažovala a tento parameter môže všetko zmeniť. Teraz sa pýtaš, čo to je. Ide o distribúciu LP platní. Zvážte nasledujúci príklad:

obrázok 212

V tomto príklade majú pozície dvaja poskytovatelia likvidity (LP1 a LP2). LP1 má úzku pozíciu 3 USD. LP2 má širokú pozíciu 5 USD. V tomto prípade, ak cena neopustí rozsah pozície LP1, dostane 3x viac poplatkov ako LP2. Je to preto, že LP2 má v tomto rozsahu iba 1 dolár. A tento 1 dolár konkuruje 3 dolárom LP1.

Ak sa pozriete na rozdelenie likvidity akéhokoľvek fondu Uniswap v3, uvidíte, že nie je jednotné.

obrázok 213

Čím vyššia latka, tým vyššia konkurencia. Poskytovatelia likvidity musia nájsť rovnováhu medzi výberom konkurenčných rozsahov a rozsahom s nižšou pravdepodobnosťou cenového zásahu. To je dôvod, prečo táto distribúcia zohráva veľkú úlohu pri predikcii zisku LP a budovaní stratégie. Jediný problém je... Nie som si istý, či je toto rozdelenie vypočítané správne.

Ako keby to nestačilo – ostreľovači likvidity

Byť poskytovateľom likvidity je o hádaní ceny, stavu konkurencie a objemu obchodu. Ak by mal LP želanie, bolo by poznať budúcnosť obchodov a vopred upraviť pozície likvidity.

Ale čo ak vám poviem, že je to možné?

Počas prieskumu ma zaujali niektorí nezvyčajní poskytovatelia likvidity. Mnohokrát denne pridávali a odoberali významné pozície likvidity (nad 10 miliónov USD). Ešte prekvapivejšie je, že vždy pridávali a odoberali likviditu v tom istom bloku.

Pozrime sa na príklad:

obrázok 214

Máme tri transakcie, všetky v bloku 15413416, pozície 3-5, vykonané v poradí zdola nahor. Prvou transakciou s metódou Execute je zmluva s názvom „MEV Bot“, ktorá pridáva likviditu vo výške 22 miliónov USD do fondu USDC-WETH.

obrázok 215

Druhou transakciou je swap z USDC na DogeChain cez WETH. Ide o obyčajný swap v hodnote približne 16,500 XNUMX USD.

obrázok 216

Treťou transakciou je opäť „MEV Bot“, čím sa z fondu USDC-WETH odstráni likvidita vo výške 22 miliónov USD.

obrázok 217

To, čo sa stalo v príklade, sa nazýva „odstreľovanie likvidity“. Dovoľte mi vysvetliť, ako to fungovalo:

  1. Niekto poslal transakciu na výmenu USDC do DogeChain
  2. MEV Bot zistil túto transakciu v mempoole a aktivoval súkromné ​​prepojenie s ťažobným fondom pomocou technológie Flashbots alebo niečoho podobného
  3. MEV Bot zaplatil baníkom, aby zahrnuli swapovú transakciu a dve transakcie v konkrétnom poradí, ktoré umožňovalo extrakciu hodnoty
  4. MEV Bot pridal toľko likvidity (22 miliónov USD) do veľmi úzkeho cenového rozpätia, takže všetky zisky z poplatkov z tohto špecifického obchodu USDC-DogeChain mu pripadli tak efektívne.
  5. MEV Bot potom odstránil likviditu a získal poplatky (približne 35 USD)

Takže jeho hrubý zisk po poplatkoch za plyn bol okolo 30 dolárov. Nie veľmi? Áno, ale túto stratégiu vykonáva niekoľkokrát za minútu, čo sa všetko spočíta. Môžeš presvedčte sa sami.

Čo to pre vás ako poskytovateľa likvidity znamená? Znamená to, že ostreľovači likvidity by mohli výrazne znížiť vaše zisky z poplatkov.

záver

Dovoľte mi zhrnúť výsledky môjho výskumu:

  1. Hodnoty TVL v grafoch Uniswap v3 sú značne nepresné. Rovnaké chyby existujú vo všetkých analytických nástrojoch, ktoré sa spoliehajú na oficiálny podgraf Uniswap v3.
  2. Celková TVL Uniswap v3 je 3,14 miliárd USD oproti 11,8 miliárd USD, ktoré uvádza oficiálna webová stránka (v čase písania).
  3. Kalkulačky pre poskytovateľov likvidity Uniswap v3 majú malú hodnotu pre reálne stratégie, pretože nezohľadňujú konkurenciu a ostreľovačov likvidity.
obrázok 218

Našťastie teraz môžete lepšie pochopiť, ako fondy likvidity Uniswap v3 fungujú v reálnom živote, a môžete tomu prispôsobiť svoj prieskum.

Nie som schopný poskytovať finančné poradenstvo, ale vidím len 2 možnosti na vybudovanie prominentnej stratégie poskytovania likvidity:

  1. SIMPLE. Použite historické údaje o výkonnosti. Vyskúšajte niektoré pozície likvidity s malými vkladmi a uvidíte, ktoré možnosti fungujú lepšie. Je zrejmé, že to funguje len za predpokladu, že trh je stabilný.
  2. ADVANCED. Vykonajte prieskum a podľa toho optimalizujte stratégiu LP. Ako sme uviedli vyššie, vyžaduje si to hlboké pochopenie protokolu Uniswap v3, kompetencie v oblasti matematiky a teórie hier a výkonný nástroj na analýzu údajov na spracovanie obrovského množstva údajov v reálnom čase.

Obe možnosti majú jednu vec spoločnú – svoje rozhodnutia zakladáte skôr na údajoch než na pocite alebo náhodných nástrojoch. Práca s údajmi je niekedy náročná, no vypláca sa.

V Dataminte sme tu vždy, aby sme vám pomohli s vašimi vlastnými dátovými projektmi.

Nech sú dáta s vami!

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