Ang Lahat ng Iyong Uniswap v3 Liquidity Farming Calculations ay Patay Mali! Narito ang Bakit

2 2 x = 5

Alam mong mali ito, ngunit sa una mong makita, hinuhulaan mo ang iyong sarili at iniisip: "Baka may mali sa aking pagkalkula". tama?

Well, iyon mismo ang naramdaman ko nang matuklasan ko na ang mga numero ng liquidity at TVL (Total Value Locked) na ipinapakita sa Uniswap V3 user interface ay ganap na mali.

Ang Uniswap ay ang pinakamalaking desentralisadong pananalapi (DeFi) proyekto sa Ethereum at ang buo blockchain industriya. Libu-libong provider ng liquidity ang gumagamit ng mga numerong ito araw-araw para buuin ang kanilang mga diskarte sa pamumuhunan. Kaya't paano maaaring maging hindi tumpak ang mga numerong ito?

Gumugol ako ng maraming oras sa pagsubok na makahanap ng isang pagkakamali sa aking mga kalkulasyon, at hulaan kung ano? Hindi ako nagkamali. At ang sitwasyon ay mas masahol pa kaysa sa hindi tumpak na TVL.

Ngunit hakbang-hakbang tayo at magsimula sa problema.

Ang problema

Una, ano ang TVL, at paano ito ginagamit? Sa madaling salita, ang TVL ay tinukoy bilang isang dolyar na halaga ng lahat ng mga asset ng crypto na kasalukuyang idinelegasyon ng mga user sa isang blockchain o protocol. Halimbawa, ang mga asset na ito ay maaaring ang kabuuang liquidity ng isang desentralisadong exchange, tulay o lending protocol, o kabuuang staked asset ng PoS blockchain.

Ang mga namumuhunan sa merkado ng crypto at iba pang kalahok ay gumagamit ng TVL para sa maraming kaso:

  1. Pagtatasa ng kalusugan ng protocol. Ito ang dahilan kung bakit ipinagmamalaki ng mga sikat na protocol ang kanilang TVL sa pangunahing pahina. Mas malaking TVL = mas maraming tiwala ng gumagamit = mas mababang panganib = matatag na kita.
  2. Paghahambing sa pagitan ng mga protocol. Kung ako ay isang crypto trader, mas gugustuhin kong gumamit ng mga tool ng DeFi, tulad ng mga desentralisadong palitan o tulay, na may mas mataas na TVL.
  3. Pagsukat ng paglago ng protocol. Itinuturing ng mga mamumuhunan na nakakakita na ang isang protocol o TVL ng proyekto ay mabilis na lumalaki bilang isang senyales na maging bullish tungkol sa presyo ng token ng protocol.

Mukhang importanteng malaman tama Mga numero ng TVL, tama ba?

Ngunit paano kung sabihin kong nakakapanlinlang ang pinaka-magagamit na data tungkol sa Uniswap v3 TVL? Ang pinakamalaking sorpresa para sa akin, bagaman, ay ang opisyal Uniswap Chart App problema din! Narito kung paano ko nalaman.

Nagtatrabaho ako sa isang liquidity analytics project, inihahambing ang opisyal na data sa Uniswap v3 sa aking mga kalkulasyon gamit ang raw blockchain data. Ang hakbang na ito ay mahalaga upang makasunod sa pinakamataas na pamantayan ng kalidad ng data. Upang simulan ang pag-verify, pumili ako ng sikat na liquidity pool, USDC-WETH (0,3% na antas ng bayad).

imahe 202
MEV Bot na nagdaragdag ng pagkatubig para sa Ether

Tingnan ang pool 3 sa Uniswap v3—mayroon itong kahanga-hangang TVL na $333m (batay sa mga opisyal na chart ng Uniswap sa oras ng pagsulat) at isang malusog na pang-araw-araw na volume na $61m.

