Wszystkie Twoje obliczenia dotyczące płynności finansowej Uniswap v3 są całkowicie błędne! Dlatego

X = 2 2 5

Wiesz, że to źle, ale kiedy widzisz to po raz pierwszy, zastanawiasz się i myślisz: „Może coś jest nie tak z moimi obliczeniami”. Prawidłowy?

Cóż, dokładnie tak się czułem, gdy odkryłem, że dane dotyczące płynności i TVL (Total Value Locked) wyświetlane w interfejsie użytkownika Uniswap V3 były całkowicie błędne.

Uniswap to największe zdecentralizowane finansowanie (DeFi) projekt włączony Ethereum i całość blockchain przemysł. Tysiące dostawców płynności codziennie wykorzystuje te dane do budowania swoich strategii inwestycyjnych. Jak więc te liczby mogą być niedokładne?

Spędziłem godziny próbując znaleźć błąd w moich obliczeniach i wiecie co? Nie popełniłem żadnych błędów. A sytuacja jest jeszcze gorsza niż tylko niedokładne TVL.

Ale przejdźmy krok po kroku i zacznijmy od problemu.

Problem

Po pierwsze, czym jest TVL i jak jest używany? Krótko mówiąc, TVL definiuje się jako wartość w dolarach wszystkich aktywów kryptograficznych, które są obecnie delegowane przez użytkowników do łańcucha bloków lub protokołu. Na przykład tymi aktywami może być całkowita płynność zdecentralizowanej wymiany, protokołu pomostowego lub pożyczkowego, lub całkowite aktywa postawione w blockchainie PoS.

Inwestorzy rynku kryptowalut i inni uczestnicy używają TVL w wielu przypadkach:

  1. Ocena stanu protokołu. Dlatego popularne protokoły mogą pochwalić się swoim TVL na stronie głównej. Większe TVL = większe zaufanie użytkowników = mniejsze ryzyko = stabilny zysk.
  2. Porównanie protokołów. Gdybym był traderem kryptowalut, wolałbym używać narzędzi DeFi, takich jak zdecentralizowane giełdy lub mosty, z wyższym TVL.
  3. Pomiar wzrostu protokołu. Inwestorzy, którzy widzą, że protokół lub TVL projektu szybko rośnie, uważają to za sygnał do optymistycznego podejścia do ceny tokena protokołu.

Wygląda na to, że warto wiedzieć dokładny Numery TVL, prawda?

Ale co, jeśli powiem, że większość dostępnych danych na temat Uniswap v3 TVL jest myląca? Największą niespodzianką dla mnie było jednak to, że urzędnik Aplikacja Uniswap Chart to też problem! Oto jak się dowiedziałem.

Pracowałem nad projektem analizy płynności, porównując oficjalne dane dotyczące Uniswap v3 z moimi obliczeniami przy użyciu surowych danych blockchain. Ten krok jest niezbędny do spełnienia najwyższych standardów jakości danych. Aby rozpocząć weryfikację, wybrałem popularną pulę płynności, USDC-WETH (poziom opłaty 0,3%).

obraz 202
MEV Bot zwiększający płynność dla Ether

Spójrz na pulę 3 w Uniswap v3 — ma imponujący TVL w wysokości 333 mln USD (w oparciu o oficjalne wykresy Uniswap w momencie pisania tego tekstu) i zdrowy dzienny obrót w wysokości 61 mln USD.

Natychmiast natknąłem się na problem: moja obliczona wartość TVL wyniosła 176 mln USD zamiast 333 mln USD zgłoszonych na stronie Uniswap. Ok, więc błędy się zdarzają. Ale przed przejściem do debugowania postanowiłem zweryfikować TVL na najpopularniejszym eksploratorze blockchain Ethereum, Etherscan. Technicznie rzecz biorąc, każda pula Uniswap v3 jest inteligentną umową. Tak więc eksplorator blockchain może pokazać salda tokenów w posiadaniu puli, co jest tym, czym jest TVL.

obraz 203
Standardowa transakcja swap.

