Introducción

Uno de los protocolos de exchanges descentralizados (DEX) más conocidos en el mundo blockchain es Uniswap, y no es para menos, porque este protocolo se ha transformado en uno de los DEX más grandes del ecosistema cripto, con un valor bloqueado que asciende a los 5 mil millones de dólares. Con esto, Uniswap se convierte en uno de los principales contrincantes de soluciones centralizadas, y deja atrás la creencia de que este tipo de tecnologías no podrían llegar a ser verdaderamente viables.

Pero ¿Cómo ha logrado esto Uniswap? ¿Qué tecnología está detrás de su diseño? Esto y mucho más lo conocerás a continuación.

¿Qué es Uniswap?

Uniswap es un DEX (del inglés, Decentralized EXchange o Exchange Descentralizado), que te permite cambiar tus criptomonedas por otras, usando smart contracts sobre la red Ethereum. Este hecho ya nos dice una cosa: Uniswap trabaja con tokens ERC-20 de Ethereum. Recordemos que, un token ERC-20 es un tipo de token estándar dentro de Ethereum y de estos tipos de tokens existe una gran variedad. De hecho, en la actualidad existen más de 420 mil tokens ERC-20 distintos sobre Ethereum, lo que nos da una idea del enorme ecosistema que existe. Es precisamente este punto, lo que llevó a Uniswap a su inmenso éxito: existe una comunidad inmensa que necesita de esta funcionalidad de intercambio y, si puedes ganar dinero con ella, pues mejor.

Sin embargo, como Uniswap solo trabaja con tokens ERC-20, se encuentra muy limitado en funcionalidad. Por ejemplo, no se pueden hacer intercambios directos usando otras criptos, como Bitcoin o Bitcoin Cash. Para superar esta limitación, otros proyectos se han dedicado a crear tokens ERC-20 que representen a estas otras criptomonedas. Para ello, se crean tokens ERC-20 anclados 1:1 con esa cripto específica, o usando otros medios. Un buen ejemplo de esto es RenBTC, donde RenBTC es un token ERC-20 anclado 1:1 con el valor de Bitcoin, y custodiado por una red descentralizada de nodos. Así, que cada token RenBTC se puede cambiar 1:1 con BTC (salvo una pequeña comisión) y, tienes la seguridad de que siempre será así.

Gracias a esto se logra algo excepcional: permitir que Uniswap pueda realizar intercambios que luego pueden trasladarse a otras criptomonedas. Y, aunque el intercambio no es directo, esto ofrece un abanico de oportunidades único, que no solo Uniswap ha aprovechado. De hecho, es gracias a cosas como estas que el ecosistema DeFi o Finanzas Descentralizadas, no ha parado de crecer desde 2019 hasta nuestros días.

¿Quién creó Uniswap?

La idea que dio forma a Uniswap comenzó en la mente de Vitalik Buterin en un trabajo publicado en el foro Ethereum Research. Bajo el nombre de "Improving front running resistance of x*y=k market makers", Buterin mostraba como Ethereum y sus smart contracts podrían servir para construir avanzados sistemas financieros de market makers. Este hilo creo una enorme discusión sobre las posibilidades, entre las cuales destaca una respuesta, la de Hayden Adams. Adams era un joven desarrollador de la comunidad Ethereum, quien estaba trabajando en una implementación de market maker como la mostrada por Buterin.

Un mensaje claro se muestra en dicho foro:

Very interesting ideas! I will look into adding one of these solutions to my implementation of an x*y=k market maker.

(¡Ideas muy interesantes! Voy a mirar agregar una de estas soluciones a mi implementación de un x * y = k market maker)

La implementación de la que Adams hablaba sería la primera versión de Uniswap, que salió a la luz en octubre de 2018. De hecho, como conocimiento histórico del desarrollo de Uniswap, el código de aquella primera implementación aún está disponible en GitHub. Desde entonces, Uniswap ha pasado por profundas transformaciones, como el lanzamiento de su V2 (mayo de 2020) y su actual V3 (mayo de 2021), dejando en claro que el trabajo de Hayden Adams, su equipo y el de toda su comunidad, continúa adelante.

Relacionado con: Uniswap supera a Bitcoin en ingresos diarios... y es más impresionante de lo que crees

