November 4, 2022

Exchanges descentralizados, liquidity pools

El funcionamiento de las liquidity pools y cómo la liquidez concentrada de Uniswap V3 revolucionó el mundo DeFi

En el mundo DeFi, una de las herramientas clave para su funcionamiento son los Exchanges. La función principal de estas plataformas es facilitar el intercambio de tokens en una determinada red.(1)

Dentro de DeFi solemos hablar de Exchanges Descentralizados (DEX), que son plataformas de intercambio basadas en smart contracts(2) dentro de sus determinadas redes. Es muy importante diferenciarlos de los Exchanges Centralizados, también llamados CEX , que son los Binance, Coinbase etc., que todos conocemos. Estos permiten el intercambio de tokens dentro de su plataforma, no en la blockchain. En estos últimos, tú tienes una cuenta asociada en su plataforma, y ellos registran internamente ese intercambio, pero los tokens son de su propiedad y la blockchain no registra estos movimientos. Esta es una de las razones principales por las que es mucho más barato intercambiar tokens en un CEX que en un DEX.

Intercambio de tokens en un DEX vs en un CEX. Fuente: elaboración propia

Los Exchanges Centralizados funcionan como bancos. Tú abres una cuenta con ellos, metes dinero, y puedes hacer una serie de acciones dentro de la propia plataforma del banco. Pero, a diferencia de los bancos, los exchanges centralizados no están tan regulados, con lo que tú como consumidor no estás protegido y, si invierten con tus ahorros y los pierden, no hay nada que te los vaya a devolver. En los exchanges descentralizados tampoco estás protegido, pero al menos tú sí eres poseedor de tus activos y puedes auditar en todo momento la situación del DEX ya que la información es pública y está en la blockchain.

Respecto a cómo se gestionan estos intercambios, los CEX y los DEX también funcionan de forma claramente diferente. Los CEX suelen funcionar con libros de órdenes. Estos libros no dejan de ser bases de datos donde se registran las órdenes de compra y venta de sus usuarios. El sistema trata de casar dichas órdenes y hacer el intercambio. Al realizarse esto internamente en el CEX sin realizar registro en la blockchain, el coste de esta transacción es prácticamente cero para el CEX, con lo que la tarifa que pagarás será simplemente para beneficio de la plataforma.

black flat screen computer monitor
Libro de órdenes de Binance. En verde: órdenes de compra, en rojo: órdenes de venta. Foto Behnam Norouzi en Unsplash

La mayoría de los DEX sin embargo funcionan con lo que se conoce como Liquidity Pools. Los libros de órdenes no son eficientes en el mundo DeFi ya que tienen costes de transacción bastante elevados —tanto poner la orden de compra como borrarla consumen Gas.(3)

Las Liquidity Pools son smart contracts en la red que permiten que un usuario pueda aportar liquidez en ellas a cambio de un incentivo económico. Yo puedo prestar mis tokens en una pool de liquidez a cambio de un rendimiento. Dichas pools suelen ser de pares de tokens (ETH - USDC por ejemplo). Cuando un usuario quiere cambiar ETH por USDC, acude a la pool de ese par, entrega un token más una pequeña comisión y recibe el otro. Esa comisión incluye el coste de la transacción asociado a la blockchain más un porcentaje adicional para el protocolo (el DEX). Dicha ganancia para el protocolo se reparte luego entre todos los usuarios que aportaron liquidez a la pool, de forma que se incentiva la participación.

Liquidity Pools

El concepto de Liquidity pool es complejo y por ello requiere de un punto dedicado en exclusiva. Como comentábamos anteriormente, esta tecnología es la más utilizada en los DEX por su menores costes de transacción en comparación con los libros de órdenes.

