Impermanent loss: ¿Qué es y cómo funciona?

El impermanent loss es la potencial pérdida que un proveedor de liquidez puede sufrir cuando los precios de las monedas dentro de un liquidity pool varían entre sí. Esto puede suceder tanto cuando las monedas suben como cuando bajan de precio. 

Los exchanges descentralizados, que permiten intercambiar una criptomoneda por otra sin ceder el control de tus fondos, funcionan a través de liquidity pools. Estos son fondos generalmente compuestos por 2 monedas en los que los usuarios depositan su plata ofreciendo liquidez al exchange. Por hacerlo, reciben a cambio una parte de las comisiones que el pool reciba cada vez que un usuario haga un intercambio.

Depositar tus monedas en un liquidity pool y obtener intereses suena muy bien. Sin embargo, está lejos de ser libre de riesgos. Uno de los riesgos inherentes del sistema que debemos entender es el impermanent loss.

Imagen11

Antes, un poquito de teoría…

Para entender el impermanent loss, primero debemos tener una noción de cómo se determina el precio de cada activo en un exchange descentralizado. La mayoría de los DEX utilizan un sistema llamado Automated Market Maker (AMM). Los AMM reemplazan a los order books, o libros de órdenes, de los exchanges tradicionales. Estos serían muy difíciles de implementar en la blockchain principalmente debido al gran volumen de órdenes que requieren para funcionar correctamente. 

Afortunadamente, de la mano de Vitalik Buterin, el creador de Ethereum, nacieron los AMMs. En lugar de usar órdenes de compra y venta para conectar compradores y vendedores, los AMMs proveen un fondo contra el que cualquiera puede intercambiar activos. Bajo este sistema, el precio de un activo se determina por la proporción que este tiene en el pool

Cada intercambio va a tener un impacto en el precio de las monedas dentro de ese pool. Mientras más cantidad tengo de un activo, menos vale. Tomemos como ejemplo el pool ETH-DAI. Si intercambias ETH por DAI, el pool pasaría a tener más ETH y menos DAI. Esto significa que el precio de ETH va a subir y el de DAI va a bajar. El precio de los activos dentro de un liquidity pool se rige por la oferta y demanda. 

La variación exacta de los precios después de cada intercambio se obtiene a través de la siguiente ecuación:

Cantidad de ETH * cantidad de DAI = constante 

Veamos el ejemplo de un pool que tiene 10 ETH y 10.000 DAI:

10 ETH * 10.000 DAI = 100.000

Como el pool debe estar 50/50, estamos tomando a ETH a un precio de 1000 DAI.

Durante cada intercambio, el algoritmo se va a asegurar de que, al finalizar, la constante sea siempre igual a 100.000. A raíz de esta regla se determina el precio del intercambio.

Supongamos que querés cambiar 1 ETH por DAI. Al depositar el ETH para hacer el intercambio, el pool va a quedar de la siguiente manera: 11 ETH y 10.000 DAI

¿Cuántos DAI te va a devolver?

Para responder eso nos tenemos que preguntar, si hay 11 ETH, ¿cuántos DAI debería haber para que la constante siga igual?

11 ETH * X = 100.000

X = 100.00 / 11 = 9090,9 DAI

El pool debe tener ~9090 DAI para quedar balanceado. Como ahora tiene 10.000 DAI, esos 910 que sobran te corresponden por depositar 1 ETH. Eso quiere decir que el tipo de cambio obtenido fue de 1 ETH = 910 DAI. 

Al depositar ETH, como sube la oferta, el precio baja de 1000 DAI a 910 DAI. Este es un ejemplo drástico en el que el usuario esté realizando un intercambio muy grande para el volumen del pool

Mientras más grande sea un pool, los intercambios que se realizan en él van a tener menos impacto en el precio de los activos. Por eso es importante operar únicamente en exchanges con alta liquidez. 

Ahora, ¿qué pasa si el precio de mercado de ETH cambia fuera del pool?

Si el precio de mercado de ETH sube a 1500 USD, va a haber una buena oportunidad de arbitraje dentro del pool. Cualquiera puede intercambiar DAI por ETH a 1000 USD y vender ese ETH a 1500 USD en otro exchange. Obviamente estos intercambios causan que el pool tenga menos ETH y más DAI, por lo que el precio de ETH va a subir hasta 1500 y se va a equiparar con el mercado. 

Entonces, ¿qué tiene que ver esto con el impermanent loss?

El impermanent loss es la pérdida temporaria de valor que pueden tener los proveedores de liquidez de un liquidity pool debido al sistema de AMM. Esta pérdida se produce cuando el precio de los activos que componen el pool varían entre sí. 

El impermanent loss se suele medir comparando las pérdidas o ganancias de holdear los activos contra ponerlos en una liquidity pool. Volvamos al ejemplo anterior, supongamos que depositás 1 ETH y 1000 DAI en el pool, esos 2000 USD equivalen al 10% de su valor total. El balance es el siguiente:

10 ETH y 10.000 DAI

Luego, el precio de mercado de ETH sube de 1000 USD a 2000 USD. La gente va a aprovechar la oportunidad de arbitraje, intercambiando DAI por ETH hasta que el precio de ETH en el pool llegue también a 2000 USD. Esto va a causar que disminuya la cantidad de ETH en el pool. Las proporciones finales, siguiendo la ecuación anterior, serían las siguientes:

7 ETH y ~14.140 DAI 

El 10% del pool que te pertenece equivale a 0,7 ETH y 1414 DAI. Ahora, comparemos el valor total en dólares habiendo depositado en el pool vs solamente holdeado en tu billetera con ETH a 2000 USD.

Depósito inicial: 1 ETH y 1000 DAI

Valor total: 3000 USD

Retiro del pool: 0,7 ETH y 1414 DAI

Valor total: 2814 USD

En este caso, el impermanent loss causó una pérdida del 6.2%. Esto sin tomar en cuenta el valor de las comisiones ganadas por ofrecer la liquidez. Si esa rentabilidad hubiera superado el 6%, entonces habría una ganancia neta. Hay herramientas como esta que nos permiten simular la pérdida del impermanent loss en diferentes situaciones. 

Se le dice impermanent porque no es necesariamente permanente: Si hubieras decidido retirar tus monedas del pool y ETH vuelve a valer 1000 USD no hubieras perdido nada. 

¿Cómo se puede minimizar el impermanent loss?

  • Pool de stablecoins: Si no hay variación en el precio de los activo dentro del pool, no va a haber impermanent loss. El protocolo llamado Curve, uno de los más grandes del mercado, se especializa en pools de stablecoins
  • Liquidity mining: La mayoría de las plataformas que tienen liquidity pools ofrecen recompensas extra a los usuarios que aportan liquidez a través de su propio token. Curve, por ejemplo, ofrece su token de gobernanza CRV como incentivo.
  • Pools con distinto peso: Hay protocolos como Balancer que se ofrecen pools con distintas proporciones como 40/60 u 80/20. Mientras más alto es el peso de un token en la pool, menos diferencia hay entre holdear y dar liquidez al pool. Es decir, más se minimiza el impermanent loss.