¿Cómo funciona Uniswap?

Uniswap es en la actualidad mucho más que un simple DEX. En primer lugar, tenemos que Uniswap fue creado como un protocolo AMM (Automated Market Maker o Creador de Mercado Automatizado). Esto significa que Uniswap es capaz de permitir a sus usuarios, la creación de mercados de los cuales terceros pueden beneficiarse. La creación de estos mercados es autosustentable, permitiendo que el protocolo genere ingresos que sirven para incentivar la inyección de liquidez a cambio de un pequeño interés a sus inversores.  Son los conocidos pools, donde los inversores inyectan tokens para aumentar la liquidez del mismo, y a medida que es usado por terceros, dichas transacciones generan comisiones que son usadas para mantener el protocolo y dar recompensas a los inversores en dicho pool. Es, en pocas palabras, el germen del bien conocido liquidity mining.

En segundo lugar, la creación de estos pools permite que el protocolo amase liquidez para permitir el intercambio rápido de activos. Este sistema de intercambio es controlado por smart contracts (al igual que el resto de funciones del protocolo Uniswap) dando origen a sus funcionalidades DEX. Y finalmente, construir alrededor de estas dos funciones un complejo sistema de recompensas, gobernanza descentralizada y funciones complementarias dentro del cada vez más relevante ecosistema DeFi.

Control de liquidez en el pool

Ahora bien, en este punto podemos decir que los pools de liquidez o liquidity pools son el corazón de Uniswap. La creación y gestión de las mismas, es lo que permite que Uniswap pueda prestar todos los servicios para los que fue pensado. Pero también, es el "anzuelo", aquello que atrae a los inversores para que inviertan en Uniswap con la promesa de obtener ganancias por su inversión. Recordemos que cada token en un liquidity pool, es una oportunidad de los inversores por obtener recompensas. Esto es posible porque sus tokens son usados para realizar intercambios y otras operaciones que generan comisiones dentro de Uniswap. De esas comisiones, salen las ganancias tanto para el desarrollo del protocolo como las que van a mano de los inversores en cada pool. Así, a medida que un pool tenga mucho uso, mayores serán las ganancias que genera en relación con su liquidez.

Esta sencilla formulación es controlada por un mecanismo económico conocido como Constant Product Market Maker (CPMM), controlado por una sencilla formulación:

x*y=k

Donde:

  • x, son las monedas totales de un token A
  • y, son las monedas totales de un token B
  • k, una constante resultante de la multiplicación de dichos tokens

Esta simple relación, crea la llamada curva de mercado x*y=k, que es la base del CPMM de Uniswap en sus versiones V1 y V2. Sin embargo, la V3 de Uniswap ha dejado este modelo y lo ha cambiado por un modelo dinámico más ajustado a la realidad de los mercados, especialmente aquellos con alta liquidez y volatilidad. La idea de los pools en V3 es, que estos puedan concentrar su capital dentro de rangos de precios personalizados, proporcionando mayores cantidades de liquidez a los precios deseados. De esta manera, los pools pueden construir sus propias curvas de precios ajustadas a su realidad. 

La base para este cambio es permitir que Uniswap V3 tenga base para construir nuevas funcionalidades pensadas en hacer más eficiente el uso del capital en los LP, generar mayores ganancias y evitar las conocidas impermanent loss (pérdidas impermanentes) que suelen verse en los AMM que siguen el modelo x*y=k.

Oráculos y comisiones

Los oráculos también tienen un importante papel dentro de Uniswap, ya que la plataforma necesita información sobre el precio de tokens que están en su plataforma. En Uniswap, esta función es controlada por los oráculos de precio medio ponderado en el tiempo (TWAP). Este tipo de oráculo es capaz de ofrecer información sobre los distintos tokens dentro de Unsiwap, y alimentar al sistema para reconocer y configurar los precios dentro del protocolo.  Esta función de los oráculos es fundamental porque de ella depende el sistema de comisiones y recompensas del protocolo Uniswap. 

