Začněte psát a výsledky vyhledávání se zobrazí zde...

Impermanent loss: Zásadní problém při poskytování likvidity. Co to je a jak se tomu bránit?

Impermanent loss: Zásadní problém při poskytování likvidity. Co to je a jak se tomu bránit?
Zdroj: Depositphotos.com

Pokud se pohybujete v oblasti DeFi a někdy jste zkoušeli obchodovat na decentralizovaných burzách, jistě jste slyšeli o možnosti stát se poskytovatelem likvidity. Jedná se o potenciálně výdělečnou činnost, se kterou se ale pojí jistá míra rizika, která se nazývá impermanent loss.

Impermanent loss můžeme volně do češtiny přeložit jako dočasnou” ztrátu. Název však může být značně zavádějící a v žádném případě nemáte jistotu, že ztráta opravdu bude pouze dočasná. Velmi snadno se může stát trvalou.

V tomto článku si proto přiblížíme fungování tzv. impermanent loss. Řekneme si, na jakých burzách se s impermanent loss setkáte, v jaké míře, a také jaké jsou účinné způsoby pro minimalizaci této ztráty. Pojďme na to!

Co přesně je impermanent loss a kde se s ní můžeme setkat?

Impermanent loss je unikátní jev u decentralizovaných burz využívajících model tzv. automated market maker. AMM je nové řešení pro kryptoměnové burzy umožňující jejich plnou decentralizaci.

Na takových burzách totiž uživatelé neobchodují s protistranou (dva obchodníci proti sobě), jako je to běžné na centralizovaných burzách typu Binance. Náhradou za protistranu je tzv. liquidity pool, který si můžeme představit jako velký “bazén s likviditou” – podíl dvou nebo více kryptoměn.

Obchodníci na takových burzách poté vykonávají obchody právě vůči tomuto liquidity poolu – směňují jednu kryptoměnu za druhou a podíl kryptoměn společně s cenou se kvůli tomu mění.

Market makera (obchodníka na druhé straně obchodu) zde nahrazuje počítačový program využívající u většiny decentralizovaných burz jednoduchou rovnici konstantního produktu.

Poznámka

Rovnice konstantního produktu má velmi jednoduchý tvar:

 

y * x = k

 

Význam proměnných v rovnici je následující: y je počet mincí první kryptoměny, x je počet mincí druhé kryptoměny a k je konstanta – výsledný produkt.

Pomocí této rovnice je regulována cena kryptoměn v liquidity poolu a je tak automaticky zajištěno vyrovnávání podílu na rovné hodnoty. Při nakoupení první kryptoměny se y zvýší a pro zachování konstantního k musí x klesnout. To je základním kamenem fungování AMM a decentralizovaných burz. Více je k dispozici v našem článku Jak funguje Automated Market Maker? Nový přístup k fungování kryptoměnových burz.

Impermanent loss je možné definovat jako potenciální ztrátu poskytovatele likvidity, rovnající se rozdílu ceny nastakovaných kryptoměn v likviditě a ceny, kterou by kryptoměny měly, pokud by je uživatel pouze držel. Hodnoty výdělku v obou případech jsou počítány k časovému bodu vložení likvidity do liquidity poolu.

Impermanent loss se úměrně zvyšuje s rozdílem ceny, jak dokládá následující graf:

Zdroj: medium.com
Velikost impermanent loss dle míry změny ceny
Velikost impermanent loss dle míry změny ceny

Impermanent loss se objevuje prakticky vždy, pokud vkládáte likviditu do liquidity poolů běžných kryptoměn. Jsou ale případy, kdy jste před impermanent loss do určité míry chráněni – např. při stakingu stablecoinů nebo používání decentralizovaných burz s rozšířením rovnice konstatního produktu – na to se podíváme v kapitole Jak se před impermanent loss bránit?

Na většině decentralizovaných burz, jako např. UniSwap, bývají v liquidity poolu dvě kryptoměny s podílem 50/50. To znamená, že obě kryptoměny v liquidity poolu mají stejnou peněžní hodnotu. Po nějaké době, např. po týdnu, se podíly kryptoměn v poolu změní. Důvod je prostý: Tradeři totiž s kryptoměnami v těchto bazénech neustále obchodují a proto cena obou kryptoměn vůči sobě každou sekundou mění.

