Cos’è l’ impermanent loss?

0xstepit
Terra Network Italia
6 min readNov 11, 2021

E’ davvero impermanente la perdita impermanente?

Introduzione

In un mercato decentralizzato costruito attraverso un automated market maker (AMM) la liquidità necessaria ad effettuare i trade è fornita sotto forma di pool. Una pool è creata con uno smart contract che permette agli utenti in possesso di almeno due criptovalute di depositarle all’interno del protocollo e metterle a disposizione dei trader. In cambio di questo deposito si ricevono le fee pagate per ogni trade.

Un utente che deposita una coppia di criptovalute viene chiamato liquidity provider. Questo nome deriva dal fatto che la liquidità in un protocollo decentralizzato deve essere necessariamente fornita da degli utenti.

Oltre alla volatilità intrinseca delle monete, quando si effettua questo tipo di operazione si è soggetti anche ad altri rischi. I due principali sono:

  • Possibili problemi nello smart contract.
  • Impermanent loss (IL).

In questo post andremo ad analizzare nel dettaglio il secondo rischio.

Con impermanent loss si intende la differenza del valore del proprio portafoglio a seguito di partecipazione a una pool, rispetto al semplice holding. In sostanza è quindi quel valore aggiuntivo che avremo avuto tenendo le nostre monete ferme piuttosto che averle messe a liquidità in un AMM.

HP: tratteremo solo l’impermanent loss nel caso di amm a pool con prodotto costante (Uniswap per intenderci).

Impermanent loss

Vorrei cominciare la sua descrizione con il dire che è possibile sentire riferirsi a questo tipo di perdita in due modi:

  • Impermanent loss: questo termine fa riferimento al fatto che non è una perdita effettiva fino a che non si prelevano i propri fondi dalla pool di liquidità.
  • Divergence loss: in questo caso si fa riferimento al fatto che questa perdita dipende da quanto l’andamento del prezzo dei due token che si sono depositati varia. Questo è quantificabile con la differenza fra il rapporto dei prezzi delle due monete nel momento in cui si è aggiunta liquidità e di quando la si è tolta.

Come si verifica

Immaginiamo di contribuire a una pool di TerraSwap con 1 LUNA e 100 UST (si stiamo pensando al futuro, ma non troppo lontano 😛). Questo vuol dire che al momento del deposito 1 LUNA avrà il valore di 100 UST, questo perché in una pool a prodotto costante si può contribuire solo in rapporto 50/50 con i due token.

Se nella pool, a seguito del nostro deposito, ci sono 10 LUNA e 1000 UST vuol dire che noi saremo i possessori del 10% della liquidità della pool considerata.

Ipotizziamo adesso che LUNA salga improvvisamente a 400 dollari avremo 1 LUNA = 400 UST. Quello che succede è che la pool diventa sbilanciata e si apre la possibilità a posizioni di arbitraggio.

E’ possibile effettuare arbitraggio quando il prezzo di un prodotto è differente in due mercati. Ad esempio, se nel mercato A il prezzo di BTC è 10$ e nel mercato B è di 15$, chiunque può comprare BTC dal mercato A per venderlo nel mercato B e portarsi a casa un profitto di circa 5$. E’ una logica molto semplice ma non lo è altrettanto implementarla. Il motivo è che vi sono diversi fattori che bisogna considerare e il modo attualmente in uso per sfruttarla è attraverso i flash loans.

Tornando all’esempio di partenza, se all’interno della pool ci sono 10 LUNA e 1000 UST, il pezzo di LUNA è quindi di 100 dollari. Se in un altro mercato però LUNA viene scambiato a 400 dollari la gente comincerà a depositare UST in cambio di LUNA da vendere in un altro exchange. Questo processo andrà avanti fino a che nella pool non ci saranno 5 LUNA e 2000 UST, ossia fino a quando la pool non tornerà ad essere bilanciata.

Perché 5 LUNA e 2000 UST? E’ semplice, basta calcolare 2000/5=400 che è proprio il prezzo a cui LUNA è scambiato negli altri mercati.