En la actual V3 de Uniswap, el sistema se mantiene y se ha hecho mucho más fino y configurable. Por ejemplo, los oráculos TWAP se han hecho más eficientes a los fines de evitar gastos de Gas innecesarios. Al mismo tiempo, las comisiones en V3 se han ajustado para permitir las llamadas comisiones flexibles. De esta forma, los LPs tienen tres tipos distintos de comisiones por par: 0,05%, 0,30% y 1,00%. De esta manera, los LP pueden adaptarse mejor a la volatilidad de los pares con los que funcionan.

Creación de pools y mercados

La creación de un pool es fundamental para Uniswap, porque cada pool está compuesto por un par de criptomonedas que sirven de punto de intercambio. Tal como comentamos al principio, estos pools solo pueden estar formados por tokens ERC-20 de Ethereum. Así por ejemplo, un grupo de inversores pueden crear un pool de ETH/DAI, con una comisión de 1 % por intercambio.  Esto puede leerse de una forma muy sencilla: 

  1. El pool permite el intercambio de criptomonedas desde ETH a DAI, y viceversa.
  2. Cada operación dentro del pool tiene una comisión de 1% sobre el total de la operación.

Por supuesto, en este punto entra en funcionamiento los oráculos TWAP, permitiendo que Uniswap pueda trabajar de forma correcta los precios de ambos activos, para realizar operaciones acordes a los niveles de precios reales de esos activos. Sin embargo, los creadores de los pools también pueden crear los llamados "Rangos de Precios" que es una funcionalidad nueva dentro de V3.  Estos rangos de precios, permiten especificar un porcentaje o nivel de precio personalizable que es ajustado tomando en cuenta el precio ofrecido por TWAP. Dicho de una forma más sencilla: es un spread ajustado por los inversores del pool. Esta herramienta es útil porque ayuda a los inversores a obtener mayores ganancias, pero si se abusa del mismo puede llevar al pool a la quiebra, porque nadie querrá usarlo, en especial si hay otros pools con liquidez y precios por tokens menores.

Sin embargo, Uniswap por sí solo es bastante capaz de manejar estos detalles brindando a los inversores excelentes niveles de ganancia desde un principio, en especial, si el pool (y por tanto su par de intercambio) es intensamente utilizado. Esto tiene lógica porque la idea de Uniswap se puede resumir en dos puntos:

  1. Si el token A es muy comprado y disminuye su suministro, el precio de ese token aumenta.
  2. Al contrario del token A, el token B se vende en exceso y aumenta su suministro, porque lo su precio decrece.

Dicho de esta forma tan sencilla, Uniswap y su política de intercambio es la misma que vemos en los mercados tradicionales, acá el mercado y la oferta-demanda lo son todo.

¿Qué es el token UNI o Uniswap Coin?

La llegada de competidores como SushiSwap (un clon de Uniswap), con su aplicación de yield farming gracias a su token SUSHI, hizo que la comunidad de SushiSwap respondiera, y la mejor respuesta era lanzar su propio token: el token UNI o Uniswap Coin. Así, el 16 de septiembre de 2020, Uniswap anuncia el lanzamiento de este nuevo token pensado en tres puntos fundamentales:

  1. Ofrecer un nuevo mecanismo de recompensas por participar en los pools y servicios de Uniswap.
  2. Recompensar a quienes creyeron en el proyecto desde el principio.
  3. Permitir un sistema de gobernanza on-chain más descentralizado.

Con esa idea en mente, el proyecto creó en su emisión génesis 1.000 millones de tokens UNI que serán accesibles dentro de los próximo 4 años (hasta 2024). Estos tokens serían repartidos de la siguiente forma:

  1. 60,00 % a los miembros de la comunidad Uniswap (600.000.000 UNI)
  2. 21,266% para los miembros del equipo y los futuros empleados con un período de adquisición de derechos de 4 años (212.660.000 UNI)
  3. 18,044% a los inversores con un período de adquisición de derechos de 4 años (180.440.000 UNI)
  4. 0,69% a los asesores (6.900.000 UNI)

Pasado los 4 años, el token UNI seguiría su emisión con una tasa de inflación perpetua del 2% anual. La idea es que el sistema permita seguir recompensando a quienes participen en el crecimiento de Uniswap como ecosistema.

