Malo sam kroz vikend proučavao Uniswap i na koji način funkcionira "priča" oko liquidity providera (LP). Zapravo me zanimalo postoji li tu neki rizik (osim očiglednog da netko dumpa sve tokene i ostane ti hrpa bezvrijednih tokena). Ukratko - naravno da postoji. No ajmo redom...
Sve informacije sam pročitao u dokumentaciji Uniswapa dostupnoj
ovdje.
Kao što znate (ili možda ne znate) Uniswap radi na principu da LP-ovi u pool određenog para (npr. ETH i USDT) stave dvije kriptovalute (u ovom primjeru ETH i USDT) u istom omjeru. Znači ako je cijena ETH-a $400, onda treba staviti 1 ETH i 400 USDT. Naravno da to ne rade jer su dobri nego zato jer od svakog trejda LP-ovima pripada 0,3%, u odgovarajućem omjeru. E sad, naravno da tih 0,3% dobivaju zato jer ipak riskiraju. Zapravo je LP-ovima najbolje kad se cijena para ne mijenja. Jer ako se mijenja, LP-u ostaje manje kripta nego da ga je samo držao. Sad ću na primjeru pokušati objasniti zašto je to tako.
Primjer ako cijena Ethereuma narasteUzmimo za primjer da LP u pool ubaci 1 ETH i 400 USDT (zbog jednostavnosti računam da 1 ETH košta $400). Ako u poolu ima ukupno 10.000 ETH i 4.000.000 USDT, ispada da LP dobije 0,01% svih fee-a. Znači ako je 24 satni volumen para $68.740.329, LP-u bi u tom slučaju pripalo oko $20. E sad, sve je to lijepo dok se cijena ne mijenja. Ali što ako cijena ETH poraste na $500? Uniswap poolovi rade po principu ove formule:
eth_liquidity_pool * token_liquidity_pool = constant_product
Znači "constant_product" je konstanta koja se ne mijenja. Također, za trejdove koji su maleni u odnosu na ukupni liquidity pool vrijedi ova formula:
eth_price = token_liquidity_pool / eth_liquidity_pool
Ako kombiniramo ove dvije formule, dobijemo slijedeće:
eth_liquidity_pool = sqrt(constant_product / eth_price)
token_liquidity_pool = sqrt(constant_product * eth_price)
Znači ako uzmemo naš primjer odozgo (ubačen 1 ETH i 400 USDT pa cijena ETH naraste na 500 USDT), dobijemo slijedeći rezultat:
constant_product = 10.000 ETH * 4.000.000 USDT = 40.000.000.000
eth_liquidity_pool = sqrt(40.000.000.000 / 500) = 8.944,2719 ETH
token_liquidity_pool = sqrt(40.000.000.000 * 500) = 4.472.135,955 USDT
Znači vidimo da se samim rastom cijene ETH-a promijenio liquidity pool u kojem sad ima 8.944,2719 ETH (manje nego prije) i 4.472.135,955 USDT (više nego prije). A koliko LP sad može dobiti ako izvuče ETH i USDT iz poola? U primjeru smo definirali da naš liquidity čini 0,01% cijelog poola pa prema tome ispada da nakon promjene cijene LP ima pravo na 0,89442719 ETH i 447,2135955 USDT. Ukupno u dolarima po trenutnoj cijeni (1 ETH = $500) to iznosi $447,21 x 2 = $894,42 (jer smo iz poola dobili jednaku količinu USDT i ETH po trenutnoj cijeni ETH-a)
E sad, to na oko može izgledati dobro (dobije se manje ETH, ali zato se dobije više USDT). Ali da smo samo držali ETH i USDT u walletu, sad bi imali 400 USDT i 1 ETH što bi ukupno vrijedilo $400 + $500 = $900.
Eto... Inače nisam baš veliki matematičar ali mislim da sam ovo dobro izračunao
Primjer ako cijena Ethereuma padneAjmo sad na drugi primjer, ali s manje objašnjenja. Uzmimo da je sve isto (u poolu imamo 10.000 ETH i 4.000.000 USDT, cijena ETH je $400, a LP ubaci 1 ETH i 400 USDT), ali da cijena ETH padne na $350.
Računica je:
constant_product = 10.000 ETH * 4.000.000 USDT = 40.000.000.000
eth_liquidity_pool = sqrt(40.000.000.000 / 350) = 10.690,4497 ETH
token_liquidity_pool = sqrt(40.000.000.000 * 350) = 3.741.657,3868 USDT
Znači, obzirom da je cijena 1 ETH pala na $350, u poolu imamo ukupno 10.690,4497 ETH i 3.741.657,3868 USDT. Naš dio (0.01%) koji sad možemo izvaditi iz poola je 1,069 ETH i 374,1657 USDT, odnosno ukupno sad imamo u dolarima 374,1657 x 2 = $748,33. Da je samo holdao, imao bi ukupno $750 (400 USDT i 1 ETH u protuvrijednost $350).
ZAKLJUČAK: Kao što vidimo, razlika je malena ali ipak postoji. Može se reći da se razlika može pokriti zaradom od provizije koja se dobije kao LP. Ali to je tako kad se radi o paru koji ima veliki volumen. Ako je netko LP na paru s malim volumenom, onda obično cijena jako "skače", a fee koji se dobiva je puno manji.