Uniswap V3

Implementación de colateral inactivo para pares estable-estable en Uni v3 con FRAX

La principal innovación del algoritmo AMM de Uniswap v3, consistente en permitir que los proveedores implementen su liquidez dentro de intervalos de precios específicos, hace posible que los pares stablecoin-stablecoin (por ejemplo, FRAX-USDC) devenguen una enorme liquidez manteniendo una vinculación muy estrecha. A diferencia de Uniswap v2, las órdenes de intervalo de Uniswap v3 concentran la liquidez en lugar de repartirla entre un intervalo de precios infinito.

El controlador AMO de liquidez de Uniswap v3 pone a trabajar el FRAX y el colateral proporcionando liquidez a otras stablecoins contra el FRAX. Como el controlador AMO puede depositar cualquier posición en Uni v3 y acuñar FRAX contra él, permite la expansión a cualquier otra stablecoin y colateral volátil posterior en Uni v3. Además, es posible invocar periódicamente la función collectFees() para asignar ganancias de AMO a operaciones de mercado de colateral excedente.

Especificaciones del controlador AMO

  1. Descolateralizar: deposita el colateral inactivo y el FRAX recién acuñado en el par de Uni v3.

  2. Operaciones de mercado: devenga intercambios entre tipos de colateral y comisiones por transacciones de Uniswap V3.

  3. Recolateralizar: retira de los pares de Uni v3, quema FRAX y devuelve USDC para aumentar la ratio de colateral.

  4. FXS1559: comisiones por transacción diarias devengadas sobre la ratio de colateral.

Derivación

Todos los precios son una ratio entre una entidad y otra. Convencionalmente, seleccionamos una moneda como unidad de cuenta compartida en el denominador (por ejemplo, USD) para comparar los precios de bienes y servicios cotidianos. En Uniswap, los precios se definen en función de la relación entre las cantidades de reservas de x con respecto a las reservas de y que hay en el fondo. La mecánica de orden de intervalo de Uniswap v3 encaja en la actual invariante de creación de mercado de producto constante (CPMM) x × y = k "virtualizando" las reservas en un precio específico, o marca. Especificando entre qué marcas queda limitada una posición de liquidez, se crean órdenes de intervalo que respetan la invariante de producto constante sin tener que repartir la liquidez entre el intervalo completo (0,∞) para un activo específico.

Un precio en Uniswap v3 se define en función del valor 1,0001 para el valor de marca i. Los límites de los precios de las marcas pueden representarse mediante el grupo algebraico G = {gi∣i∈Z,g=1,0001}. Este mecanismo permite una sencilla conversión de enteros en límites de precios, y tiene la ventaja de discretizar cada límite de precio de marca como un punto base (0,01 %) del precio con respecto a otro.

Las reservas virtuales se monitorizan siguiendo los límites de liquidez y marca de cada posición. Cuando se supera un límite de marca, la liquidez L disponible para esa marca puede cambiar para reflejar las posiciones que entran en los intervalos de precios correspondientes y las que salen de ellos. Dentro de los límites de marca, los intercambios cambian el precio raíz cuadrada de P de acuerdo con las reservas virtuales; es decir, actúan como la invariante de producto constante (x × y = k). Las reservas virtuales x e y pueden calcularse a partir de la liquidez y el precio:

Tenga en cuenta que la implementación real usa una raíz cuadrada del precio, pues ahorra una operación de raíz cuadrada al calcular intercambios intramarca, por lo que contribuye a evitar errores de redondeo.

La liquidez puede considerarse una k virtual en la CPMM x × y = k, mientras que ΔY corresponde a la cantidad del activo Y y ΔP representa la caída del precio intramarca.

Como L es un valor fijo en los intercambios intramarca, ΔX y ΔY pueden calcularse a partir de la liquidez y la raíz cuadrada del precio. Cuando se rebasa una marca, el intercambio solo debe caer hasta el límite P y, a continuación, reajustar la liquidez disponible para la siguiente marca.

Última actualización