Sin embargo, UNI también permitiría crear un tesoro para el proyecto, de forma que se contará con fondos necesarios para seguir desarrollando Uniswap. En ese sentido, 43% de los tokens de la comunidad serían retenidos para este esfuerzo. Con ello se podrían crear subvenciones a los contribuyentes, iniciativas comunitarias, minería de liquidez y otros programas que impulsen el desarrollo de Uniswap. Ese 43% sería repartido en ese periodo de 4 años de la siguiente forma:

  1. Primer Año: 172.000.000 de UNI 40%
  2. Segundo Año: 129.000.000 UNI 30%
  3. Tercer Año: 86.000.000 de UNI 20%.
  4. Cuarto Año: 43.000.000 UNI 10%

De esta manera se garantiza que la comunidad siempre será recompensada por sus esfuerzos.

¿Cuántos Uniswap hay?

En la actualidad, nos encontramos con la tercera versión de Uniswap activa. Es decir, el protocolo Uniswap V3 es su versión más actual, teniendo que la Uniswap V2 aún está disponible (aunque en legacy, y se está impulsando la migración), y la V1 es la versión inicial que ya no es desarrollada y de la cual se desaconseja su uso.

¿Cómo conectar MetaMask a Uniswap?

Conectar el monedero MetaMask a Uniswap es muy sencillo. Para ello, lo primero que debemos hacer es instalar nuestro monedero MetaMask y configurarlo, algo que puedes hacer desde su web oficial

https://lh6.googleusercontent.com/cOEgiTdvr26233zk85kJcdM2WjDkRQBQ2H9Ml5fGdHAlYoPkDUlqV6EhnZH2KVhWMgEnN02sosdnhp1A1pnCWr7zsOQjJnq66K_hHMfiaHSlld7zjBBk-V76AYKZsS1GOhdQMl4