A pro zachování konstantního produktu – k – je nutné, aby se změnil i podíl. Je přitom důležité zmínit, že nezáleží na tom, zda se cena jedné kryptoměny zvýší nebo sníží. Impermanent loss se vždy vztahuje pouze k rozdílu.

Chytáte se po minulých odstavcích za hlavu? Nezoufejte, impermanent loss určitě pochopíte po vysvětlení na příkladu.

Příklad impermanent loss

V následujícím příkladu si ukážeme impermanent loss na Jakubově investici do liquidity poolu ETH/USDC. Pro jednoduchost z rovnice vypouštíme poplatky za transakce i za směnu jako takovou.

Nadšený Jakub se rozhodl, že vloží svých 0,5 ETH a 1500 USDC do liquidity poolu na UniSwapu. Jeden ether, tedy jednotka kryptoměny Ethereum, v době Jakubova nákupu stojí 3000 USD a podíly jsou tím pádem cenově vyrovnány – UniSwap používá pouze podíly 50/50.

Celkový Jakubův vklad činí 3000 USDC.

V Jakubově vybraném liquidity poolu se nachází celkem 10 ETH a 30 000 USDC. Hodnota celkové likvidity (proměnná k v rovnici) je 300 000. Podle výpočtů tak Jakubův podíl v liquidity poolu činí 5 %.

Počet ETH = 10 ETH
Počet USDC = 30 000 USDC
Celková likvidita = 10 * 30 000 = 300 000

Jakub své peníze úspěšně vložil a nechá je týden ležet. Jak vypadá Jakubův podíl v liquidity poolu po týdnu?

Během týdne se změní podmínky na vnějších trzích a cena ETH se zvýší na 4000 USD. Poměrová cena v Jakubově liquidity poolu se zvýší následovně:

Poměrová cena ETH při vkladu = 10*3000 = 30 000 USD.

Poměrová cena ETH po týdnu = 10*4000 = 40 000 USD.

Jakubův liquidity pool nyní představuje dokonalou příležitost pro tradery hledající možnosti arbitráže. V Jakubově liquidity poolu mohou nakoupit Ethereum levněji než na jiných burzách. Proto ho tam opravdu kupují a na jiných burzách ho poté prodají.

Během každého nákupu se podíly postupně vyrovnávají až do momentu, kdy Ethereum v přepočtu stojí 4000 USD, stejně jako na ostatních burzách. Možnost arbitráže se tak rázem vytratila a proto tradeři přestávají z tohoto důvodu ETH kupovat.

Jak toho tradeři docílili? Jednoduše tím, že z liquidity poolu odebírali Ethereum a přidávali USDC během svých obchodů.

Jaké jsou hodnoty nového podílu? Před týdnem jsme měli 10 ETH a 30 000 USDC. Pro určení nového podílu si musíme definovat poměr ceny ETH vůči USDC. Jelikož je USDC stablecoin, poměr je 3000 (Za 1 ETH nakoupíme 3000 USDC) a značíme jej r1. Kombinací poměru a rovnice konstantního produktu dostaneme vzorec pro výpočet počtu mincí každé kryptoměny v liquidity poolu.

Pro zkoušku:

x(ETH) = √(k/r1)
√(300000/3000) = 10 ETH

y(USDC) = √(k*r1)
√(3000000*3000) = 30 000 USDC

Aplikovali jsme rovnice na stav liquidity poolu v době Jakubova vkladu a funguje to. Nyní se ale poměr r změnil – 1 ETH teď stojí 4000 USDC. Nový r je tedy 4000, označme ho jako r2. Nyní pojďme aplikovat rovnice výše na stav liquidity poolu po týdnu.

x(ETH) = √(k/r2)
√(300000/4000) = 8,66 ETH

y(USDC) = √(k*r2)
√(3000000*4000) = 34 641 USDC

Celkový podíl v liquidity poolu se změnil na 8,66 ETH a 34 641 USDC – protože ETH je teď dražší. Celková likvidita přitom zůstala nezměněna – stále je na čísle 300 000.

Poznámka

