Uniswap es un protocolo descentralizado cuyo principal objetivo es proporcionar liquidez al ecosistema de Ethereum, permitiendo el intercambio de tokens ERC-20 sin intermediarios, de forma rápida y eficiente, resistiendo a la censura y priorizando la seguridad.

 

¿Qué es Uniswap?

Según el whitepaper del proyecto, Uniswap V1 es un protocolo de liquidez automatizado, que está implementado por un sistema de smart contracts en la blockchain de Ethereum, y que obedece a una fórmula de producto constante.

Su principal objetivo es dotar de liquidez al ecosistema de Ethereum sin necesidad de intermediarios de confianza, y teniendo como prioridad la descentralización, la resistencia a la censura, y la seguridad.

En la Figura 1 podemos ver los principales actores que intervienen en el ecosistema Uniswap.

 

Uniswap Participants Master Blockchain Online

Figura 1: Participantes del ecosistema Uniswap. Fuente

 

Los Liquidity Providers (LPs) son aquellos usuarios que deciden aportar liquidez al protocolo de Uniswap mediante el depósito de un par de tokens ERC-20 en las reservas de un fondo de liquidez o pool, gestionado por un smart contract. Por hacerlo, los LPs reciben una recompensa que es proporcional a la cantidad de su aportación.

Los Traders con aquellos usuarios, bots, o smart contracts que realizan intercambios de tokens ERC-20 en los pools de liquidez con los que trabaja el protocolo. En todos los casos, las operaciones de intercambio están sujetas a una comisión fija que obedece al 0,3%, y que se utiliza para incentivar a los usuarios que aportan liquidez.

Además de los LPs y los Traders, existen múltiples desarrolladores y proyectos DeFi que utilizan las funcionalidades de Uniswap como base o valor añadido, lo que hace a Uniswap la mayor y principal fuente de liquidez para el ecosistema Ethereum.

Uniswap V2 es la nueva y actual implementación del protocolo, y aunque esté basada en la V1, ha incluido notables mejoras que pasamos a describir a continuación:

  • Permite la creación, por parte de los usuarios, de pares arbitrarios de tokens ERC-20/ERC-20 sin la necesidad de que uno de los activos sea obligatoriamente ETH.
  • Proporciona un Oráculo que acumula el precio relativo a los dos activos que intervienen en cada par al comienzo de cada bloque, lo que permite que otros smart contracts de Ethereum puedan estimar el precio medio ponderado de los activos en el tiempo en intervalos arbitrarios.
  • Proporciona Flash Swaps, los cuales con préstamos que permiten a los usuarios de Uniswap acceder a la liquidez de los activos que maneja sin tener que dejar una garantía como colateral, siempre y cuando se devuelva la cantidad prestada, mas una comisión, en la misma transacción en la que se concedió el préstamo. Un Flash Swap no es más que la forma que tiene Uniswap de llamar a un Flash Loan que se produce en su sistema. A los lectores interesados en profundizar sobre el concepto de Flash Loan en el ecosistema DeFi, les recomendamos que accedan al contenido del siguiente enlace.

 

Funcionamiento

Uniswap trabaja con un conjunto de pares, gestionados por smart contracts, que administran la liquidez de pools formados por reservas de dos tokens ERC-20.

Dichos pares operan como mercados automatizados que permiten intercambiar liquidez según la fórmula de producto constante, que obedece a la expresión x*y=k. Las operaciones que se producen dentro de un par, no deben cambiar el producto k de los saldos de la reserva de un par de tokens xey.

Los precios son determinados por la cantidad de cada token, dentro de cada par. Como hemos indicado anteriormente, los smart contracts que manejan cada par, mantienen una constante usando la expresión x*y=k, en al que x es el token0, y es el token1, y k es una constante. En cada operación que se realiza, una cierta cantidad de tokens son eliminados del pool, por una cierta cantidad del otro token, que se añaden. Como consecuencia, para mantener la constante k, los balances, gestionados por los smart contracts, son ajustados durantre la ejecución de las transacciones, cambiando los precios.

Cualquiera puede ser un LP, aportando liquidez a un pool con un valor equivalente de cada token subyacente, a cambio de Pool Tokens (tokens del pool). Estos tokens del pool sirven para gestionar la cuota prorrateada de los LPs en las reservas totales de los pools, y se pueden canjear por los tokens subyacentes en cualquier momento (Figura 2).

Uniswap Liquidity Provider Master Blockchain Online

Figura 2: Esquema de un Liquidity Provider en Uniswap . Fuente

 

Por otro lado, cualquiera puede realizar un swap o intercambio de tokens ERC-20 dentro de los pares con los que trabaja Uniswap. Por cada intercambio realizado, el protocolo aplica unas comisiones de un 0,30%, las cuales son añadidas a las reservas del pool. Dichas comisiones servirán para recompensar a los LPs por aportar liquidez a los pools. El pago de dichas recompensas, se realizará cuando se quemen los tokens del pool con motivo de retirar su parte de los activos de las reservas totales (Figura 3).

Uniswap Trader Master Blockchain Online

Figura 3: Esquema de un Trader en Uniswap. Fuente

 

Arquitectura

Uniswap tiene una arquitectura basada en una serie de smart contracts y de componentes que determinan el comportamiento del sistema.

Por un lado se encuentran los Core Contracts, los cuales se encargan de las siguientes tareas:

  • Gestionar la lógica del protocolo.
  • Crear un sólo contrato por cada par de tokens únicos.
  • Proporcionar la seguridad necesaria para que todos los participantes del ecosistema puedan interactuar con Uniswap.
  • Servir como creadores de mercado automatizados.
  • Realizar un seguimiento de los saldos de tokens dentro de los pools.
  • Exponer datos que se puedan usar para construir oráculos de precios descentralizados.