En estas pools de liquidez, el usuario que va a hacer el intercambio no lo hace contra otro usuario, sino contra la pool que le permite el cambio al precio de mercado. El hecho de funcionar así es lo que hace que los DEX con liquidity pools se llamen también AMM (Automated Market Makers). Son creadores de mercado ya que facilitan los intercambios de monedas sin necesidad de poner de acuerdo a dos usuarios en una compra-venta.

Liquidity Pools. Riesgos asociados al intercambio de tokens

Para poder mantener la liquidez en las pools, el precio de un token respecto al otro variará en función de cuánto varía el porcentaje de cada token dentro de la pool.

Ejemplo: Existe una pool de ETH-DAI con un porcentaje del 50% de cada token. El precio del ETH es igual a 1 ETH= 1000 DAI(4). Existen en la pool 100 ETH y 100000 DAI.

  • Un usuario quiere comprar 10 ETH. Entrega 10000 DAI a cambio.
  • Después del intercambio, la pool tiene 110000 DAI y 90 ETH.
  • El nuevo precio del ETH es:
  • 110000 DAI/ 90 ETH = 1222, 22 DAI/ETH.

Esta subida de precio del ETH viene derivada de reducir la disponibilidad de ETH del pool y aumentar la de DAI. Como ahora hay menos oferta de ETH en el pool, su precio sube proporcionalmente. Esta variación en el precio debido a los cambios de proporción de las monedas de la pool se conoce como Impacto en el precio. Esto ayuda a no agotar la liquidez de un token en una pool ya que, cuanto más baja la disponibilidad del token, su precio sube más, con lo que llegará un momento en el que ningún usuario quiera hacer el intercambio en ese DEX porque su precio será muy superior al de otro DEX. Al contrario, esta situación incentiva un arbitraje (otro usuario, al ver el desfase de precio, podrá comprar ese token más barato en otro DEX y venderlo en este para ganar la diferencia de precios, estabilizando de nuevo el precio en la pool).

Este impacto en el precio te puede afectar de una forma inesperada cuando realizas una transacción. Ya que todas las transacciones solicitadas no se ejecutan en orden temporal, es posible que después de haber hecho una solicitud de intercambio, otra solicitud posterior se cuele antes que tú en la blockchain, variando el estado de la pool en ese momento y afectando al precio de los tokens en tu transacción.

Esta situación es lo que se conoce como slippage o deslizamiento. Debido a su importancia, la mayoría de DEX te permiten configurar, para una transacción, un valor máximo de este deslizamiento, para evitar que este sea más elevado del que a ti te pueda interesar.

Vista de intercambio en Uniswap V3. Opción de modificación de deslizamiento.

Liquidity Pools. Riesgos asociados a aportar liquidez

Dentro de los riesgos asociados a aportar liquidez en un DEX, no podemos dejar de mencionar la Impermanent Loss o pérdida impermanente. Esta pérdida viene derivada del precio de tu aportación en la pool y comparándolo con el precio de la aportación inicial que hiciste al precio actual. Es decir, esta pérdida compara los beneficios de tu aportación con los beneficios de los tokens si no hubieses hecho ninguna aportación y sólo los hubieras tenido en cartera.

Continuando con el ejemplo anterior:

Supongamos que en la pool del anterior ejemplo alguien hubiese aportado el 10% de la pool (10 ETH y 10.000 DAI).

  • Después del intercambio realizado quedaron 90 ETH y 110000 DAI a precio de 1ETH=1222,22 DAI.
  • El usuario que aportó el 10% si quisiese recuperar ahora su liquidez recuperaría 9 ETH (el 10% de 90 ETH) y 11.000 DAI (el 10% de 110000 DAI). A 1 ETH = 1222,22 DAI implica que ha recuperado 9 ETH y 11000 DAI por valor total de 21.999,98 $.
  • Si el usuario hubiese guardado su dinero en una wallet sin aportar nada, tendría 10 ETH y 10000 DAI. A 1 ETH=1222,22 DAI implica que tendría un valor total 22.222,20 $.
  • La pérdida impermanente ha sido de (22.222,20 - 21.999,98)/22.222,20 = 0,999%

