• Liquidez en Uniswap

  1. La arquitectura de diseño del protocolo Uniswap es diferente del modelo de los intercambios de activos digitales tradicionales. La mayoría de los intercambios tradicionales mantienen un libro de órdenes y lo utilizan para unir a compradores y vendedores de un activo en particular. Y Uniswap utiliza **reservas de liquidez** para realizar la transacción de activos digitales en el acuerdo.

  2. Las reservas de liquidez para los contratos de negociación son proporcionadas por los proveedores de liquidez en la red. Estos proveedores de liquidez depositan tokens ETH y ERC20 equivalentes en contratos de negociación de tokens ERC20 específicos. El primer proveedor de liquidez que proporcione liquidez a un contrato de intercambio primero establecerá el tipo de cambio entre ETH y el token ERC20 correspondiente en ese contrato de intercambio. Los proveedores de liquidez establecen este tipo de cambio depositando lo que creen que es el equivalente de ETH y el token ERC20 respaldado por el contrato. Si el tipo de cambio establecido por el proveedor de liquidez es inconsistente con el mercado de intercambio de criptomonedas más amplio, entonces los operadores de arbitraje llevarán el tipo de cambio entre ETH y tokens ERC20 a lo que el mercado cree que es el tipo de cambio correcto. Por lo tanto, todos los proveedores de liquidez posteriores utilizarán el tipo de cambio cuando depositen activos para depositar liquidez.

  3. Uniswap también utiliza los denominados "tokens de liquidez" (liquidity tokens), que son compatibles con ERC20. Estos tokens pueden considerarse una representación de la contribución del proveedor de liquidez al contrato comercial. La razón detrás de la limitación de Uniswap de admitir solo un token ERC20 por contrato comercial es alentar a los proveedores de liquidez a agrupar sus activos de liquidez en una única reserva**. Uniswap rastrea la proporción relativa de cada proveedor de liquidez que contribuye a la reserva total mediante la acuñación de tokens de liquidez. Los proveedores de liquidez pueden quemar sus tokens de liquidez en el momento que elijan para poder retirar una parte proporcional de sus tokens ETH y ERC20 del contrato de intercambio.

  4. Los proveedores de liquidez pueden optar por vender o transferir sus tokens de liquidez sin eliminar la liquidez del contrato de intercambio. Sin embargo, los tokens de liquidez de Uniswap están estrictamente asignados a un contrato de intercambio. No existe un único activo digital nativo asociado con el protocolo Uniswap. Los proveedores de liquidez también pueden depositar liquidez en contratos comerciales llamando a la función addLiquidity(). Como recompensa por proporcionar liquidez, los proveedores de liquidez recibirán un cierto porcentaje de las tarifas de transacción cuando se ejecute la transacción.

  5. Comercio en Uniswap: Comercio ETH ⇄ ERC20 Un tipo de transacción que se puede realizar en el protocolo Uniswap es el intercambio de ETH por cualquier token ERC20 específico. Como se mencionó anteriormente, el tipo de cambio entre ETH y un determinado token ERC20 se basa en el tamaño relativo de cada fondo de liquidez de activos en el contrato comercial. El tipo de cambio se basa en el invariante de Uniswap: fondo de tokens de fondo de ETH = invariante (invariante). Durante la ejecución de cualquier transacción en el protocolo Uniswap, un invariante (invariante) permanece sin cambios. Además, los invariantes solo cambian cuando la liquidez en los contratos negociados aumenta o disminuye.

  • Ejemplo ETH ⇄ BAT: Bob quiere iniciar una transacción para intercambiar 1 ETH por el token ERC20 BAT. Bob usará un contrato de intercambio existente en el protocolo Uniswap para ejecutar esta transacción. El proveedor de liquidez ha depositado una cierta cantidad de ETH y BAT en el contrato de intercambio, para este ejemplo, digamos 10 ETH y 500 BAT. El invariante subyacente se establece como: pool ETH * pool BAT = invariant (invariant), es decir:

Fondo común de ETH = 10 BAT

piscina = 500

Invariantes = 10 * 500 = 5.000

Bob inicia su transacción enviando 1 ETH al pool de ETH del contrato de transacción y deduce el 0,3 % como comisión para los proveedores de liquidez sobre esta base. Los 0,997 ETH restantes se agregaron al pool de ETH. Luego, divide el invariante por el nuevo total de ETH para determinar el último tamaño del pool de BAT. Luego, los tokens BAT restantes se envían al comprador, en este caso Bob. Es decir:

Fondo común de ETH = 10 BAT

piscina = 500

Invariantes = 10 * 500 = 5.000 Bob

inicia su transacción enviando 1 ETH al pool de ETH del contrato de transacción y deduce el 0,3 % como tarifa para los proveedores de liquidez sobre esta base. Los 0,997 ETH restantes se agregaron al pool de ETH. Luego, divide el invariante por el nuevo total de ETH para determinar el último tamaño del pool de BAT. Luego, los tokens BAT restantes se envían al comprador, en este caso Bob. Es decir:

Bob envía: 1 ETH

Tarifa de manejo: 0,003 ETH

Fondo común de ETH = 10 + (1 – 0,003) = 10,997

Fondo común de BAT = 5000/10,997 = 454,67

Bob recibe: 500 – 454,67 = 45,33 BAT

La tarifa de manejo pagada al proveedor de liquidez se dedujo cuando Bob inició la transacción, y ahora esta tarifa de manejo se agrega al fondo de liquidez (lo que significa que el invariante aumentará). Esto actúa como un pago a los proveedores de liquidez, que pueden cobrar cuando retiran sus contribuciones de liquidez del mercado. Debido a que esta tarifa se vuelve a agregar después del cálculo del precio, a medida que se ejecuta cada transacción en el contrato de intercambio, el invariante aumenta gradualmente, lo que hace que el acto de depositar liquidez en un contrato de intercambio sea importante para la liquidez. Es una actividad rentable para los proveedores de sexo. en este momento:

Fondo común de ETH = 10,997 + 0,003 = 11

Fondo de reserva BAT = 454,67 nuevos

invariante = 5.001,37

En esta transacción, Bob obtiene BAT a un tipo de cambio de 45,33 BAT/ETH.

Entrada: 1 ETH

Salida: 45,33 BAT

Tipo de cambio = 45,33 BAT/ETH

Trading en Uniswap: ERC20 ⇄ Trading ERC20

Otro tipo de transacción que se puede realizar en el protocolo Uniswap es intercambiar un token ERC20 por otro token ERC20. Dado que ETH se utiliza como par comercial público para todos los tokens ERC20, Uniswap utiliza ETH como activo intermediario para transacciones directas entre ERC20 y ERC20. Por ejemplo, Uniswap puede convertir tokens BAT en ETH en un determinado contrato de transacción y luego convertir esta parte de ETH en OMG en otro contrato de transacción, todo lo cual se completa en una sola transacción, de modo que es posible realizar dos intercambios cualesquiera entre tokens ERC20.

Esta fórmula funciona de forma muy similar a un mercado normal, en el sentido de que cuanto más tokens compres, mayor será el tipo de cambio marginal que tendrás que pagar para comprar una unidad más de tokens.