Agad akong nagkaroon ng problema: ang aking nakalkulang halaga ng TVL ay $176m sa halip na $333m na iniulat sa Uniswap website. Ok, nangyari ang mga bug. Ngunit bago lumipat sa pag-debug, nagpasya akong i-verify ang TVL sa pinakasikat na Ethereum blockchain explorer, Etherscan. Sa teknikal, ang bawat Uniswap v3 pool ay isang matalinong kontrata. Kaya, maaaring ipakita ng blockchain explorer ang mga balanse ng token na nasa pool, na kung ano ang TVL.

imahe 203
Karaniwang transaksyon sa pagpapalit.

Inaasahan ko na ang balanse ng token ng pool ay medyo mas malaki kaysa sa TVL na iniulat ng Uniswap. Iyon ay dahil ang pool ay may hawak na liquidity pati na rin ang mga bayarin na naipon ngunit hindi pa na-claim. Ngunit ang balanseng ito ay halos kalahati ng halagang iniulat ng Uniswap, at, nakakagulat, ito ay kapareho ng bilang ng aking mga kalkulasyon!

Ang paghahambing ng pagkatubig, asset ayon sa asset, ay nagpakita rin ng malaking pagkakaiba. Sa puntong ito, napagtanto ko na ang pagkakamali ay walang kinalaman sa aking mga kasanayan sa matematika.

imahe 205
At ito ang tinatawag nating "liquidity sniping".

Ngunit paano ito mangyayari? Pagkatapos magsaliksik, nalaman kong umaasa ang Uniswap sa desentralisadong serbisyo sa pag-index ng blockchain Ang Graph. Sa serbisyong ito, maaaring magdagdag ang sinumang developer ng personal na analytics code (tinatawag na subgraph) para sa mga partikular na kaso ng paggamit ng data ng blockchain at gawing available ang analytics sa pamamagitan ng API.

Gumawa ang Uniswap Labs ng sarili nitong mga subgraph para sa Uniswap protocol analytics at ginawang available ang mga ito sa pamamagitan ng Ang Serbisyong Na-host ng Graph. Ang magandang bagay ay ang code nito pampublikong magagamit. Gayunpaman, ang masamang bagay ay ang mga error sa pagkalkula ng TVL.

Ipinapakita ng maikling pagsusuri ng code na isinasaalang-alang nito ang lahat ng mga kaganapan sa pagpapalit at pagkatubig ngunit hindi isinasaalang-alang ang mga bayarin. Ang mga uniswap pool ay may 0.01% hanggang 1% na bayad sa bawat swap. Ang bayad na ito ay ibinabawas sa mga na-trade na asset at naipon sa mga provider ng pagkatubig. Sa turn, ang mga provider ng liquidity ay maaaring mangolekta ng mga naipon na bayarin anumang oras.

Ang kasalukuyang Uniswap v3 subgraph, gayunpaman, ay nagpapakita ng mga numero na parang walang mga bayarin na naipon at nakolekta. Kaya, ang mga numero ng Uniswap v3 TVL ay lumihis mula sa katotohanan sa bawat pagpapalit.

Maaari kang magtaka: "Nagsumite ka ba ng ticket ng isyu sa GitHub bago isulat ang artikulong ito?" Oo, iyon ang aking unang intensyon pagkatapos matuklasan ang pagkakamali. At alam mo ba? Ang isyu na iyon ay naka-log na, na ginawa ng isang pangunahing developer noong Nobyembre 2021!

Kaya bakit hindi naayos ang problemang ito? Wala akong ideya. Marahil ay bale-wala ang error sa oras na natuklasan ang bug na ito. Gayunpaman, ito ay isang pinagsama-samang error na lumalaki sa bawat swap. Kaya, habang lumalaki ang bayad at dami ng kalakalan sa pool, ang magreresultang pagkakaiba ng TVL mula sa error ay magreresulta sa mas malaking pagkakaiba sa realidad. At makikita natin iyon sa isang malaking pool tulad ng USDC-ETH na may mas malaking 0.3% na bayad—nawalan na ito ng kontrol! Ito ay kasalukuyang halos doble sa totoong mga numero.