El usuario que hubiese aportado liquidez a esta pool también habría cobrado parte de las comisiones ganadas en la pool, con lo que habría que comparar si las comisiones ganadas compensan o no esa pérdida impermanente.

Es muy importante recalcar que esta pérdida impermanente se da con las fluctuaciones de los porcentajes de cada token dentro de la pool. Esto implica que la pérdida se materializa sólo cuando retiras tu aportación. Si, en el ejemplo anterior, antes de retirar tu aportación, otro usuario hace el intercambio inverso y vuelve la proporción al valor anterior, bajando otra vez el precio del ETH, la pérdida desaparece.

Como resumen de este riesgo:

  • Si analizas el ejemplo ves que el precio de un token de una pool sube conforme baja la disponibilidad de ese token (si baja la oferta, sube el precio).
  • A su vez, al aportar inicialmente un porcentaje igual de cada token y ahora variar ese porcentaje, recibes siempre más cantidad del que más hay, y menos cantidad del que menos hay (que es el que ha subido de precio). Es decir, al retirar la liquidez siempre vas a recibir más cantidad del token que menos haya subido de precio.
  • Las comisiones cobradas deberán compensar esta pérdida para que tu inversión sea rentable.
  • Obviamente, cuanta más liquidez haya en la pool, se presupone que los intercambios y variaciones de porcentajes afectarán menos al total, con lo que este riesgo estará más contenido.

Uniswap V3 y su liquidez concentrada

Uniswap es el exchange descentralizado por excelencia. Lanzado a finales de 2018, fue el proyecto personal de un ingeniero mecánico en paro que, recomendado por un buen amigo, decidió que debía aprender a programar contratos inteligentes y a desarrollarse en las finanzas descentralizadas(5).

A la izquierda: el colega (Karl Floersch). En el centro, el que ha montado todo este sarao (Vitalik Buterin). A la derecha, Hayden Adams, el fundador de Uniswap (en esta foto mucha pinta de triunfador no tenía precisamente…)

Fue en su primera versión donde Uniswap introdujo el concepto de las liquidity pools tal como las conocemos, concepto que mejoró en su versión 2 lanzada en 2020 y que revolucionó con su versión 3 lanzada en 2021. Es en esta última versión donde se introduce el concepto de liquidez concentrada que veremos a continuación.

Liquidity pools tradicionales vs Liquidez concentrada

Como comentábamos antes, las liquidity pools suelen estar formadas por un par de tokens de intercambio (ETH-DAI por ejemplo). Normalmente se busca que la pool esté formada al 50% (en valor económico) por ambos tokens. Para intentar mantener esos porcentajes y que no haya un desajuste entre ambos tokens (que se llegue a un 80% de un token y 20% de otro, por ejemplo) las liquidity pools convencionales siguen una fórmula muy sencilla para su liquidez:

Unidades de token A * Unidades de Token B = Constante

Cuando alguien aporta liquidez a una pool, debe aportar liquidez de ambos tokens en esa proporción (50% de cada). Evidentemente al incrementar la liquidez la constante anterior aumenta de valor (hay más unidades de ambos tokens).

La fórmula anterior aplica para los intercambios de tokens. Cuando alguien quiere intercambiar un token por otro, la pool le ofrecerá tantas unidades del segundo token como sean necesarias para mantener la constante de la anterior fórmula. Veamos un ejemplo:

  • Una liquidity pool tiene 100000 USDC y 100 ETH.
  • Según la fórmula anterior: 100000 * 100 = 10000000 = Constante
  • Un usuario quiere comprar ETH con 100 USDC
  • Al entregar el usuario sus 100 USDC, la nueva cantidad de USDC será de 100100 uds, para mantener la constante igual:
  • Constante = 10000000 = 100100 * Unidades de ETH
  • Unidades de ETH = 10000000/100100 = 99.9000999 ETH
  • Por lo tanto, el usuario recibirá por sus 100 USDC:
  • 100 ETH - 99.99000999 ETH = 0.0999 ETH
  • El precio que habrá pagado el usuario será:
  • 100 USDC/0.0999 ETH = 1001 USDC/ETH
  • El nuevo precio para el ETH será:
  • 100100 USDC / 99.9000999 ETH = 1002 UDSC/ETH