Spodziewałem się, że saldo tokenów w puli będzie nieco większe niż TVL zgłoszone przez Uniswap. Dzieje się tak, ponieważ pula zawiera płynność, a także opłaty, które zostały naliczone, ale jeszcze nie zostały odebrane. Ale to saldo było prawie o połowę mniejsze od kwoty podanej przez Uniswap i, co zaskakujące, było to tyle samo, co moje obliczenia!

Porównanie płynności, aktywa po aktywach, również wykazało ogromną różnicę. W tym momencie zdałem sobie sprawę, że błąd nie ma nic wspólnego z moimi umiejętnościami matematycznymi.

obraz 205
I to właśnie nazywamy „snajperem płynności”.

Ale jak to się mogło stać? Po przeprowadzeniu badań odkryłem, że Uniswap opiera się na zdecentralizowanej usłudze indeksowania blockchain Wykres. Dzięki tej usłudze każdy programista może dodać osobisty kod analityczny (tzw. podgraf) dla określonych przypadków użycia danych blockchain i udostępnić analitykę za pośrednictwem interfejsu API.

Uniswap Labs stworzył własne podgrafy do analizy protokołu Uniswap i udostępnił je za pośrednictwem Usługa hostowana przez wykres. Dobrą rzeczą jest to, że jego kod jest publicznie dostępne. Złą rzeczą są jednak błędy w obliczeniach TVL.

Krótka analiza kodu pokazuje, że uwzględnia on wszystkie swapy i zdarzenia płynnościowe, ale nie uwzględnia opłat. Pule Uniswap mają opłatę od 0.01% do 1% za każdą wymianę. Opłata ta jest potrącana z aktywów będących przedmiotem obrotu i naliczana dostawcom płynności. Z kolei dostawcy płynności mogą w dowolnym momencie pobierać naliczone opłaty.

Obecny podgraf Uniswap v3 przedstawia jednak liczby tak, jakby nigdy nie naliczano i nie pobierano żadnych opłat. Tak więc dane Uniswap v3 TVL odbiegały od rzeczywistości przy każdej wymianie.

Możesz się zastanawiać: „Czy przed napisaniem tego artykułu przesłałeś zgłoszenie problemu na GitHub?” Tak, to moja pierwsza intencja po odkryciu błędu. I wiesz co? Ten problem jest już zalogowany, stworzony przez głównego programistę w listopadzie 2021 roku!

Dlaczego więc ten problem nie został naprawiony? Nie mam pojęcia. Być może błąd był nieistotny w momencie wykrycia tego błędu. Jest to jednak skumulowany błąd, który rośnie z każdą zamianą. Tak więc, wraz ze wzrostem opłaty i wolumenu obrotu w puli, wynikająca z tego rozbieżność TVL z błędem spowoduje większą różnicę od rzeczywistości. I widzimy, że w dużej puli, takiej jak USDC-ETH z większą opłatą 0.3%, wymknęła się spod kontroli! Obecnie to prawie dwa razy więcej niż prawdziwe dane.

Zweryfikujmy całkowitą TVL

Ok, wiemy już, że liczby TVL w poszczególnych pulach są zniekształcone. Zbadamy, jak może to wpłynąć na decyzje inwestycyjne poniżej. Ale zanim do tego dojdziemy, zobaczmy, jak te błędy wpływają na całkowity TVL protokołu Uniswap v3. Ten TVL jest zgłaszany na prawie 12 miliardów dolarów w momencie pisania.

Nie musisz być analitykiem danych, żeby zobaczyć, że coś jest nie tak.

obraz 207

Widzimy powyżej, że TVL był zgłaszany jako powoli, ale stale rósł z 500 mln USD do 4.5 mld USD 6 marca 2022 r. Potem wydarzyło się coś szalonego i TVL został zgłoszony jako 254 mld USD 7 marca 2022 r. To 2,5 razy więcej niż najwyższy TVL w całej sieci Ethereum w JEDEN dzień! Najwyraźniej to błąd w danych. W następnych tygodniach TVL został zgłoszony w wysokości 10-20 miliardów dolarów.