Během našeho modelového příkladu do likvidity nikdo nevložil další peníze a proto se nezvýšila. V praxi je samozřejmě možné, že během sledovaného období nějaký jiný poskytovatel likvidity likviditu vybere, nebo vloží další část a to celý příklad značně zkomplikuje.

Zkouška:

8,66 * 34 641 ≈ 300 000

Jakubův podíl je 5 %. Kdyby se nyní rozhodl likviditu vybrat, jeho podíl v číslech by byl 0,433 ETH a 1732,05 USDC. Jaká je peněžní hodnota Jakubovy investice?

Jakubova bilance po výběru likvidity:

0,433 * 4000 + 1732,05 = 3 464,05 USD

Gratulujeme Jakube, tvé kryptoměny v likvidity poolu zvýšily svoji hodnotu o 464,05 USD.

Kolik by si ale Jakub vydělal, pokud by ETH a USDC prostě jen držel a do žádného poolu je nevkládal?

Potenciální Jakubova bilance, pokud by kryptoměny pouze držel:

0,5 * 4000 + 1500 = 3 500 USD

Kdyby Jakub své ETH a USDC pouze držel, měl by nyní na účtě kryptoměny v hodnotě 3 500 USD a měl by tedy 500 USD zisk. Počkat, to je ale více, než kolik má Jakub reálně, jak je to možné? To je právě výsledek po započtení naší IL.

Jaká je tedy Jakubova impermanent loss? Je možné ji vypočítat jako rozdíl hodnoty v případě pouhého držení a v případě uzamknutí do poolu.

Jakubova impermanent loss:

3 500 – 3 464,05 = 35,95 USD

Byla to dlouhá cesta, ale dobrali jsme se ke zdárnému konci. Jakubova impermanent loss činí necelých 36 USD. Ta se po výběru kryptoměn z poolu však stala permanentní.

Znovu ale musíme podotknout, že je nutné ještě započítat zaplacený poplatek síti Ethereum za přidání a odebrání likvidity, který by ztrátu ještě zvýšil.

Kromě toho jsou ale poskytovatelé likvidity ke svým činnostem motivováni odměnami ve formě přerozdělených poplatků, které uživatelé za své směny zaplatí, a často také i dalšími incentivami ve formě yield farmingu.

Automatické kalkulačky impermanent loss

Impermanent loss si můžete spočítat i jednodušším způsobem. K dispozici jsou různé kalkulačky na internetu. Mým favoritem je kalkulačka na decentyields.com. Na následujících obrázcích je k dispozici ukázka.

Zdroj: decentyields.com
Rozhraní kalkulačky decentyields.com - modelový příklad
Rozhraní kalkulačky decentyields.com – modelový příklad

V pravém horním rohu je možné nastavit stabilní měnu. Na výběr máte široký seznam kryptoměn. Pro spočítání impermanent loss je potřeba nastavit pouze procentuální změnu ceny kryptoměn od nákupu.

Kalkulačka na decentyields.com nabízí tak možnost měnit weight liquidity poolu – jinými slovy poměr podílu. Existují decentralizované burzy umožňující použití liquidity poolů i s jiným poměrem, než je 50/50 – podrobněji si to rozebereme v dalším odstavci.

Zdroj: decentyields.com
Výpis hodnot včetně impermanent loss po kalkulaci
Výpis hodnot včetně impermanent loss po kalkulaci

Na stránce sjeďte trochu dolů a uvidíte výpis všech důležitých hodnot při nákupu a po kalkulaci. Kalkulačka vám vypíše hodnotu ceny při držení a při vložení do liquidity poolu, impermanent loss je vyjádřena v %. Decentyields.com využívá reálné ceny trhu (při nákupu).

Jak se bránit proti impermanent loss?

Impermanent loss má kořeny ve vysoké volatilitě kryptoměn. Jak všichni jistě dobře víte, jejich hodnota se v čase může změnit razantním způsobem. Zaměřením se na méně volatilní kryptoměny můžeme riziko impermanent loss snížit. Ačkoliv jsou největší kryptoměny jako BTC či ETH volatilní, menší kryptoměny mohou být volatilní ještě více a tím pádem způsobit vyšší impermanent loss.

Stablecoiny