La fórmula de la liquidez constante tiene profundas implicaciones en el funcionamiento de la liquidity pool. Si el intercambio de tokens es de un volumen considerable respecto al total de la pool, el impacto en el precio será elevado, lo que implica que no está toda la liquidez de la pool disponible al precio de mercado, sino que la liquidez se reparte a lo largo de todos los posibles precios entre ambos tokens, siguiendo la siguiente gráfica:

Gráfica de Liquidez constante para 2 tokens. Fuente: Elaboración propia con Geogebra.org

Esto hace que el capital de la pool sea muy ineficiente, al sólo estar una pequeña parte del total disponible al precio de mercado en cada momento. Esto lo podemos ver con un ejemplo real en el protocolo Curve. Veremos como en una pool de monedas estables (el intercambio debería ser 1:1 o muy próximo), si nos vamos a volúmenes muy grandes de intercambio el precio sufre gran variación debido a esta característica:

Intercambiando 1 millón de DAI, el precio apenas sufre variación. Fuente: curve.fi
Intercambiando 10 millones de DAI ya se aprecia impacto. Fuente: curve.fi
Intercambiando 100 millones de DAI el precio se desploma. Fuente: curve.fi

Para solucionar esta problemática y hacer que el capital invertido sea mucho más eficiente, Uniswap en su versión 3 introdujo el concepto de liquidez concentrada. Este concepto lo que permite es que cada usuario que aporta liquidez pueda escoger un rango de precios en los que quiere que su liquidez trabaje. Es decir, ya no está toda la liquidez cubriendo todos los precios posibles, sino los precios que le interesan al usuario que aporta liquidez.

Gráfico de liquidez de una pool. Rango de liquidez concentrada. Fuente: elaboración propia con Geogebra.org

Esto se traduce en una serie de características determinantes:

  • La mayoría de la liquidez se encuentra en precios próximos al precio actual de mercado. Hay más capital disponible a precios razonables.
  • Los rendimientos son mayores para las personas que aportan liquidez. Las comisiones generadas las cobrarán los aportadores de liquidez que hayan aportado en el rango que incluya ese precio.
  • Si el precio se sale del rango que ha definido el usuario, automáticamente el usuario deja de ganar comisiones.
  • Cuanto más pequeño sea el rango definido, mayor será el porcentaje de comisiones cobradas (la aportación tendrá más peso respecto a todas las aportaciones totales en ese precio) pero el riesgo de que el precio se salga de rango será mayor.
  • El riesgo de impermanent loss se acentúa. Si el precio se sale de rango y el usuario quiere recuperar su liquidez, sólo recuperará su aportación en uno de los tokens (el que menos haya subido).

Esta última característica también tiene una utilidad positiva. Al poder definir un rango casi infinitamente pequeño, y saber que si el precio actual se sale de rango sólo se recuperará un token, dicha utilidad se puede utilizar como una compra limitada en precio. Si tengo sólo token B y quiero comprar token A cuando baje de un determinado valor respecto de B, puedo aportar liquidez en un rango ligeramente inferior al precio actual para poder aportar sólo token B y, cuando baje de precio y se salga de rango por debajo, tendré sólo token A además de haber cobrado las comisiones generadas durante el tiempo que mi liquidez estuvo en rango.

Gráfico de compra limitada utilizando liquidez concentrada. Fuente: elaboración propia con Geogebra.org