W tym momencie straciłem całe zaufanie do danych analitycznych Uniswap. Ale skąd możemy poznać prawdziwe TVL? Miałem 2 opcje.

Opcja 1 — rozwidlenie i naprawienie podgrafu Uniswap v3. Wadą tej opcji jest to, że ponowne zindeksowanie podgrafu zajęłoby kilka dni. I nie jestem fanem języka GraphQL, którego używa The Graph.

Na szczęście miałem opcję 2— – Datamintwysokowydajne analityczne bazy danych dla wszystkich danych Uniswap v3 i Ethereum, łatwo dostępne dla złożonych zapytań online.

Po kilku eksperymentach stworzyłem następujący algorytm do dokładnego obliczania TVL. Sprawdź poniższy proces krok po kroku.

  1. Oblicz TVL dla wszystkich istniejących pul Uniswap v3, wykonując te dwa kroki.
    1. Dodaj wszystkie transfery tokenów ERC-20 do i z umowy puli (obejmuje to wszystkie nieodebrane opłaty) i dopasuj salda tokenów na Etherscan
    2. Dodaj wszystkie zdarzenia płynności, przychodzące i wychodzące, a następnie dodaj wszystkie zdarzenia swapowe do konto do opłat
  2. Porównaj te dwie metody i upewnij się, że nie pozostały niewyjaśnione rozbieżności
  3. Usuń porzucone i puste pule z mniej niż 50 swapami lub liczbą tokenów 0.00000000000001 (z wykrytymi 7,863 pulami (w tym 2,083 parami ze stajniami), mój algorytm usunął 112 pul jako pustych/porzuconych)
  4. Znajdź ścieżkę do stabilnych monet dla każdego tokena, aby przeliczyć pulę TVL na wartość USD
  5. Usuń pule o niskiej płynności z uszkodzonymi wartościami USD, ponieważ niektóre pule mogą pokazywać nieodpowiednie wartości po całkowitym usunięciu płynności (sprawdź poniższy wykres jako przykład)
obraz 208
  1. Przelicz TVL wszystkich pozostałych par na wartość USD i dodaj je

Po wielu kontrolach krzyżowych wymyśliłem kalkulację TVL. Zacząłem i chciałem dostać kawę podczas wykonywania obliczeń, ale skończyło się, zanim wstałem. To jedyna wada korzystania z wysokowydajnej analitycznej bazy danych.

Czy jesteś gotowy, aby zobaczyć wynik?

obraz 210

Jest prawie 4 razy mniej niż zgłoszony $11,8b… Od Ciebie zależy, czy wyciągniesz wnioski.

Odpowiedzialność: Moje obliczenia mogą zawierać błędy. W projektach danych dla klientów korporacyjnych wykorzystujemy udokumentowaną metodologię, autotesty i wiele innych narzędzi, aby osiągnąć najwyższą jakość danych. Te narzędzia byłyby przesadą w przypadku takiego osobistego projektu badawczego. Badania te podkreślają oczywiste problemy w dostępnych danych, a nie dostarczają ostatecznego rozwiązania.

OK, naprawimy obliczenia TVL — czy to pomoże?

Problemem nie są błędne liczby, ale decyzje, które podejmujemy na ich podstawie. Na przykład większość kalkulatorów zysków dla dostawców płynności używa tych liczb do prognoz.

Jednak naprawienie kalkulacji TVL nie jest trudne. Albo Uniswap Labs naprawia to w swoim kodzie podwykresu, albo programiści kalkulatorów zaczynają korzystać z innych źródeł danych. Podstawowym pytaniem jest, czy możemy być pewni, że przewidywania kalkulatora są prawidłowe.

Zrobiłem kilka obliczeń i krótka odpowiedź brzmi:nawet nie zamknięte.

Śmiałe twierdzenie, wiem. Wielu dostawców płynności korzysta z istniejących kalkulatorów i wpływa na decyzje, które kosztują dziesiątki milionów dolarów. Przejdźmy jednak przez kroki obliczeniowe, abyś mógł dokonać własnego osądu.