I-verify Natin ang Kabuuang TVL

Ok, alam namin sa ngayon na ang mga numero ng TVL sa mga indibidwal na pool ay sira. Tuklasin namin kung paano ito makakaapekto sa mga desisyon sa pamumuhunan sa ibaba. Ngunit bago tayo makarating doon, tingnan natin kung paano nakakaapekto ang mga error na ito sa kabuuang TVL ng protocol ng Uniswap v3. Ang TVL na ito ay iniulat sa halos $12b sa oras ng pagsulat.

Hindi mo kailangang maging data scientist para makitang may mali dito.

imahe 207

Makikita natin sa itaas na ang TVL ay iniulat na mabagal ngunit patuloy na lumalaki mula $500m hanggang $4.5b noong ika-6 ng Marso, 2022. Pagkatapos ay may nangyaring kabaliwan, at ang TVL ay iniulat bilang $254b noong ika-7 ng Marso, 2022. Iyan ay 2,5x na higit pa kaysa sa pinakamataas na TVL sa buong Ethereum network kailanman—sa ISANG araw! Malinaw, ito ay isang pagkakamali sa data. Sa mga sumunod na linggo, ang TVL ay iniulat bilang $10-20b.

Sa puntong ito, nawalan ako ng tiwala sa Uniswap analytics data. Pero paano natin malalaman ang totoong TVL? Mayroon akong 2 pagpipilian.

Opsyon 1—iwanan at ayusin ang Uniswap v3 subgraph. Ang masamang bagay tungkol sa opsyong ito ay aabutin ng mga araw para muling mai-index ang subgraph. At hindi ako fan ng GraphQL language na ginagamit ng Graph.

Sa kabutihang palad, mayroon akong opsyon 2— – DatamintAng mga database ng analytical na may mataas na pagganap para sa lahat ng Uniswap v3 at Ethereum data, na madaling magagamit para sa mga kumplikadong online na query.

Pagkatapos ng ilang eksperimento, ginawa ko ang sumusunod na algorithm para sa tumpak na pagkalkula ng TVL. Suriin ang hakbang-hakbang na proseso sa ibaba.

  1. Kalkulahin ang TVL para sa lahat ng umiiral na Uniswap v3 pool gamit ang dalawang hakbang na ito.
    1. Idagdag ang lahat ng paglilipat ng token ng ERC-20 papunta at mula sa kontrata ng pool (kabilang dito ang lahat ng hindi na-claim na bayarin) at itugma ang mga balanse ng token sa Etherscan
    2. Idagdag ang lahat ng event ng liquidity, papasok at papalabas, pagkatapos ay idagdag ang lahat ng swap event sa account para sa mga bayarin
  2. Ihambing ang dalawang pamamaraan at tiyaking walang mananatili na hindi maipaliwanag na mga pagkakaiba
  3. Alisin ang mga inabandona at walang laman na pool na may mas mababa sa 50 swaps o 0.00000000000001 na halaga ng token (na may nakitang 7,863 pool (kabilang ang 2,083 pares na may mga stables), inalis ng aking algorithm ang 112 pool bilang walang laman/inabandona)
  4. Humanap ng path sa stable coins para sa bawat token para ma-convert ang pool TVL sa halaga ng USD
  5. Alisin ang mababang liquidity pool na may mga sirang halaga ng USD dahil ang ilang pool ay maaaring magpakita ng hindi sapat na mga halaga pagkatapos ganap na alisin ang liquidity (tingnan ang chart sa ibaba bilang isang halimbawa)
imahe 208
  1. I-convert ang TVL ng lahat ng natitirang pares sa halaga ng USD at idagdag ang mga ito

Pagkatapos ng maraming cross-check, nakaisip ako ng kalkulasyon ng TVL. Sinimulan ko ito at gusto kong kumuha ng kape habang isinasagawa ang pagkalkula, ngunit natapos ito bago ako tumayo. Ito ang tanging downside sa paggamit ng isang high-performance analytical database.