Supponiamo adesso che nessuno abbia aggiunto o rimosso liquidità alla pool dopo che lo abbiamo fatto noi e che non siano state aggiunte le fee pagate dai trader. In questa situazione noi siamo ancora possessori del 10% della liquidità e quindi prelevando andremo ad ottenere 0.5 LUNA e 200 UST. Il nostro portafoglio, dopo il prelievo, varrà 0.5 x 400 + 200 = 400 dollari.

Consideriamo adesso quanto sarebbe il suo valore se non avessimo depositato LUNA e UST. Per farlo utilizziamo i valori iniziali che avevamo assunto di aver depositato, e quindi 1 x 400 + 100 = 500 dollari.

Esatto, se non avessimo depositato la nostra liquidità nella pool adesso avremo più soldi nel nostro portafoglio. Per essere più precisi, possiamo dire che abbiamo subito un (im)permanent loss del (500–100)/500x100=20%.

Perché allora una persona dovrebbe depositare i propri fondi in una pool di liquidità? Nell’analisi semplificata che abbiamo fatto non abbiamo considerato le fee che gli utenti pagano a ogni trade. Queste fee sono generalmente abbastanza alte, di solito dello 0.3%, proprio per incentivare gli utenti a non spaventarsi della perdita sul possibile guadagno e aiutare a contribuire al mercato.

Nella figura sotto è riportato il grafico della IL: sull’asse delle x abbiamo la percentuale di variazione di prezzo di uno dei due token mentre sull’asse y la rispettiva perdita di divergenza associata. Come abbiamo calcolato poco fa, una variazione del 400% di un token si porta dietro una perdita del 20%. Notate che questa perdita non colpisce solo nel caso di aumento di prezzo di un token ma anche nel caso di diminuzione!

Binance academy: https://academy.binance.com/en/articles/impermanent-loss-explained.amp

Bisogna quindi fare attenzione a quando si decide di contribuire con i propri asset a una liquidity pool. Bisogna pensare a come sarà il trend dei due token nell’arco temporale considerato e valutare se il ritorno dalle fee potrà portarci un guadagno o meno.

Come non essere soggetti a questa perdita

Esistono 3 modi per non essere soggetti a questo tipo di perdita o per minimizzarla:

  • Fornire liquidità a una pool di stablecoin. State attenti perché questo è vero a meno di depeg di almeno una delle due monete.
  • Fornire liquidità a due versione diverse dello stesso asset tipo BTC e wrapped BTC (wBTC). Anche in questo vi è la possibilità di depeg.
  • Prelevare dalla pool i due token quando il loro rapporto di prezzo è lo stesso di quando sono stati depositati.

Per quanto riguarda il fornire liquidità in pool di stablecoin io personalmente farei attenzione anche alle pool con USDT e USDC. Il motivo è molto semplice ed è legato alla centralizzazione di queste monete. Tether Limited e Circle, i due enti che emettono questi token, hanno la possibilità di mettere determinati wallet in una blacklist. Questo vorrebbe dire un bel problema nel caso in cui venisse messo in blacklist l’address di uno smart contract di una pool o quello della pool stessa.

Conclusione

Abbiamo capito come funziona questa misteriosa perdita impermanente e abbiamo anche capito come poterla quantificare. Abbiamo visto quali sono le strategie per cercare di minimizzarla e il motivo per il quale la gente continua a partecipare alle pool di liquidità. Possiamo descrivere l’effetto di questo fenomeno in due righe, così, giusto per farla super breve:

  • Se il prezzo di un nostro token aumenta, la IL ci farà guadagnare di meno.
  • Se il prezzo di un nostro token diminuisce, la IL ci farà perdere di più.

Grazie come sempre per aver letto fino alla fine questo articolo e se ti è piaciuto fammelo sapere con un 👏. Per qualsiasi dubbio o chiarimento lascia pure un messaggio o contattami attraverso uno dei canali che ho riportato nel banner di sotto. 🚀

--

--