Najpierw przejrzyjmy kilka podstawowych koncepcji protokołu Uniswap v3.

Jedną z głównych innowacji jest skoncentrowana płynność. Zasadniczo dzięki Uniswap v3 możesz wybrać przedział cenowy, w którym chcesz, aby Twoje pieniądze działały jako dostawca płynności. To niesamowita koncepcja, która może przynieść dużą wartość użytkownikom protokołu. Dostawcy płynności ograniczają swoją ekspozycję na nietrwałą stratę, a inwestorzy mogą cieszyć się mniejszym poślizgiem cenowym, gdy zmienność jest niska. Ale wszystkie te potencjał korzyści mają swoją cenę-kompleksowość.

obraz 211

Dlatego chcemy zrozumieć, w jaki sposób obliczane są zarobki dostawcy płynności Uniswap v3.

W Uniswap v3 dostawca płynności wybiera przedział cenowy, do którego ma zapewnić płynność. Dostanie swoją obniżkę opłat swapowych, gdy cena znajdzie się w tym zakresie. Na pierwszy rzut oka dostawca płynności chce, aby przedział cenowy swojej pozycji płynnościowej był jak najszerszy. Jednak płynność rozkłada się proporcjonalnie w tym zakresie. Tak więc im szerszy zakres, tym niższa opłata swap dla każdej transakcji.

obraz 211

W tym przykładzie opcja A pokazuje dostawcę płynności wybierającego szerszy przedział cenowy, a opcja 2 pokazuje węższy z tą samą kwotą. Zakładając, że w obu przypadkach cena mieści się w wybranym przedziale cenowym, dostawca płynności otrzymuje 3 razy więcej opłat w wariancie B. Jeśli jednak cena jest bardziej zmienna, dostawca płynności może osiągnąć wyższy zysk w wariancie A.

Tak więc w rzeczywistości wybór odpowiedniego przedziału cenowego polega na znalezieniu najlepszej równowagi między ryzykiem utraty ceny a uzyskaniem niższego zwrotu z każdej transakcji.

Jeszcze jeden parametr wpływa na zysk dostawcy płynności i jest często pomijany. Nie znam żadnego kalkulatora zysku LP, który by to uwzględniał, a ten parametr może wszystko zmienić. Zastanawiasz się, co to jest do tej pory. To dystrybucja płyt LP. Rozważmy następujący przykład:

obraz 212

W tym przykładzie dwóch dostawców płynności (LP1 i LP2) ma pozycje. LP1 ma wąską pozycję 3 USD. LP2 ma szeroką pozycję 5 $. W takim przypadku, jeśli cena nie wyjdzie poza zakres pozycji LP1, otrzyma 3x więcej opłat niż LP2. To dlatego, że LP2 ma tylko 1 USD w tym zakresie. A ten 1 dolar konkuruje z 3 dolarami LP1.

Jeśli spojrzysz na rozkład płynności dowolnej puli Uniswap v3, zobaczysz, że nie jest on jednolity.

obraz 213

Im wyższy pasek, tym wyższa konkurencja. Dostawcy płynności muszą znaleźć równowagę między wyborem konkurencyjnych zakresów a zakresem o mniejszym prawdopodobieństwie uderzenia ceny. Dlatego ta dystrybucja odgrywa dużą rolę w przewidywaniu zysków LP i budowaniu strategii. Jedyny problem to… nie jestem pewien, czy ten rozkład jest poprawnie obliczony.

Jakby tego było za mało — snajperzy płynności

Bycie dostawcą płynności polega na odgadywaniu ceny, stanu konkurencji i wielkości transakcji. Jeśli LP miałby życzenie, byłoby to poznanie przyszłości transakcji w celu wcześniejszego dostosowania pozycji płynności.

Ale co jeśli powiem ci, że to możliwe?

Podczas poszukiwań moją uwagę przyciągnęło kilku nietypowych dostawców płynności. Dodawali i usuwali znaczące pozycje płynnościowe (ponad 10 mln USD) wiele razy dziennie. Co jeszcze bardziej zaskakujące, zawsze dodawali i usuwali płynność w tym samym bloku.