Por último, es importante mencionar que, con este cambio, los LP tokens que Uniswap V2 entregaba a los aportadores de liquidez como “recibí” de su aportación, ya no pueden ser tokens ERC-20. Al tener que reflejar una cantidad de liquidez y un rango determinado, los tokens se vuelven únicos (mi token no será igual al tuyo porque no tienen porqué coincidir los rangos de aportación). Debido a esto, al aportar liquidez a Uniswap V3 se recibe un token no fungible (NFT) que representa la liquidez aportada y el rango definido. De esta forma, la ganancias acumuladas no se pueden acumular directamente en la pool (cómo sí pasaba en Uniswap V2 y por tanto generaban interés compuesto) sino que habrá que reclamar periódicamente dichas ganancias que se incorporarán a nuestra wallet.

Conclusiones

El mundo DeFi está en continuo desarrollo y cada poco tiempo surgen aplicaciones nuevas y nuevas formas de aportar valor. En apenas 4 años, Uniswap pasó de ser el proyecto personal de un ingeniero mecánico en paro a revolucionar DeFi con sus liquidity pools primero y recientemente con su algoritmo de liquidez concentrada. En 4 años, de 0 a más de 4.000 millones de dólares en activos bloqueados en sus smart contracts.

Gracias a su liquidez concentrada, se pueden conseguir retornos verdaderamente altos, siendo un protocolo serio y completamente abierto (aunque no carente de riesgos, como hemos mencionado).

Las oportunidades están ahí, y los DEXs con sus liquidity pools son una muy buena opción para poder rentabilizar nuestras inversiones en cripto, pero siempre siendo conscientes que no hay inversión sin riesgo. Como se dice en este mundillo. DYOR (Do Your Own Research).

Disclaimer: no soy asesor de inversión y por tanto no tengo permitido legalmente dar consejos sobre ello. Este artículo es meramente informativo y refleja mi opinión, la cual, como cualquier opinión, es sesgada. Haz tu propia investigación antes de poner tu dinero a funcionar y, si así lo consideras, acude a un asesor financiero.

Autor: Emmanuel Ponte. Participo activamente en la comunidad DefiLab. Puedes encontrarme en twitter (@eponte13) y en mi substack eponte.substack.com

(1)Aunque muchos Exchanges operan en varias redes, el concepto en sí de intercambio de tokens es en una misma red. Para intercambiar tokens entre redes distintas se utilizan los puentes entre blockchains.
(2)Un smart contract es, de forma resumida, un trozo de programación dentro de una blockchain. Dicho programa se ejecuta cuando alguien hace una transacción a la dirección asociada a dicho programa, ejecutando las tareas que se incluyen dentro del código de forma automática.
(3)Gas es el nombre que se le da al coste de computación de la blockchain de Ethereum para realizar una tarea. A su vez, todas las nuevas redes que han ido apareciendo compatibles con Ethereum utilizan este mismo concepto para referirse al coste de la red.
(4)DAI es una moneda estable al dólar, por lo que 1 DAI = 1 $.
Si quieres profundizar en la historia de Uniswap, que es muy interesante, puedes leer este post que escribió Hayden Adams (el fundador) en el propio blog de Uniswap.

- ---------------------------------------------------------------------------------------------------

Si estás interesado en aprender a invertir usando las nuevas herramientas de finanzas descentralizadas para rentabilizar tus criptomonedas midiendo los riesgos puedes aplicar a la 14ª edición del curso DeFi. Más información del curso y la formación aquí: “Entender DeFi sin morir en el intento” .
Si estás interesado en saber mas de la 14ª edición y aprovechar el 25% DESCUENTO envíanos antes del 6 de noviembre un correo mostrando tu interés para aplicar el descuento a admin@defilab.es o un Whatsapp al + 34 650983107 y nos pondremos en contacto contigo. PLAZAS LIMITADAS
Síguenos en nuestras redes sociales orientadas a la comunidad DeFi de habla hispana