Allí en “Download” podemos descargar la versión de MetaMask para nuestro navegador, en este caso, para Firefox (disponibles Chrome, Brave, Edge, y sus versiones para iOS y Android. 

https://lh4.googleusercontent.com/dETvTB-wB5Z9GCWDUerwgkOVPYh4nzhY7pwu3NJBs_AUn93x6olSRP8kr1Dg8zqjfU9lHaVTA9decbNIBU-jpNcavxQC8NDHy_BQxQ59F1bKxwqXKDmucb6divcPnZkD0h3Xs94

Una vez que tengamos instalado y configurado MetaMask, lo siguiente es ir a la web oficial de Uniswap.

https://lh4.googleusercontent.com/7O16CMd7SKCIQpmABo7as5A3-IGBXkhn47x9-htFp9vV2QvIPe_5A6J2bfnv7cNYfMgu_0swWPq4-qxoUcHNPQ1e8zcWj2kP3h9wJpnKacESDB_rTOUwvW0uP9zb11KVLTa_tu4

Allí, procedemos a hacer clic en “Use Uniswap”, lo que nos llevará a la DApp del protocolo.

https://lh3.googleusercontent.com/yVkoBqEEl7C339aG4YOZeAgzDEESdu2iqoxuRFRa-ynP5ii7B8uYcQsGAt2nMY9PbnWBhZE5VF1yXU9RdRQ9QcvcZsLYz8DlBBkhNCbLvXfwxl2b09mNBiBny1fTqtPkpw70RdE

Allí, podremos ver el botón “Connect to Wallet”, con el cual comenzaremos con el proceso de conexión con nuestra wallet MetaMask.

https://lh3.googleusercontent.com/RdCBnQckztzxq9c7QsO02K1SSiHBni2H6iIpev4RFadd0ZblSi5LKDCIp3e67NH1wc7ELVTQeEWAMQHyNMV7oZp6MuSkql1ArvQ-y6bDH-OXtv78f5rMtteH9FLFnMGg-R_xgJk

En este punto, solo selecciona la opción “MetaMask” y automáticamente comenzará el proceso de conexión. 

https://lh3.googleusercontent.com/0Ipk-kVx46HioxyBK7m-M0fAxl0RaNU43XgMym28VZQDYWcuurMl2GOTWPBfh0gW4-wrigEsHJRvmKS0vYU2mFUzSMsMibHSWC_TAC-XGfA7y6lmU806watsx8_0aPqt-FgRiY4

En la ventana emergente que ha aparecido, solo haz clic en “Siguiente”, y luego en “Conectar”.

https://lh3.googleusercontent.com/neSwaoWod61SSdCuRNRSTvHG8r2uyKBfmSY_nmz6F4A3HXkArcpXT3-JGHZHPFXLTdZfEnbR5VWb48f9MoCGbyHNXdacIQ80G1yZxXfSmH6rSy14FFCy_396OUZt3kd7SWc6C1M

Con ese procedimiento, podrás ver efectivamente que la aplicación se ha conectado con nuestra wallet y ya estamos listos para usar Uniswap. 

https://lh5.googleusercontent.com/ckhZ-vjUNN3XRfmJ-MleShw0B8TUGwbsLlgel1yajYi7Sx30NCmelHzTA6pzJ_ZLxfehhkkVesLGBJTHrpsTH4amfEX5pUfiBkAoLR7k5oz9Sr79L69bE66eIO_72-5_as8edYA

Realizando un intercambio en Uniswap

Una vez que has conectado MetaMask a Uniswap, puedes comenzar a operar con el DEX. Por ejemplo, para hacer un cambio debemos ubicarnos en la opción “Swap” 

https://lh6.googleusercontent.com/tqCgN2UI2SvvO_fWXHh9cjg6aa-dhJ8zJaGl592jeE5NUgbi2-AlrA73P9nvLwwqeNRrxMM8hOdZO1NTL60TdwSOp9VUghxEAOMQgBg9SaSofVWWK-rbIRZfz4_18zfsUpaakO4

Allí podrás ver dos cuadros de selección. El primero corresponde al token que tienes en tu poder, y el segundo, el token al que quieres cambiar. Por ejemplo, para cambiar de DAI a Ethereum, lo primero que debes hacer es hacer clic en el primer cuadro de selección donde verás los tokens soportados: 

https://lh6.googleusercontent.com/5JI8x1vmzyGXyNBKRtgEjtG9K6cbFhlXv0XA0DfYwmO3F3y89gX2AFrV8xGkYTmk5tFS0oQFgmaID6PylwZBS0I8miwmFfbj7wCGvo5neRFSVdr0ZSiTHobEFPsibH-kHP0PWEc

En este caso, buscaremos el token DAI, y al seleccionarlo nos queda:

https://lh5.googleusercontent.com/6gaXGnfcE7IN42utKmozrTQTnae7q5BIV7-KYHGCKfv2F14voo9FhqATaEHdUhcG48X_M9TXLQqYl2RijnSR1L1swOha6Pss23xhMkCQeWF8moPJCOz_mB0z3UdFrdOMP1fcxek

Ahora, en el segundo recuadro, buscaremos el token ETH, del mismo modo que hemos hecho con el primero.

https://lh6.googleusercontent.com/MFMDGwvMiPAAcxmM_sR4Se2ArluXGYpNyCUUiYKnNM3U5Au0oBgHvesrIYVNElZqyh4iaiC8TIvSgHMna4PIPI_diF4jkdwfaZ7l7PWykUjSLE9La5F3q_6ZnI7QSjy5XdbSNik

En este punto solo nos queda seleccionar las cantidades a cambiar (en este caso de DAI) y el sistema automáticamente nos dará el equivalente en ETH.

https://lh4.googleusercontent.com/ceCjdl00nTjHJIgmuHILh2IUOadtn-xlEUbKxQVc9DFATfurmL5YIjklZbyyyq2K4UKvTkvSKujN_96aG5xYsFbziZIqvoh8fjORqL_V4lHDqHPB0iyKb4Znfc8AUDdSQG9ACOg

En este punto pueden pasar dos cosas:

  1. Si no tienes saldo en el monedero del token que quieres cambiar, te aparecerá la señal de saldo insuficiente. 
  2. Si tienes saldo, te aparecerá el botón para realizar el cambio. En este punto, vigila los precios y si estás de acuerdo, puedes proceder con el cambio.

Al final, Uniswap generará un evento que MetaMask tomará para producir la transacción, la cual debes aceptar con el fin de ejecutar el intercambio en Uniswap.

Relacionado con: Uniswap v3 parece estar preparado para el escalado de la capa 2 tanto en Arbitrum como en Optimism