Spójrzmy na przykład:

obraz 214

Mamy trzy transakcje, wszystkie w bloku 15413416, pozycje 3-5, realizowane w kolejności od dołu do góry. Pierwsza transakcja, z metodą Execute, to kontrakt o nazwie „MEV Bot”, zwiększający płynność o 22 mln USD do puli USDC-WETH.

obraz 215

Druga transakcja to zamiana USDC na DogeChain za pośrednictwem WETH. Jest to zwykły swap o wartości około 16,500 XNUMX USD.

obraz 216

Trzecią transakcją jest ponownie „MEV Bot”, usuwając płynność 22 mln USD z puli USDC-WETH.

obraz 217

To, co wydarzyło się w tym przykładzie, nazywa się „snajperem płynności”. Pozwólcie, że wyjaśnię, jak to działało:

  1. Ktoś wysłał transakcję zamiany USDC na DogeChain
  2. MEV Bot wykrył tę transakcję w mempool i aktywował prywatne łącze z pulą wydobywczą za pomocą technologii Flashbots lub czegoś podobnego
  3. MEV Bot zapłacił górnikom, aby uwzględnić transakcję swap i dwie transakcje w określonej kolejności, która umożliwiła ekstrakcję wartości
  4. MEV Bot dodał tyle płynności (22 mln USD) do bardzo wąskiego zakresu cen, więc skutecznie, wszystkie zyski z opłat z tej konkretnej transakcji USDC-DogeChain zostały mu naliczone
  5. MEV Bot następnie usunął płynność i zarobione opłaty (około 35 USD)

Tak więc jego zysk brutto po opłatach za gaz wyniósł około 30 USD. Nie bardzo? Tak, ale realizuje tę strategię wiele razy na minutę, co wszystko się sumuje. Możesz sprawdź to sam.

Co to oznacza dla Ciebie jako dostawcy płynności? Oznacza to, że snajperzy płynności mogą znacznie obniżyć Twoje zyski z opłat.

Wnioski

Pozwólcie, że podsumuję wyniki moich badań:

  1. Dane TVL na wykresach Uniswap v3 są rażąco niedokładne. Te same błędy występują we wszystkich narzędziach analitycznych opartych na oficjalnym podgrafie Uniswap v3.
  2. Total Uniswap v3 TVL to 3,14 mld USD w porównaniu z 11,8 mld USD zgłoszone przez oficjalną stronę internetową (w momencie pisania tego tekstu).
  3. Kalkulatory dla dostawców płynności Uniswap v3 mają niewielką wartość dla rzeczywistych strategii, ponieważ nie uwzględniają konkurencji i snajperów płynności.
obraz 218

Na szczęście możesz teraz lepiej zrozumieć, jak działają pule płynności Uniswap v3 w prawdziwym życiu i odpowiednio dostosować swoje badania.

Nie jestem w stanie udzielać porad finansowych, ale widzę tylko 2 możliwości zbudowania wyróżniającej się strategii zapewniającej płynność:

  1. PROSTY. Użyj historycznych danych o skuteczności. Wypróbuj kilka pozycji płynnościowych z małymi stawkami i zobacz, które opcje działają lepiej. Oczywiście działa to tylko przy założeniu, że rynek jest stabilny.
  2. ADVANCED. Przeprowadź badania i odpowiednio zoptymalizuj strategię LP. Jak wspomnieliśmy powyżej, wymaga to dogłębnego zrozumienia protokołu Uniswap v3, kompetencji w zakresie matematyki i teorii gier oraz potężnego narzędzia do analizy danych do przetwarzania ogromnych ilości danych w czasie rzeczywistym.

Obie opcje mają jedną wspólną cechę — opierasz swoje decyzje na danych, a nie na intuicji lub losowych narzędziach. Czasami praca z danymi jest trudna, ale się opłaca.

W Datamint jesteśmy zawsze tutaj, aby pomóc Ci w niestandardowych projektach danych.

Niech dane będą z Tobą!

Źródło: https://www.cryptopolitan.com/uniswap-v3-liquidity-farming-calculations/