Por Marcelo Bagnulo, Angel Hernando-Veciana y Efthymios Smyrniotis.

Esta entrada es la segunda parte de la publicada la semana pasada. En la primera, analizamos ciertos detalles de la estructura de la blockchain necesarios para entender nuestra contribución. Introdujimos conceptos clave como tokens, contratos inteligentes, Automated Market Makers (AMMs) y el algoritmo más utilizado por AMMs en la actualidad, el Constant Product Market Maker (CPMM), que tomamos como referencia.
En esta entrada, presentaremos el algoritmo Global Market Maker (GMM) y explicaremos cómo mejora con respecto al algoritmo CPMM en cada una de las métricas que presentamos en la primera entrada: costes de arbitraje, manipulaciones sandwich, e impermanent losses.
Empezaremos describiendo nuestra aproximación al problema, ya que es distinta del enfoque de diseño de mecanismos usado en economía. Este se centra en la creación de mecanismos que optimicen una función objetivo o alcancen equilibrios deseables, asumiendo que los agentes son egoístas. La necesidad de diseño surge por la existencia de información privada o restricciones de participación, y la teoría cumple el papel de proporcionar intuición.
En su lugar, nuestro enfoque está inspirado en lo que lo que Tayfun Sönmez denomina diseño de mercado minimalista, y que ha usado en aplicaciones exitosas como la asignación de estudiantes a colegios y en el intercambio de órganos entre pacientes y donantes. Este enfoque parte de un mecanismo utilizado en la práctica, identifica problemas específicos en su funcionamiento y propone modificaciones mínimas que los mitiguen sin alterar su estructura fundamental. En nuestro caso, partimos del algoritmo CPMM, identificamos los problemas resumidos en las tres métricas mencionadas en el post anterior, y proponemos una mejora que se diseña bajo el principio de que ni los AMMs ni los traders resulten perjudicados tras el cambio de algoritmo bajo unos supuestos de comportamiento mínimos.
El resultado de nuestro trabajo es el algoritmo Global Market Maker (GMM). En esencia, este algoritmo calcula el mejor precio para el AMM entre el precio del CPMM original y el precio que correspondería a un AMM hipotético que aplica el algoritmo CPMM a un pool de reservas igual a la suma de los pools de reservas del conjunto de AMMs. Dicho algoritmo cumple el objetivo de ser una reforma mínima y es implementable porque las reservas de los AMMs son públicamente observables. De hecho, el código del algoritmo CPMM usado por Uniswap es fácilmente adaptable para desarrollar una implementación en Ethereum.
Ejemplo de funcionamiento del GMM Consideremos dos AMMs que utilizan el algoritmo GMM, cada uno con un pool de liquidez que contiene 100 WETH y 400.000 USDT. Supongamos que un trader interesado en convertir 1 WETH en USDT los envía al AMM 1. Como calculamos en la primera entrada, usar el algoritmo CPMM original implicaría devolver al trader aproximadamente 3.960 USDT, mientras que usar la fórmula del CPMM aplicada a las reservas agregadas implicaría devolver,
donde hemos usado la ecuación (1) del primer post aplicada a las reservas agregadas. En este caso, el GMM selecciona la primera opción que es la más conveniente para el AMM.
El hecho de que nuestro algoritmo seleccione el mejor precio entre el CPMM original y el hipotético explica por qué el AMM no se ve perjudicado con el cambio. Sin embargo, que los traders tampoco resulten afectados negativamente es menos evidente y, de hecho, requiere ciertas consideraciones que no abordaremos aquí. A continuación, explicaremos en qué sentido y por qué razones nuestro algoritmo mejora las métricas propuestas.
En primer lugar, en nuestro algoritmo desaparecen las oportunidades de arbitraje y, con ellas, los costes asociados. Esto se debe a dos razones fundamentales. Primero, no existen oportunidades de arbitraje cuando todos los AMMs fijan sus precios utilizando el CPMM hipotético aplicado a las reservas agregadas. El motivo es el mismo por el que no hay ganancias netas al comprar y vender a un mismo AMM que usa el algoritmo CPMM. Segundo, las oportunidades de arbitraje en los AMMs que usan el CPMM original surgen al comprar tokens en los AMMs donde son relativamente escasos para venderlos en aquellos donde son relativamente abundantes. En el primer caso, el AMM vende a precios más bajos que los que corresponderían a las reservas agregadas, mientras que en el segundo, compra a precios más altos. Por esta razón, el GMM adopta los precios correspondientes a las reservas agregadas. Todo esto lo ilustramos en el siguiente ejemplo adaptado del primer post.
Métrica 1 para el GMM Consideremos un mercado con dos AMMs, 1 y 2, que utilizan el algoritmo GMM y tienen reservas iniciales de 90 WETH y 444.444 USDT en AMM 1, y 100 WETH y 400.000 USDT en AMM 2. Un arbitrajista que envía 5 WETH al AMM 1 recibe 21.652 USDT a cambio. Como resultado de esta operación, las nuevas reservas son 95 WETH y 422.792 USDT en AMM 1, mientras que las de AMM 2 permanecen inalteradas en 100 WETH y 400.000 USDT. Si el arbitrajista envía ahora los 21.652 USDT obtenidos al AMM 2, recupera exactamente 5 WETH, lo que implica que su beneficio neto es cero.
Naturalmente, este es sólo un ejemplo de una oportunidad de arbitraje que no resulta estrictamente rentable. Lo que mostramos en nuestro artículo es que esto es cierto para cualquier operación de arbitraje.
A su vez, los beneficios de las manipulaciones sandwich en el GMM son significativamente menores que en el CPMM. Esto se debe a que el beneficio de estas manipulaciones depende de la magnitud con la que los precios reaccionan ante la secuencia de órdenes involucradas. En el caso del GMM, siempre hay al menos una orden que se ejecuta utilizando los precios correspondientes al CPMM con reservas globales. Dado que estas reservas son mayores que las usadas en el CPMM original, la variación en los precios es menor, lo que reduce el beneficio potencial del manipulador. Ilustremos este fenómeno con un ejemplo.
Métrica 2 para el GMM Consideremos dos AMMs que utilizan el algoritmo GMM, cada uno con un pool de liquidez que contiene 100 WETH y 400.000 USDT. Supongamos que un trader interesado en convertir 40.000 USDT en WETH los envía al AMM 1. Un manipulador puede realizar un ataque sandwich enviando 60.000 USDT al AMM 1 justo antes de que se ejecute la transacción de la víctima y enviando inmediatamente después los WETHS obtenidos en la primera transacción de vuelta al AMM 1. Esto se desarrollaría de la siguiente manera. Cabe destacar que durante todas las transacciones, las reservas del AMM 2 permanecen constantes en 100 WETH y 400.000 USDT.
- Frontrunning: La primera transacción del manipulador envía 60.000 USDT a AMM 1 y recibe a cambio 13,0435 WETH, que corresponde al CPMM con las reservas individuales del AMM 1. Como resultado, el vector de reservas del AMM 1 cambia a 86,9565 WETH y 460.000 USDT.
- Transacción de la víctima: La víctima envía 40.000 USDT al AMM 1. De nuevo esta orden se calcula utilizando el CPMM con las reservas individuales. El trader recibe 6,9565 WETH. Las reservas resultantes del AMM 1 son entonces 80 WETH y 500.000 USDT.
- Backrunning: La segunda transacción del manipulador envía 13,0435 WETH al AMM 1. En este caso, la orden se calcula utilizando las reservas agregadas y el manipulador recibe 60.811 USDT. El beneficio neto del extractor de MEV es de solo 811 USDT, considerablemente menor que los 10.094 USDT obtenidos en el CPMM.
La Figura 1 compara los beneficios para un atacante de una manipulación sandwich en el GMM y el CPMM idéntica a la del último ejemplo pero con distintos valores.
Figura 1: El gráfico muestra los beneficios en USDT de un ataque sandwich con una orden ̂Δx sobre una orden de 40.000 USDT en un mercado con dos AMMs, ambos con reservas de 100 WETH y 400.000 USDT.
Finalmente, la impermanent loss en el algoritmo GMM depende del orden de las transacciones. Para los AMMs que procesan las primeras órdenes tras un cambio en el sentimiento del mercado, las pérdidas serán equivalentes a las del CPMM. Intuitivamente, en estas primeras transacciones, las reservas globales aún no han cambiado, por lo que no ofrecen ninguna ventaja en la determinación de precios. Sin embargo, en las órdenes posteriores, las reservas globales ya han variado, reflejando parcialmente el nuevo sentimiento del mercado. Como resultado, los precios determinados por el GMM implican menores pérdidas de valor para el AMM. De nuevo, el siguiente ejemplo ilustra este resultado.
Métrica 3 para el GMM. Consideremos dos AMMs que utilizan el algoritmo GMM, ambos con pools de liquidez que contienen 100 WETH y 400.000 USDT cada uno. Al igual que en el ejemplo correspondiente del post anterior, ningún trader que valore los WETH en 4.000 USDT tiene incentivos para comerciar con los AMMs.
Ahora, supongamos que cambian las creencias en el mercado y los traders valoran los WETH en 3.000 USDT. En este escenario, la estrategia óptima para un trader es enviar 15,47 WETH a uno de los AMM, digamos el 1, obteniendo a cambio 53.590 USDT. Dado que esta primera transacción se calcula utilizando el CPMM con las reservas individuales, la impermanent loss resultante es del 1,03%, igual que en el ejemplo correspondiente del primer post.
Tras esta operación, las reservas del AMM 1 cambian a 115,47 WETH y 346.410 USDT, mientras que las del AMM 2 permanecen inalteradas en 100 WETH y 400.000 USDT. A partir de este punto, los cálculos son más complejos, pero puede demostrarse que la estrategia óptima para un trader es enviar 16,07 WETH al AMM 2, obteniendo 51.790 USDT a cambio. Como resultado, las reservas finales del AMM 2 serán de 116,07 WETH y 348.210 USDT, y la impermanent loss se calcula como:
En este caso, el AMM 2 solo ha perdido un 0,51% de su valor, en contraste con el 1,03% calculado en el primer post. Es decir las pérdidas asociadas al uso del GMM son menores que las asociadas al uso del CPMM.
En nuestro artículo, proporcionamos una fórmula general para calcular la impermanent loss del AMM que opera en segundo lugar, en función de la tasa de variación de precios r / r0, donde r0 es el precio inicial y r el precio final, así como del tamaño relativo de los AMMs. La Figura 2 ilustra esta fórmula utilizando para representar el porcentaje del valor inicial del AMM con menor valor respecto a la suma de los valores iniciales de ambos AMMs.
Figura 2: El gráfico muestra el porcentaje de impermanent loss en función de la variación de precios en el CPMM y en el GMM del AMM pequeño, para distintos tamaños del AMM grande parametrizados por γ (γ=1 corresponde a ambos AMM del mismo tamaño.
Creemos que nuestro artículo no solo proporciona un resultado práctico concreto, sino que también introduce un enfoque sobre cómo aplicar las técnicas de análisis económico a problemas de diseño específicos en el ámbito de los contratos inteligentes. Esperamos que nuestro trabajo genere interés y fomente más análisis de este tipo en el futuro.
*This research is part of the project I+D+i TED2021-131844B-I00, funded by MCIN/ AEI/10.13039/501100011033 and the European Union NextGeneration EU/PRTR. This work was partially funded by the European Union through NGI Sargasso’s GMM project under Horizon Europe (Grant Agreement No. 101092887).