Handa ka na bang makita ang resulta?

imahe 210

Malapit na 4 beses na mas mababa kaysa sa naiulat na $11,8b… Ikaw na ang bahalang gumawa ng konklusyon.

Pagtanggi sa pananagutan: Ang aking pagkalkula ay maaaring naglalaman ng mga error. Sa mga proyekto ng data para sa mga kliyente ng enterprise, gumagamit kami ng nakadokumentong pamamaraan, mga autotest, at marami pang ibang tool upang makamit ang pinakamataas na kalidad ng data. Ang mga tool na ito ay magiging labis para sa isang personal na proyekto ng pananaliksik na tulad nito. Itinatampok ng pananaliksik na ito ang mga halatang problema sa magagamit na data sa halip na magbigay ng pangwakas na solusyon.

Ok, Aayusin Namin ang Mga Pagkalkula ng TVL—Makakatulong ba Ito?

Ang problema ay hindi mga maling numero kundi ang mga desisyong ginagawa namin batay sa mga numerong iyon. Halimbawa, karamihan sa mga calculator ng kita para sa mga provider ng liquidity ay gumagamit ng mga numerong ito para sa mga hula.

Gayunpaman, hindi ganoon kahirap ayusin ang pagkalkula ng TVL. Alinman sa Uniswap Labs ang ayusin ito sa kanilang subgraph code, o ang mga developer ng calculator ay magsisimulang gumamit ng iba pang data source. Ang pangunahing tanong ay kung maaari tayong magtiwala na tama ang mga hula sa calculator.

Gumawa ako ng ilang kalkulasyon, at ang maikling sagot ay—hindi man lang nakasara.

Isang matapang na pag-angkin, alam ko. Maraming provider ng liquidity ang gumagamit ng mga kasalukuyang calculator at nakakaapekto sa mga desisyon na nagkakahalaga ng sampu-sampung milyong dolyar. Ngunit dumaan tayo sa mga hakbang sa pagkalkula upang makagawa ka ng iyong sariling paghuhusga.

Una, suriin natin ang ilang pangunahing konsepto ng Uniswap v3 protocol.

Isa sa mga pangunahing inobasyon nito ay puro pagkatubig. Sa esensya, sa Uniswap v3, maaari mong piliin ang hanay ng presyo na gusto mong gumana ang iyong pera bilang provider ng pagkatubig. Ito ay isang kamangha-manghang konsepto na maaaring magdala ng malaking halaga sa mga gumagamit ng protocol. Nililimitahan ng mga tagapagbigay ng liquidity ang kanilang pagkakalantad sa hindi permanenteng pagkawala, at masisiyahan ang mga mangangalakal ng mas maliit na slippage ng presyo kapag mababa ang volatility. Ngunit lahat ng ito malamang na may halaga ang mga benepisyo-kaguluhan.

imahe 211

Kaya, gusto naming maunawaan kung paano kinakalkula ang mga kita ng Uniswap v3 liquidity provider.

Sa Uniswap v3, pinipili ng provider ng liquidity ang hanay ng presyo na paglalaanan ng liquidity. Makukuha niya ang kanyang pagbawas sa mga bayarin sa swap kapag ang presyo ay nasa saklaw na ito. Sa unang sulyap, nais ng isang provider ng liquidity na maging malawak hangga't maaari ang hanay ng presyo ng kanyang posisyon sa liquidity. Gayunpaman, ang pagkatubig ay ipinamamahagi nang proporsyonal sa saklaw na ito. Kaya, ang mas malawak na hanay, mas mababa ang swap fee para sa bawat deal.

imahe 211

