Creador de Mercado Automático
Todo pool de liquidez se basa en un algoritmo de creación de mercado automático (AMM) que determina los precios y las cantidades de los tokens en cada operación de compraventa. Los GLP de Geminon utilizan un algoritmo propio derivado del AMM de producto constante que les confiere las capacidades de creación de liquidez de un LBP.
AMM de producto constante
La práctica totalidad de los protocolos de intercambio descentralizado (DEX) que existen hoy en día utilizan para sus pools de liquidez la conocida como fórmula de producto constante:
Donde e son las cantidades del par de tokens en el pool y una constante que queda fijada cuando se añade la liquidez inicial durante su creación. El pool de liquidez crea un mercado automático para el par de tokens simplemente imponiendo la condición de que, tras todo intercambio, el producto de las cantidades de ambos tokens no puede ser inferior a la constante de liquidez:
Dada una cantidad de tokens que se quieren intercambiar utilizando el pool de liquidez, la cantidad del token intercambiado a recibir, se calcula como:
AMM de producto constante generalizado
La fórmula del AMM de producto constante puede generalizarse para un pool formado por n tokens con pesos tales que :
Donde es el balance del n-ésimo token en el pool. Desarrollando la fórmula anterior, se obtiene que para un intercambio de un par cualquiera de tokens del pool, dada la cantidad de entrada de un token , la cantidad recibida del segundo token viene dada por:
De las ecuaciones anteriores se deriva que la cotización o precio relativo de un token en función de otro en el pool depende exclusivamente de los balances y los pesos relativos de ambos tokens en el pool:
Puede demostrarse fácilmente que estas ecuaciones se transforman en las ecuaciones para un pool de dos tokens vistas en el punto anterior haciendo .
AMM de Geminon
Las ecuaciones del AMM generalizadas del punto anterior son las que utiliza el protocolo Balancer para sus pools. En los LBP de Balancer es posible alterar los pesos relativos de los tokens en el pool, lo cual cambia el precio relativo de ambos tokens y también el valor de la constante de liquidez del pool .
El algoritmo de AMM desarrollado para los GLP de Geminon también altera el valor del invariante del pool , aunque emplea un mecanismo completamente diferente. Las principales diferencias son:
La variación de la constante de liquidez es completamente automática en los GLP: no es posible alterar manualmente los pesos de los tokens en el pool, y por tanto los precios.
La parametrización de la liquidez en un GLP varía en función de las operaciones realizadas, no en función del tiempo como sucede en los LBP.
El algoritmo del GLP no varía los pesos de los tokens en el pool sino el balance del token GEX.
Descripción del algoritmo
El AMM de Geminon funciona en dos pasos:
Se calcula la cantidad del token de salida utilizando la fórmula del AMM de producto constante con la liquidez disponible en ese momento en el pool, es decir, en este paso el GLP se comporta exactamente igual que un pool de liquidez tipo Uniswap.
En el segundo paso, se modifica el balance del token GEX en el pool acuñando o quemando tokens. La variación del suministro del token GEX se calcula a partir de la cantidad de tokens que el usuario ha recibido o entregado al pool, dependiendo de la operación realizada.
Para ayudar a reducir el deslizamiento de las operaciones, el cual impacta negativamente en el resultado del usuario, el pool divide automáticamente la cantidad de entrada en dos y ejecuta los pasos anteriores dos veces, de forma que en la segunda iteración el usuario se beneficia del incremento de liquidez que él mismo ha generado. Este mecanismo es especialmente efectivo cuando la liquidez del pool es muy baja.
Acuñación de tokens GEX (mintSwap)
Para una operación de compra (acuñación) de tokens GEX, inicialmente se calcula la cantidad de tokens GEX a recibir como si se tratara de un pool de liquidez tipo Uniswap. Si es el balance de colateral en el pool, y el balance de tokens GEX en el pool, el invariante del pool vale:
Y la cantidad de tokens recibida por el usuario, , cuando este entrega una cantidad de colateral, , se calcula despejando en la ecuación anterior del invariante:
Tras calcular la cantidad de tokens GEX de salida, se aplica el coeficiente de acuñación , que incrementa el balance de tokens GEX en el pool:
Finalmente, las comisiones por acuñación del protocolo se deducen de la cantidad de tokens GEX a enviar al usuario.
El coeficiente de acuñación toma sus valores en el intervalo , lo cual hace que pueda deducirse el comportamiento del GLP en las operaciones de acuñación de tokens GEX:
1. En una operación de acuñación la liquidez siempre aumenta: al estar los valores del coeficiente de acuñación restringidos () la diferencia es siempre menor o igual a 0, lo que implica que , el balance final de GEX en el pool será siempre igual o mayor al inicial. Como además por tratarse de una operación de acuñación, , luego el producto de liquidez del pool tras la operación será siempre estrictamente mayor que el inicial.
2. El resultado de una operación en el GLP se acerca más al obtenido en un pool de liquidez tipo Uniswap cuanto más bajo sea el importe de la operación. Si se desarrolla la ecuación del invariante para expresarlo únicamente en función de la cantidad de entrada se tiene:
Es fácil ver que la expresión anterior converge al valor del invariante inicial cuanto más bajo sea el valor de entrada , o más formalmente:
3. El precio final del token GEX en el pool tras la transacción es inferior al precio que se obtendría en un pool de producto constante puro. Es fácil de ver intuitivamente que, al incrementar el balance de tokens GEX en el pool, el precio relativo de este frente al otro token debe descender:
Esto supone que las transacciones en un GLP no son reversibles incluso sin tener en cuenta las comisiones del protocolo: si se realiza una operación de acuñación e inmediatamente después se realiza la contraria, canjeando los tokens en el pool, se obtendrá una cantidad inferior en función de lo alejado que esté el producto de liquidez del inicial . Como se ha visto en la segunda propiedad, los invariantes coinciden en cero y se separan conforme aumenta el importe de la operación , o más concretamente la relación que determina el deslizamiento que produce la operación en el precio del pool. Cuanto mayor es el deslizamiento (entropía) que genera una operación en el pool, más irreversible es dicha operación. Dicha entropía es capturada por el GLP incrementando el valor del token GEX, motivo por el cual se denomina a los GLP máquinas de captura de entropía.
La irreversibilidad de las operaciones presenta importantes ventajas para la seguridad del protocolo Geminon, ya que implica que no se pueden realizar ataques mediante préstamo flash a un GLP: al no poder devolverse la cantidad prestada en su totalidad, la transacción revertirá. En general, cualquier ataque que implique manipulación de precios en un GLP utilizando transacciones de gran importe que deban deshacerse en un intervalo breve de tiempo, supondrá una pérdida económica para el atacante a favor del protocolo.
Canjeo de tokens GEX (redeemSwap)
Las ecuaciones para el canjeo de token GEX son muy similares a las de acuñación. La principal diferencia entre ambos procesos es que durante el canjeo la comisión del protocolo se deduce de la cantidad de entrada de tokens GEX. La cantidad de colateral de salida , dada una cantidad de entrada (descontada la comisión) vale:
Y los nuevos balances que determinan el producto de liquidez del pool:
Curva de precios
En un pool de liquidez de producto constante, el precio de un token respecto a su par es el cociente de las reservas de ambos. Utilizando la relación del producto constante se obtiene:
El precio de un token en un pool de liquidez es una función parabólica de la cantidad del segundo token en el pool. En un GLP en cambio el valor de no es constante, sino que su valor varía con la cantidad de colateral en el pool. La función de precio del token GEX en un GLP puede escribirse como:
Donde es una función que varía linealmente con la cantidad de tokens de colateral. Como consecuencia, la función de precio de los GLP para el token GEX no varía de forma cuadrática con la cantidad de colateral como sucede en un pool tipo Uniswap, sino linealmente. El objetivo de este diseño es reducir la volatilidad del token GEX.
Para una discusión detallada sobre la influencia del ratio de acuñación en el valor de , consultar la siguiente página "Control del suministro".
Last updated