Určitým řešením pro zmírnění volatility jsou stablecoiny. Kryptoměny vázané na stabilní měnu nevykazují téměř žádnou volatilitu. Podíly v liquidity poolech stablecoinů (např. liquidity pool USDT/USDC) jsou proti impermanent loss přirozeně chráněny a mohou ji razantně snížit. Nikdy se však impermanent loss nerovná 0.

Curve Finance je asi nejlepším příkladem pro staking stablecoinů. Michael Egorov (tvůrce Curve Finance) byl zároveň prvním propagátorem v oblasti DeFi pro stakování stablecoinů.

Zdroj: curve.fi
Porovnání křivka UniSwapu a Stableswapu (varianta aplikovaná na Curve Finance)
Porovnání křivka UniSwapu a Stableswapu (varianta aplikovaná na Curve Finance)

Ve svých pracích upravil algoritmus UniSwapu a tzv. bonding curves (křivky cen kryptoměn následované změnou podílu v poolech) dokázal více zploštit, zejména pro oblast kolem středu – to je ideální řešení pro stablecoiny. Na decentralizované burze Curve Finance máte k dispozici mnoho poolů se stablecoiny a najdete zde i ostatní kryptoměny, včetně wrapped verzí těch největších.

Wrapped verze kryptoměn

Stakování wrapped verzí kryptoměn je další směr pro snížení volatility. Podobně jako jsou stablecoiny vztažené k USD, wrapped verze vždy kopírují cenovou křivku původní kryptoměny. Liquidity pooly s páry jako BTC/WBTC nebo ETH/WETH jsou vztaženy k jedné kryptoměně a nejsou tolik volatilní.

Impermanent loss je zde minimalizována téměř stejně efektivně jako v případě stablecoinů. Curve Finance nabízí spoustu liquidity poolů s wrapped verzemi velkých kryptoměn.

Liquidity pooly s jiným podílem než 50/50

Existují i jiné způsoby jak se bránit proti impermanent loss. Řešením je úprava algoritmu pro vyrovnávání poolů, odstranění omezení pro striktní rozdělení podílu 50/50 a možnost přidání více kryptoměn do poolu – vystavení vlivu více kryptoměn. Balancer se vydal touto cestou a je celkem úspěšný.

Na Balanceru můžete najít liquidity pooly, ve kterých může být až 8 kryptoměn. S možností více kryptoměn se pojí libovolné nastavení jednotlivých podílů. Příkladem mohou být liquidity pooly s rozdělením 95/5, 80/20 nebo 60/40.

Zdroj: balancer.fi
Příklad liquidity poolu WETH/DAI s rozdělením 60/40

Modelový příklad: mějme liquidity pool MKR/WETH s rozdělením 80/20. Při změně ceny MKR nebude mít impermanent loss takový vliv jako při podílu 50/50. Míra impermanent loss vůči změně ceny v konkrétních variantách podílu je vyjádřena v následujícím grafu:

Zdroj: bankless.hq
Průběh impermanent loss pro jednotlivé podíly podle relativní změny ceny

Odměny pro poskytovatele likvidity

Celý příklad s Jakubem je pouze hypotetický, neboť jsme do něj nezahrnuli potenciální zisk z poplatků. Ve skutečnosti jsou poskytovatelům likvidity vypláceny odměny z poplatků vybíraných na obchodech.

Každá decentralizovaná burza má výši poplatku nastavenou jiným způsobem. Většinou se však jedná řádově o 0,3% poplatek, který je dále distribuován mezi všechny poskytovatele likvidity a to úměrně k velikosti jeho vkladu v porovnání se všemi ostatními vklady.

Mějme kupříkladu Lucii. Lucie se rozhodne provést transakci na UniSwapu v hodnotě 500 USD. Ignorujme veškeré další poplatky. UniSwap Lucii strhne 0,3 % z 500 USD – 1,5 USD. Algoritmus UniSwapu přerozděluje poplatek automaticky do celkové likvidity – v našem modelovém příkladu by se férově navýšila likvidita o 0,75 USD do ETH a o 0,75 USD do USDC. Po každé transakci se hodnota celkové lividity v liquidity poolu navyšuje a pro poskytovatele likvidity se tak navyšuje i potenciální zisk.