Sa halimbawang ito, ipinapakita ng opsyon A ang liquidity provider na pumipili ng mas malawak na hanay ng presyo, at ang opsyon 2 ay nagpapakita ng mas makitid na may parehong halaga. Sa kondisyon na, sa parehong mga kaso, ang presyo ay nasa loob ng napiling hanay ng presyo, ang liquidity provider ay makakakuha ng 3x na higit pang mga bayarin sa opsyon B. Gayunpaman, kung ang presyo ay mas pabagu-bago, ang liquidity provider ay maaaring magkaroon ng mas mataas na kita sa opsyon A.

Kaya, sa katotohanan, ang pagpili ng tamang hanay ng presyo ay nakasalalay sa paghahanap ng pinakamahusay na balanse sa pagitan ng panganib na mawala ang presyo at makatanggap ng mas mababang kita sa bawat deal.

Ang isa pang parameter ay nakakaimpluwensya sa tubo ng tagapagbigay ng pagkatubig at kadalasang hindi napapansin. Hindi ko alam ang anumang calculator ng kita ng LP na isinasaalang-alang ito, at maaaring baguhin ng parameter na ito ang lahat. Nagtataka ka kung ano ito sa ngayon. Ito ay ang pamamahagi ng mga LP. Isaalang-alang ang sumusunod na halimbawa:

imahe 212

Sa halimbawang ito, may mga posisyon ang dalawang provider ng liquidity (LP1 at LP2). Ang LP1 ay may makitid na posisyon na $3. Ang LP2 ay may malawak na posisyon na $5. Sa kasong ito, kung ang presyo ay hindi umalis sa hanay ng posisyon ng LP1, makakakuha siya ng 3x na mas maraming bayad kaysa sa LP2. Iyon ay dahil ang LP2 ay mayroon lamang $1 sa hanay na ito. At ang $1 na ito ay nakikipagkumpitensya sa $3 ng LP1.

Kung titingnan mo ang pamamahagi ng pagkatubig ng anumang Uniswap v3 pool, makikita mong hindi ito pare-pareho.

imahe 213

Kung mas mataas ang bar, mas mataas ang kumpetisyon. Kailangang mahanap ng mga provider ng liquidity ang balanse sa pagitan ng pagpili ng mga mapagkumpitensyang hanay at ang hanay na may mas mababang posibilidad ng isang hit sa presyo. Kaya naman malaki ang papel na ginagampanan ng pamamahaging ito sa hula ng tubo ng LP at pagbuo ng diskarte. Ang tanging problema ay… Hindi ako sigurado na ang pamamahagi na ito ay kinakalkula nang maayos.

As if That's Is Not Enough—Liquidity Snipers

Ang pagiging liquidity provider ay tungkol sa paghula sa presyo, estado ng kumpetisyon, at dami ng kalakalan. Kung ang isang LP ay may hiling, ito ay upang malaman ang hinaharap ng mga kalakalan upang ayusin ang mga posisyon ng pagkatubig bago.

Ngunit paano kung sabihin ko sa iyo na posible?

Habang nagsasaliksik, nakuha ng aking pansin ang ilang hindi pangkaraniwang tagapagbigay ng pagkatubig. Nagdagdag at nag-alis sila ng mga makabuluhang posisyon sa pagkatubig (mahigit $10m) nang maraming beses sa isang araw. Ang mas nakakagulat, palagi silang nagdaragdag at nag-aalis ng pagkatubig sa parehong bloke.

Tingnan natin ang isang halimbawa:

imahe 214

Mayroon kaming tatlong mga transaksyon, lahat sa block 15413416, mga posisyon 3-5, na isinasagawa sa bottom-up order. Ang unang transaksyon, na may paraan ng Ipatupad, ay isang kontrata na pinangalanang "MEV Bot," na nagdaragdag ng $22m ng pagkatubig sa pool ng USDC-WETH.

imahe 215

Ang pangalawang transaksyon ay isang swap mula sa USDC patungo sa DogeChain sa pamamagitan ng WETH. Ito ay isang ordinaryong swap na may halaga na humigit-kumulang $16,500.

imahe 216

Ang ikatlong transaksyon ay "MEV Bot" muli, na nag-aalis ng $22m liquidity mula sa USDC-WETH pool.

imahe 217

Ang nangyari sa halimbawa ay tinatawag na "liquidity sniping". Hayaan akong ipaliwanag kung paano ito gumana:

  1. May nagpadala ng transaksyon para ipagpalit ang USDC sa DogeChain
  2. Nakita ng MEV Bot ang transaksyong ito sa mempool at nag-activate ng pribadong link sa isang mining pool gamit ang teknolohiyang Flashbots o katulad na bagay.
  3. Nagbayad ang MEV Bot sa mga minero upang isama ang isang transaksyon sa swap at dalawang transaksyon sa isang partikular na order na nagpapahintulot sa pagkuha ng halaga
  4. Nagdagdag ang MEV Bot ng napakaraming liquidity ($22m) sa isang napakakitid na hanay ng presyo, kaya epektibo, lahat ng kita sa bayad mula sa partikular na kalakalang USDC-DogeChain ay naipon sa kanya
  5. Pagkatapos ay tinanggal ng MEV Bot ang pagkatubig at nakakuha ng mga bayarin (mga $35)

Kaya, ang kanyang kabuuang kita pagkatapos ng mga bayarin sa gas ay humigit-kumulang $30. Hindi masyado? Oo, ngunit ipinapatupad niya ang diskarteng ito nang maraming beses sa isang minuto, na lahat ay nagdaragdag. Kaya mo suriin ito sa iyong sarili.

Ano ang ibig sabihin nito para sa iyo bilang tagapagbigay ng pagkatubig? Nangangahulugan ito na ang mga liquidity sniper ay maaaring tumagal ng malaking pagbawas sa iyong mga kita sa bayad.

Konklusyon

Hayaan akong tapusin ang aking mga natuklasan sa pananaliksik:

  1. Ang mga numero ng TVL sa Uniswap v3 Charts ay lubhang hindi tumpak. Ang parehong mga error ay umiiral sa lahat ng analytical tool na umaasa sa opisyal na Uniswap v3 subgraph.
  2. Ang kabuuang Uniswap v3 TVL ay $3,14b kumpara sa $11,8b na iniulat ng opisyal na website (sa oras ng pagsulat).
  3. Ang mga Calculator para sa Uniswap v3 liquidity provider ay may maliit na halaga para sa mga diskarte sa totoong buhay dahil hindi nila isinasaalang-alang ang kompetisyon at liquidity sniper.
imahe 218

Sa kabutihang palad, mas mauunawaan mo na ngayon kung paano gumagana ang Uniswap v3 liquidity pool sa totoong buhay at maisasaayos ang iyong pananaliksik nang naaayon.

Wala ako sa posisyon na magbigay ng payo sa pananalapi, ngunit nakikita ko lang ang 2 opsyon upang bumuo ng isang kilalang diskarte sa pagbibigay ng pagkatubig:

  1. SIMPLE. Gamitin ang dating data ng pagganap. Subukan ang ilang posisyon sa pagkatubig na may maliliit na stake at tingnan kung anong mga opsyon ang mas gumagana. Malinaw, ito ay gumagana lamang sa ilalim ng pagpapalagay na ang merkado ay matatag.
  2. ADVANCED. Magsagawa ng pananaliksik at i-optimize ang diskarte sa LP nang naaayon. Tulad ng aming tinalakay sa itaas, nangangailangan iyon ng malalim na pag-unawa sa Uniswap v3 protocol, mga kakayahan sa teorya ng matematika at laro, at isang mahusay na tool sa analytics ng data upang maproseso ang malaking halaga ng data sa real time.

Ang parehong mga opsyon ay may isang bagay na pareho-binabatay mo ang iyong mga desisyon sa data sa halip na isang gut feeling o random na mga tool. Kung minsan ang pagtatrabaho sa data ay mahirap, ngunit ito ay nagbabayad.

Sa Datamint, palagi kaming nandito para tulungan ka sa iyong mga custom na proyekto ng data.

Nawa ang data ay nasa iyo!

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