Ve skutečnosti by tak Jakub mohl být i v zisku. A to za předpokladu, že se v Jakubově liquidity poolu vykonalo velké množství obchodů, tím pádem se vybralo hodně poplatků a likvidita se navýšila o zajímavou částku, která převyšuje zmíněnou dočasnou ztrátu.

To je smysl poskytování likvidity – zisk na vybraných poplatcích musí být vyšší, než impermanent loss. Opačně je poskytovatel likvidity vždy ve ztrátě.

Pár slov závěrem

Má vůbec smysl poskytovat likviditu? Určitě má, pokud si správně zvolíte liquidity pool, nebo využíváte správně prostředky pro snížení rizika. Poskytování likvidity je výdělečné za podmínky, že jsou vybrané poplatky na obchodech vyšší, než impermanent loss.

Při rozhodování byste tudíž měli zvážit jak výběr konkrétního liquidity poolu a jednotlivých kryptoměn, tak i na jaké burzy likviditu poskytovat. Bezpečnější varianty jako Curve nebo Balancer vás sice épe ochrání před impermanent loss, volume na nich ale nemusí být ani zdaleka tak velký, jako na UniSwapu – nejpoužívanější decentralizované burze.

Ve světě kryptoměn nic není zadarmo a i když může poskytování likvidity představovat na první pohled bezpečnější cestu k výdělku, než třeba obchodování přes páku, stále je zde velké riziko.

Líbil se vám tento článek?
14
0

Autor

Bývalý šéfredaktor, softwarový architekt a nadšenec do kyberbezpečnosti a blockchainu. V rámci Finexu se zaměřuje zejména na technická témata v oblasti kryptoměn. Kryptoměny považuje za platidlo budoucnosti řešící řadu problémů s centralizovanou náturou existujících platebních prostředků. DeFi svět považuje za úchvatný a nabízející spoustu skvělých příležitostí.

Přečíst více

Sdílejte tento článek

Mohlo by vás zajímat

Diskuze (3 komentáře)

Připojte se k diskuzi

Pro přidání komentáře se prosím přihlašte ke svému uživatelskému účtu.

tom tom

Prosím v příkladu se zmiňuje nákup ETH za 3000 dolarů a v čase se ETH dostane na 4000 dolarů. V praxi když bych liqidity pool stakování zrušil dostanu méně ETH jak zmiňuje příklad, ale! dostanu své ETH na peněženku alespoň v kurzu 3000 dolarů jak byly nakoupeny?

Redakce Finex

Zdravíme Tome. Moc nechápeme vaši otázku. Pro ujasnění, v uvedeném příkladu byla cena 1 ETH 3000 USD ale my jsme koupili 0,5 ETH za 1 500 USD a 1 500 USD jsme použili ve formě USDC. V případě, že byste chtěl likviditu vybrat ve chvíli, kdy se jakkoli změní cena ať už jedné, nebo druhé kryptoměny v poolu, tak dostanete počet daných tokenů upravený právě o impermanent loss, což je předmětem celého článku.

Tedy v našem konkrétním případě byste z 0,5 ETH a 1500 USDC měl -> 0,433 ETH a 1732,05 USDC. I to je v článku uvedeno. Cena jednoho ETH by v tu chvíli logicky byla 4000 USD, protože jste sám zmínil, že byset chtěl likviditu vybrat právě ve chvíli, kdy je cena 4000 USD. Za dobu, co byly tokeny v poolu, byste ale získával incentivu ve formě tokenů daného protokolu (např. UNI/SUSHI/VVS) takže reálně byste dostal ještě třetí token navíc. Plus samozřejmě nějaké ETH a USDC navíc, které se vybraly ve formě poplatků za obchodování v daném poolu.

tom tom

Děkujum asi jsem to napsal počet jsem pochopil, ale jde mi o nákupní cenu.
Není mi jasné když ukončím liqidity pool a dostanu zmňované “0,433 ETH a 1732,05 USDC” zpět tak jestli mi zůstane nákupní cena etherea 3000$? Pokud ne tak mě to přijde hodně nevýhodné a škoda, protože pokud ETH bude mít jednou 40 tisíc dolarů a více tak bude menší zhodnocení.