Oracle y Transacciones de Front-Running - Serie de Investigación de Angle Parte 1

Intermedio2/20/2025, 5:32:13 AM
Este artículo proporciona un análisis en profundidad del diseño del oráculo del Protocolo Angle y sus mecanismos de defensa contra transacciones de front-running. Al combinar Chainlink y Uniswap V3 TWAP, Angle ofrece una solución innovadora destinada a proteger el protocolo de los ataques de front-running mientras garantiza que los usuarios reciban precios de transacción justos.

Introducción

Angle permite a los usuarios acuñar y quemar agTokens (stablecoins) a cambio de otros tokens. Los traders también pueden abrir posiciones largas en pares de colateral/stablecoin disponibles. Estos no son contratos perpetuos tradicionales, ya que el equilibrio no depende de las tasas de financiación, y los precios de ejecución provienen directamente del oráculo. Dadas estas aplicaciones, el protocolo requiere un método confiable para fijar precios a los activos disponibles y ofrecer a los usuarios cotizaciones justas al mismo tiempo que se protege de transacciones de front-running. En el FAQ de este artículo, Samcszun explica por qué esto no es tan simple como usar precios al contado.

El front-running ha sido un problema de larga data en el mercado. Se reduce a ciertos participantes que obtienen acceso a la información antes que otros, lo que les permite aprovechar esta ventaja para extraer ganancias libres de riesgo a expensas de la contraparte. Históricamente, prevenir este fenómeno en la cadena ha sido extremadamente desafiante. Los altos costos y la baja velocidad de las transacciones de Ethereum dificultan que los oráculos actualicen los precios rápidamente y con frecuencia. Esto introduce retrasos entre los precios fuera de la cadena y en la cadena, creando oportunidades para que los front-runners exploten.

No todos los protocolos de stablecoin se preocupan por los riesgos de front-running que surgen de los retrasos del oráculo. En el caso de DAI de Maker, los retrasos del oráculo a menudo benefician al protocolo. Por ejemplo, si un usuario ve que su posición será liquidada en la próxima actualización del oráculo debido a una caída de precios, se le incentiva a depositar más fondos en la bóveda, mejorando la salud del protocolo y la relación de colateral.

Synthetix, que permite intercambios de valor basados en oráculos entre activos sintéticos y garantías, es un ejemplo perfecto de un protocolo de stablecoin que enfrenta desafíos de front-running. Su publicación en el blog describe la larga historia del protocolo con el front-running, incluidos algunos ataques pasados que han sufrido.

Similar to Synthetix, Angle permite intercambios de activos al valor del oráculo sin deslizamiento de precio. Como resultado, Angle enfrenta el mismo problema de front-running. El equipo central de Angle ha hecho esfuerzos significativos para mitigar el front-running. Se han implementado dos mejoras clave: un diseño de oráculo específico y una estructura de tarifas dinámica. En este artículo, explicaremos el diseño del oráculo de Angle y la lógica detrás de él.

Una Actualización del Oráculo de Front-Running: Un Ejemplo

Antes de sumergirnos en la solución de Angle, primero intentemos entender cómo el front-running puede dañar el protocolo. Consideraremos un ejemplo donde ETH es aceptado como garantía para respaldar la stablecoin de Angle.

Sin tarifas de transacción

Supongamos que un atacante está monitoreando el precio de ETH fuera de la cadena y ve que el oráculo de Chainlink está a punto de actualizar los datos en la cadena a un precio más alto (de p0 a p1, donde p0 < p1). Este atacante puede enviar una transacción para quemar x stablecoins al precio de p0 a cambio de x/p0 valor de ETH. Luego, después de que el precio se actualice a p1, el atacante puede venderlo de nuevo al protocolo, obteniendo así una ganancia:

Debido a esta transacción de front-running en la actualización del oráculo, esta parte de la ganancia se toma de las reservas del protocolo. Si establecemos x = 100 ETH y p1 = 1.01 * p0 (un aumento del 1% en el precio), esto significa que el atacante ha tomado 1 ETH de las reservas del protocolo.

Con tarifas de transacción

Afortunadamente, el aumento de las comisiones de transacción puede mitigar este problema, ya que erosionan los beneficios de los que se adelantan y reducen las oportunidades.

Por ejemplo, si las tarifas de transacción de acuñación y quema son constantes e iguales a f, un atacante que queme x stablecoins en p0 y luego las revenda al protocolo por ETH en p1 tendrá la siguiente ganancia final:

En comparación con el escenario anterior, las comisiones reducen la ganancia:

Cuando la comisión de transacción es f = 0.3% y siguiendo el ejemplo anterior, la ganancia del atacante es ahora solo 0.39 ETH.

Con tarifas de transacción y dos soluciones de Oracle

Para reducir aún más esta oportunidad, podemos depender de un oráculo secundario para proporcionar dos fuentes de precios potenciales: pC (precio de Chainlink) y pU (precio de Uniswap). El protocolo puede utilizar el precio más favorable (el precio más bajo al acuñar, al comprar los tokens del usuario, y el precio más alto al quemar, al vender ETH al usuario), lo que hace que la oportunidad de front-running sea menos atractiva.

Imagina a un trader intentando obtener beneficios de la misma oportunidad que se menciona arriba, asumiendo que pC0 < pC1.

Por otro lado, podemos considerar que pU es constante y más cercano a pC0. Por lo tanto, como veremos más adelante, debido al diseño del precio promedio ponderado en el tiempo (TWAP) de Uniswap, pU tiende a retrasarse con respecto a pC.

En este caso, un atacante que intente beneficiarse de la oportunidad potencial compraría tokens del protocolo a pC0 (quemando stablecoins) y recibiría x(1-f)/pC0 valor de ETH. Luego, lo venderían de nuevo a pU1 a un precio más alto. Esto resultaría en una pérdida para el atacante:

Si mantenemos los números del ejemplo, el atacante al final perdería 0.6 ETH en esta transacción.

Solución de Angle

El diseño de Angle está específicamente destinado a eliminar el riesgo de transacciones de front-running. Por lo tanto, el protocolo implementará un mecanismo muy similar al ejemplo discutido anteriormente. En esta sección, exploraremos las opciones existentes potenciales con más detalle, centrándonos en los detalles del diseño que planeamos implementar y analizando nuestra elección de la ventana de tiempo de TWAP.

Opciones

Las principales soluciones de oráculo que podrían adaptarse al caso de uso de Angle son:

  • Enlace de cadena
  • Uniswap V3 TWAP
  • Maker Feeds

Chainlink es la elección obvia en primer lugar: es una solución de oráculo descentralizada ampliamente utilizada que proporciona múltiples fuentes de datos que cubren varios activos. Los precios provienen de múltiples fuentes y se transmiten a través de una red descentralizada, asegurando que los datos sean confiables, accesibles y difíciles de manipular. Sin embargo, algunas fuentes de datos suelen actualizarse solo después de cambios de precio "significativos" (como un cambio del 0.5% en ETH/USD) o después de un período de tiempo, lo que significa que los precios de Chainlink siempre están retrasados en comparación con el precio de mercado real. Por lo tanto, las actualizaciones de precios de Chainlink pueden ser adelantadas al verificar los precios fuera de la cadena o el mempool.

El Precio Promedio Ponderado por Tiempo (TWAP) de Uniswap V3 es otra solución de oráculo obvia y ampliamente utilizada. El TWAP se puede consultar desde el contrato de Uniswap para obtener el precio promedio ponderado por tiempo de los tokens en un pool durante un período de tiempo específico, que va desde unos pocos segundos hasta 9 días. El precio se calcula en función del precio promedio de los dos tokens en el pool durante el período especificado. Esto hace que manipular el TWAP requiera una gran cantidad de capital y un período de tiempo más largo, lo que es ineficiente en la mayoría de los casos.

Sin embargo, dado que TWAP es el precio promedio de los bloques anteriores, generalmente están retrasados en comparación con los precios fuera de la cadena en tiempo real o incluso con las fuentes de precios de Chainlink. Si se usan solos, no serían suficientes para proteger el protocolo de las transacciones de frontrunning.

Además, dado que TWAP solo informa el precio de pares de tokens en cadena, no pueden cumplir con el objetivo del protocolo de proporcionar acceso a activos que no están representados en cadena (y por lo tanto no en las pools de Uniswap), como las stablecoins respaldadas por forex.

Usar los Oráculos de Maker podría haber sido otra opción para Angle, pero esto significaría confiar en MakerDAO y pasar por un proceso de gobernanza para acceder a los datos de precios. Las fuentes de precios también estarían limitadas a las utilizadas por Maker, lo cual es insuficiente para nosotros, ya que apuntamos a acceder a las tasas de cambio de divisas.

Diseño de Angle: Chainlink + UniV3 TWAP = 💪

Con esto en mente, se decidió combinar el oráculo de Chainlink de Angle Protocol con un TWAP Uni V3 de 10 minutos. Esto permite el precio más justo posible en cualquier momento mientras protege el protocolo de ataques de front-running.

En general, los contratos de Angle compararán los precios de ambos canales y utilizarán el precio que sea más favorable para el protocolo. Con este diseño, el front-running del protocolo se vuelve más complejo porque, para explotar la tasa de cambio del protocolo, un atacante debe manipular o realizar front-running en ambos oráculos.

Específicamente, nuestro contrato obtendrá el mejor precio para todos los pares de activos volátiles/monedas estables entre Chainlink y Uniswap y utilizará el oráculo forex de Chainlink para convertir el precio a la moneda fiduciaria requerida. Cada par de colateral/moneda estable tendrá un contrato de oráculo dedicado con su propia fuente de precio independiente.

¿Cómo funciona?

Por ejemplo, supongamos que un usuario quiere negociar el par ETH/agEUR. Nuestro contrato necesita obtener los precios para ETH/USD y USD/EUR. Mantendrá el mejor precio para ETH/USD de Chainlink y el TWAP de 10 minutos del pool ETH/USDC UniV3. Luego, obtendrá el precio de cambio USD/EUR de Chainlink.

Ejemplo: Uniswap ETH/USDC TWAP: 1900 USD (el protocolo asume que USDC generalmente mantiene su anclaje, es decir, 1 USDC equivale a 1 USD) Precio de ETH Chainlink: 1850 USD Precio de USD Chainlink: 1.16 EUR

Si el usuario desea emitir agEUR en este caso, el protocolo utilizará el precio más bajo de ETH/USD, es decir, el precio de Chainlink de 1850 USD por ETH. Por el contrario, si el usuario desea quemar agEUR por wETH en la misma situación, el protocolo utilizará el precio más alto, es decir, el TWAP de ETH/USDC de Uni de 1900. En ambos casos, el protocolo utilizará la tasa USD/EUR de Chainlink de 1.16 para convertir ETH/USD a ETH/EUR.

De manera similar, el protocolo utilizará el precio más alto para los usuarios que deseen abrir un contrato perpetuo y el precio más bajo para aquellos que deseen cerrarlo.

Más generalmente:

  1. Los contratos de usuario que necesitan precios llamarán al contrato de oráculo correspondiente.
  2. Dependiendo del tipo de transacción, el contrato del oráculo puede leer cotizaciones de UniV3 TWAP y Chainlink, o solo de Chainlink (por ejemplo, para intercambios de stablecoin a stablecoin), y devolverlo al contrato principal.
  3. Dependiendo de la operación que se esté ejecutando (acuñación, quema, apertura o cierre), el contrato relevante retiene el mejor precio para el protocolo y ejecuta la transacción.

Seleccionando la Ventana de Tiempo TWAP Uni V3

El contrato de Angle usará una ventana de tiempo de 10 minutos para TWAP. Esta elección se hizo después de una consideración cuidadosa, ya que diferentes ventanas de tiempo pueden resultar en estructuras de precios significativamente diferentes.

Diferencias entre las ventanas de tiempo

En el caso de Angle, por un lado, la ventana de tiempo debe ser lo suficientemente larga para proporcionar suficiente desfase entre el precio del protocolo y el precio spot. Esto permite un spread mayor entre los precios de acuñación y quema durante las fluctuaciones de precios, especialmente cuando el riesgo de front-running en Chainlink se duplica. Además, cuanto más larga sea la ventana de tiempo, más difícil será manipular el precio de TWAP, ya que las observaciones recientes tienen menos impacto en el precio.

Por otro lado, el protocolo aún debe ofrecer a los usuarios cotizaciones justas y actualizadas: utilizar una ventana de tiempo demasiado amplia creará una brecha de precio demasiado grande entre el protocolo y el precio de mercado actual, mientras que utilizar una ventana de tiempo demasiado estrecha no proporcionará la diferencia de precio deseada.

Comparar TWAP de 10 minutos y 60 minutos con feeds de precios de Chainlink

Para darte una comprensión de por qué finalmente elegimos una ventana de tiempo de 10 minutos, aquí hay una comparación entre los TWAP de 10 minutos y 60 minutos de ETH/USDC y el precio de ETH/USD de Chainlink, así como el precio de cierre de Coinbase.

Puedes ver cómo las tasas superiores e inferiores utilizadas por el protocolo cuando los usuarios crean/cierran y queman/abren se mueven entre los precios más favorables de Chainlink y el TWAP de Uniswap durante las transiciones de precios.


Aunque el bloque de 60 minutos de TWAP a menudo proporciona precios que están lejos del mercado, el TWAP de 10 minutos proporciona un beneficioso amortiguador para la fuente de precios de Chainlink, manteniendo el precio suficientemente cerca del mercado.

Vale la pena señalar que, como se ve en el primer gráfico, cuanto mayor sea la volatilidad, mayor será la diferencia de precio entre los precios de Chainlink y Uniswap. Por el contrario, cuando los precios se mantienen relativamente estables a lo largo del tiempo, las fuentes de precios de Uniswap y Chainlink están más cerca unas de otras. El uso de TWAP como protección adicional contra el front-running es esencialmente una forma de cobrar dinámicamente más en comisiones durante los períodos de alta volatilidad, ya que el riesgo de front-running es mayor debido a los retrasos en los oráculos on-chain. El costo de estas tarifas efectivas más altas es que reduce la capacidad de los traders de arbitraje para cambiar directamente el precio de las stablecoins desde el protocolo. En la mayoría de los casos, los precios de Uniswap y Chainlink serán muy similares, y los usuarios apenas notarán el uso de dos soluciones de oráculo. Sin embargo, durante los períodos de alta volatilidad, cuando el protocolo corre el riesgo de adelantarse debido a las importantes diferencias de precios entre los precios actuales y futuros de Chainlink, los precios del protocolo serán diferentes, protegiéndolo de la ejecución anticipada.

Enfoque en la Recuperación/Reembolso de Tarifas de Synthetix

La investigación del oráculo de Angle está fuertemente inspirada en las discusiones de gobernanza de Synthetix y las publicaciones de blog relacionadas sobre el front-running. En nuestra investigación, también nos encontramos con otra opción que implementaron en febrero de 2020, la recuperación/devolución de tarifas, que eventualmente se convirtió en una solución temporal.

Lo que hicieron fue agregar un período de espera a las transacciones, durante el cual los usuarios no podían manipular el Synth que querían usar. Durante este período, los oráculos podían verificar si la transacción se veía afectada por inconsistencias, específicamente si había una diferencia de precio entre el momento de la ejecución y el final del período de espera. Si existía una diferencia de precio, la diferencia debía ser pagada por el usuario o el protocolo a la otra parte (protocolo o usuario), o se liquidaría en la próxima transacción con Synthetix.

Esta solución fue muy efectiva para reducir el front-running, pero tuvieron que extender el período de espera y aumentar las tarifas, lo que creó una experiencia de usuario muy pobre para todos los operadores. También impidió que Synth se integrara con otros protocolos en muchos casos de uso. En SIP-120, reemplazaron esta solución con un plan que agrega el uso de oráculos TWAP para transacciones grandes.

Conclusión

El diseño específico del oráculo de Angle tiene dos impactos principales en el protocolo:

Los atacantes necesitan manipular dos mercados para engañar al protocolo, reduciendo significativamente el riesgo de operaciones de front-running exitosas.

Durante períodos de estrés del mercado, es poco probable que el protocolo ofrezca a los usuarios el mejor precio posible.

El impacto de este último ha sido discutido en el foro de gobernanza de Fei. Dado que proporcionar la mejor ejecución comercial no es el objetivo principal del protocolo, creemos que es más importante garantizar la resistencia al front-running para asegurar la seguridad del protocolo. En los mercados secundarios durante períodos de alta volatilidad, se ofrecerá una mejor ejecución comercial.

Nuestro objetivo en el proyecto Angle es diseñar un protocolo de stablecoin completamente compatible y eficiente. Lograr esto requiere considerar muchos aspectos del protocolo para asegurarse de que no se pueda engañar en una posición desfavorable, uno de los cuales es la resistencia al front-running. Esto es particularmente importante porque la estabilidad de las stablecoins descentralizadas en cadena que dependen de oráculos, depende de la calidad de sus oráculos.

La adición de fuentes de precios secundarias en forma de TWAP puede ayudar al protocolo a mitigar los posibles impactos adversos de la alta volatilidad del mercado y las oportunidades anticipadas que surgen durante esos momentos.

Por último, es importante tener en cuenta que esta solución oráculo mantiene flexibilidad y escalabilidad. Por un lado, la gobernanza de Angle puede votar y actualizar sus contratos oráculo en cualquier momento. Por otro lado, se pueden crear oráculos para cualquier alimentación de precios compatible con Chainlink. ¡Este es el nivel mínimo de soporte necesario para lograr la visión de Angle de llevar activos financieros a la cadena de manera eficiente en capital!

Renuncia:

  1. Este artículo es reimpreso de [gateComunidad Denglink]. Todos los derechos de autor pertenecen al autor original [Ángulo]. Si hay objeciones a esta reimpresión, por favor contacte al Gate Learnequipo, y lo resolverán rápidamente.
  2. Responsabilidad de responsabilidad: Las opiniones y opiniones expresadas en este artículo son únicamente las del autor y no constituyen ningún consejo de inversión.
  3. Las traducciones del artículo a otros idiomas son realizadas por el equipo de gate Learn. A menos que se mencione, está prohibido copiar, distribuir o plagiar los artículos traducidos.

Oracle y Transacciones de Front-Running - Serie de Investigación de Angle Parte 1

Intermedio2/20/2025, 5:32:13 AM
Este artículo proporciona un análisis en profundidad del diseño del oráculo del Protocolo Angle y sus mecanismos de defensa contra transacciones de front-running. Al combinar Chainlink y Uniswap V3 TWAP, Angle ofrece una solución innovadora destinada a proteger el protocolo de los ataques de front-running mientras garantiza que los usuarios reciban precios de transacción justos.

Introducción

Angle permite a los usuarios acuñar y quemar agTokens (stablecoins) a cambio de otros tokens. Los traders también pueden abrir posiciones largas en pares de colateral/stablecoin disponibles. Estos no son contratos perpetuos tradicionales, ya que el equilibrio no depende de las tasas de financiación, y los precios de ejecución provienen directamente del oráculo. Dadas estas aplicaciones, el protocolo requiere un método confiable para fijar precios a los activos disponibles y ofrecer a los usuarios cotizaciones justas al mismo tiempo que se protege de transacciones de front-running. En el FAQ de este artículo, Samcszun explica por qué esto no es tan simple como usar precios al contado.

El front-running ha sido un problema de larga data en el mercado. Se reduce a ciertos participantes que obtienen acceso a la información antes que otros, lo que les permite aprovechar esta ventaja para extraer ganancias libres de riesgo a expensas de la contraparte. Históricamente, prevenir este fenómeno en la cadena ha sido extremadamente desafiante. Los altos costos y la baja velocidad de las transacciones de Ethereum dificultan que los oráculos actualicen los precios rápidamente y con frecuencia. Esto introduce retrasos entre los precios fuera de la cadena y en la cadena, creando oportunidades para que los front-runners exploten.

No todos los protocolos de stablecoin se preocupan por los riesgos de front-running que surgen de los retrasos del oráculo. En el caso de DAI de Maker, los retrasos del oráculo a menudo benefician al protocolo. Por ejemplo, si un usuario ve que su posición será liquidada en la próxima actualización del oráculo debido a una caída de precios, se le incentiva a depositar más fondos en la bóveda, mejorando la salud del protocolo y la relación de colateral.

Synthetix, que permite intercambios de valor basados en oráculos entre activos sintéticos y garantías, es un ejemplo perfecto de un protocolo de stablecoin que enfrenta desafíos de front-running. Su publicación en el blog describe la larga historia del protocolo con el front-running, incluidos algunos ataques pasados que han sufrido.

Similar to Synthetix, Angle permite intercambios de activos al valor del oráculo sin deslizamiento de precio. Como resultado, Angle enfrenta el mismo problema de front-running. El equipo central de Angle ha hecho esfuerzos significativos para mitigar el front-running. Se han implementado dos mejoras clave: un diseño de oráculo específico y una estructura de tarifas dinámica. En este artículo, explicaremos el diseño del oráculo de Angle y la lógica detrás de él.

Una Actualización del Oráculo de Front-Running: Un Ejemplo

Antes de sumergirnos en la solución de Angle, primero intentemos entender cómo el front-running puede dañar el protocolo. Consideraremos un ejemplo donde ETH es aceptado como garantía para respaldar la stablecoin de Angle.

Sin tarifas de transacción

Supongamos que un atacante está monitoreando el precio de ETH fuera de la cadena y ve que el oráculo de Chainlink está a punto de actualizar los datos en la cadena a un precio más alto (de p0 a p1, donde p0 < p1). Este atacante puede enviar una transacción para quemar x stablecoins al precio de p0 a cambio de x/p0 valor de ETH. Luego, después de que el precio se actualice a p1, el atacante puede venderlo de nuevo al protocolo, obteniendo así una ganancia:

Debido a esta transacción de front-running en la actualización del oráculo, esta parte de la ganancia se toma de las reservas del protocolo. Si establecemos x = 100 ETH y p1 = 1.01 * p0 (un aumento del 1% en el precio), esto significa que el atacante ha tomado 1 ETH de las reservas del protocolo.

Con tarifas de transacción

Afortunadamente, el aumento de las comisiones de transacción puede mitigar este problema, ya que erosionan los beneficios de los que se adelantan y reducen las oportunidades.

Por ejemplo, si las tarifas de transacción de acuñación y quema son constantes e iguales a f, un atacante que queme x stablecoins en p0 y luego las revenda al protocolo por ETH en p1 tendrá la siguiente ganancia final:

En comparación con el escenario anterior, las comisiones reducen la ganancia:

Cuando la comisión de transacción es f = 0.3% y siguiendo el ejemplo anterior, la ganancia del atacante es ahora solo 0.39 ETH.

Con tarifas de transacción y dos soluciones de Oracle

Para reducir aún más esta oportunidad, podemos depender de un oráculo secundario para proporcionar dos fuentes de precios potenciales: pC (precio de Chainlink) y pU (precio de Uniswap). El protocolo puede utilizar el precio más favorable (el precio más bajo al acuñar, al comprar los tokens del usuario, y el precio más alto al quemar, al vender ETH al usuario), lo que hace que la oportunidad de front-running sea menos atractiva.

Imagina a un trader intentando obtener beneficios de la misma oportunidad que se menciona arriba, asumiendo que pC0 < pC1.

Por otro lado, podemos considerar que pU es constante y más cercano a pC0. Por lo tanto, como veremos más adelante, debido al diseño del precio promedio ponderado en el tiempo (TWAP) de Uniswap, pU tiende a retrasarse con respecto a pC.

En este caso, un atacante que intente beneficiarse de la oportunidad potencial compraría tokens del protocolo a pC0 (quemando stablecoins) y recibiría x(1-f)/pC0 valor de ETH. Luego, lo venderían de nuevo a pU1 a un precio más alto. Esto resultaría en una pérdida para el atacante:

Si mantenemos los números del ejemplo, el atacante al final perdería 0.6 ETH en esta transacción.

Solución de Angle

El diseño de Angle está específicamente destinado a eliminar el riesgo de transacciones de front-running. Por lo tanto, el protocolo implementará un mecanismo muy similar al ejemplo discutido anteriormente. En esta sección, exploraremos las opciones existentes potenciales con más detalle, centrándonos en los detalles del diseño que planeamos implementar y analizando nuestra elección de la ventana de tiempo de TWAP.

Opciones

Las principales soluciones de oráculo que podrían adaptarse al caso de uso de Angle son:

  • Enlace de cadena
  • Uniswap V3 TWAP
  • Maker Feeds

Chainlink es la elección obvia en primer lugar: es una solución de oráculo descentralizada ampliamente utilizada que proporciona múltiples fuentes de datos que cubren varios activos. Los precios provienen de múltiples fuentes y se transmiten a través de una red descentralizada, asegurando que los datos sean confiables, accesibles y difíciles de manipular. Sin embargo, algunas fuentes de datos suelen actualizarse solo después de cambios de precio "significativos" (como un cambio del 0.5% en ETH/USD) o después de un período de tiempo, lo que significa que los precios de Chainlink siempre están retrasados en comparación con el precio de mercado real. Por lo tanto, las actualizaciones de precios de Chainlink pueden ser adelantadas al verificar los precios fuera de la cadena o el mempool.

El Precio Promedio Ponderado por Tiempo (TWAP) de Uniswap V3 es otra solución de oráculo obvia y ampliamente utilizada. El TWAP se puede consultar desde el contrato de Uniswap para obtener el precio promedio ponderado por tiempo de los tokens en un pool durante un período de tiempo específico, que va desde unos pocos segundos hasta 9 días. El precio se calcula en función del precio promedio de los dos tokens en el pool durante el período especificado. Esto hace que manipular el TWAP requiera una gran cantidad de capital y un período de tiempo más largo, lo que es ineficiente en la mayoría de los casos.

Sin embargo, dado que TWAP es el precio promedio de los bloques anteriores, generalmente están retrasados en comparación con los precios fuera de la cadena en tiempo real o incluso con las fuentes de precios de Chainlink. Si se usan solos, no serían suficientes para proteger el protocolo de las transacciones de frontrunning.

Además, dado que TWAP solo informa el precio de pares de tokens en cadena, no pueden cumplir con el objetivo del protocolo de proporcionar acceso a activos que no están representados en cadena (y por lo tanto no en las pools de Uniswap), como las stablecoins respaldadas por forex.

Usar los Oráculos de Maker podría haber sido otra opción para Angle, pero esto significaría confiar en MakerDAO y pasar por un proceso de gobernanza para acceder a los datos de precios. Las fuentes de precios también estarían limitadas a las utilizadas por Maker, lo cual es insuficiente para nosotros, ya que apuntamos a acceder a las tasas de cambio de divisas.

Diseño de Angle: Chainlink + UniV3 TWAP = 💪

Con esto en mente, se decidió combinar el oráculo de Chainlink de Angle Protocol con un TWAP Uni V3 de 10 minutos. Esto permite el precio más justo posible en cualquier momento mientras protege el protocolo de ataques de front-running.

En general, los contratos de Angle compararán los precios de ambos canales y utilizarán el precio que sea más favorable para el protocolo. Con este diseño, el front-running del protocolo se vuelve más complejo porque, para explotar la tasa de cambio del protocolo, un atacante debe manipular o realizar front-running en ambos oráculos.

Específicamente, nuestro contrato obtendrá el mejor precio para todos los pares de activos volátiles/monedas estables entre Chainlink y Uniswap y utilizará el oráculo forex de Chainlink para convertir el precio a la moneda fiduciaria requerida. Cada par de colateral/moneda estable tendrá un contrato de oráculo dedicado con su propia fuente de precio independiente.

¿Cómo funciona?

Por ejemplo, supongamos que un usuario quiere negociar el par ETH/agEUR. Nuestro contrato necesita obtener los precios para ETH/USD y USD/EUR. Mantendrá el mejor precio para ETH/USD de Chainlink y el TWAP de 10 minutos del pool ETH/USDC UniV3. Luego, obtendrá el precio de cambio USD/EUR de Chainlink.

Ejemplo: Uniswap ETH/USDC TWAP: 1900 USD (el protocolo asume que USDC generalmente mantiene su anclaje, es decir, 1 USDC equivale a 1 USD) Precio de ETH Chainlink: 1850 USD Precio de USD Chainlink: 1.16 EUR

Si el usuario desea emitir agEUR en este caso, el protocolo utilizará el precio más bajo de ETH/USD, es decir, el precio de Chainlink de 1850 USD por ETH. Por el contrario, si el usuario desea quemar agEUR por wETH en la misma situación, el protocolo utilizará el precio más alto, es decir, el TWAP de ETH/USDC de Uni de 1900. En ambos casos, el protocolo utilizará la tasa USD/EUR de Chainlink de 1.16 para convertir ETH/USD a ETH/EUR.

De manera similar, el protocolo utilizará el precio más alto para los usuarios que deseen abrir un contrato perpetuo y el precio más bajo para aquellos que deseen cerrarlo.

Más generalmente:

  1. Los contratos de usuario que necesitan precios llamarán al contrato de oráculo correspondiente.
  2. Dependiendo del tipo de transacción, el contrato del oráculo puede leer cotizaciones de UniV3 TWAP y Chainlink, o solo de Chainlink (por ejemplo, para intercambios de stablecoin a stablecoin), y devolverlo al contrato principal.
  3. Dependiendo de la operación que se esté ejecutando (acuñación, quema, apertura o cierre), el contrato relevante retiene el mejor precio para el protocolo y ejecuta la transacción.

Seleccionando la Ventana de Tiempo TWAP Uni V3

El contrato de Angle usará una ventana de tiempo de 10 minutos para TWAP. Esta elección se hizo después de una consideración cuidadosa, ya que diferentes ventanas de tiempo pueden resultar en estructuras de precios significativamente diferentes.

Diferencias entre las ventanas de tiempo

En el caso de Angle, por un lado, la ventana de tiempo debe ser lo suficientemente larga para proporcionar suficiente desfase entre el precio del protocolo y el precio spot. Esto permite un spread mayor entre los precios de acuñación y quema durante las fluctuaciones de precios, especialmente cuando el riesgo de front-running en Chainlink se duplica. Además, cuanto más larga sea la ventana de tiempo, más difícil será manipular el precio de TWAP, ya que las observaciones recientes tienen menos impacto en el precio.

Por otro lado, el protocolo aún debe ofrecer a los usuarios cotizaciones justas y actualizadas: utilizar una ventana de tiempo demasiado amplia creará una brecha de precio demasiado grande entre el protocolo y el precio de mercado actual, mientras que utilizar una ventana de tiempo demasiado estrecha no proporcionará la diferencia de precio deseada.

Comparar TWAP de 10 minutos y 60 minutos con feeds de precios de Chainlink

Para darte una comprensión de por qué finalmente elegimos una ventana de tiempo de 10 minutos, aquí hay una comparación entre los TWAP de 10 minutos y 60 minutos de ETH/USDC y el precio de ETH/USD de Chainlink, así como el precio de cierre de Coinbase.

Puedes ver cómo las tasas superiores e inferiores utilizadas por el protocolo cuando los usuarios crean/cierran y queman/abren se mueven entre los precios más favorables de Chainlink y el TWAP de Uniswap durante las transiciones de precios.


Aunque el bloque de 60 minutos de TWAP a menudo proporciona precios que están lejos del mercado, el TWAP de 10 minutos proporciona un beneficioso amortiguador para la fuente de precios de Chainlink, manteniendo el precio suficientemente cerca del mercado.

Vale la pena señalar que, como se ve en el primer gráfico, cuanto mayor sea la volatilidad, mayor será la diferencia de precio entre los precios de Chainlink y Uniswap. Por el contrario, cuando los precios se mantienen relativamente estables a lo largo del tiempo, las fuentes de precios de Uniswap y Chainlink están más cerca unas de otras. El uso de TWAP como protección adicional contra el front-running es esencialmente una forma de cobrar dinámicamente más en comisiones durante los períodos de alta volatilidad, ya que el riesgo de front-running es mayor debido a los retrasos en los oráculos on-chain. El costo de estas tarifas efectivas más altas es que reduce la capacidad de los traders de arbitraje para cambiar directamente el precio de las stablecoins desde el protocolo. En la mayoría de los casos, los precios de Uniswap y Chainlink serán muy similares, y los usuarios apenas notarán el uso de dos soluciones de oráculo. Sin embargo, durante los períodos de alta volatilidad, cuando el protocolo corre el riesgo de adelantarse debido a las importantes diferencias de precios entre los precios actuales y futuros de Chainlink, los precios del protocolo serán diferentes, protegiéndolo de la ejecución anticipada.

Enfoque en la Recuperación/Reembolso de Tarifas de Synthetix

La investigación del oráculo de Angle está fuertemente inspirada en las discusiones de gobernanza de Synthetix y las publicaciones de blog relacionadas sobre el front-running. En nuestra investigación, también nos encontramos con otra opción que implementaron en febrero de 2020, la recuperación/devolución de tarifas, que eventualmente se convirtió en una solución temporal.

Lo que hicieron fue agregar un período de espera a las transacciones, durante el cual los usuarios no podían manipular el Synth que querían usar. Durante este período, los oráculos podían verificar si la transacción se veía afectada por inconsistencias, específicamente si había una diferencia de precio entre el momento de la ejecución y el final del período de espera. Si existía una diferencia de precio, la diferencia debía ser pagada por el usuario o el protocolo a la otra parte (protocolo o usuario), o se liquidaría en la próxima transacción con Synthetix.

Esta solución fue muy efectiva para reducir el front-running, pero tuvieron que extender el período de espera y aumentar las tarifas, lo que creó una experiencia de usuario muy pobre para todos los operadores. También impidió que Synth se integrara con otros protocolos en muchos casos de uso. En SIP-120, reemplazaron esta solución con un plan que agrega el uso de oráculos TWAP para transacciones grandes.

Conclusión

El diseño específico del oráculo de Angle tiene dos impactos principales en el protocolo:

Los atacantes necesitan manipular dos mercados para engañar al protocolo, reduciendo significativamente el riesgo de operaciones de front-running exitosas.

Durante períodos de estrés del mercado, es poco probable que el protocolo ofrezca a los usuarios el mejor precio posible.

El impacto de este último ha sido discutido en el foro de gobernanza de Fei. Dado que proporcionar la mejor ejecución comercial no es el objetivo principal del protocolo, creemos que es más importante garantizar la resistencia al front-running para asegurar la seguridad del protocolo. En los mercados secundarios durante períodos de alta volatilidad, se ofrecerá una mejor ejecución comercial.

Nuestro objetivo en el proyecto Angle es diseñar un protocolo de stablecoin completamente compatible y eficiente. Lograr esto requiere considerar muchos aspectos del protocolo para asegurarse de que no se pueda engañar en una posición desfavorable, uno de los cuales es la resistencia al front-running. Esto es particularmente importante porque la estabilidad de las stablecoins descentralizadas en cadena que dependen de oráculos, depende de la calidad de sus oráculos.

La adición de fuentes de precios secundarias en forma de TWAP puede ayudar al protocolo a mitigar los posibles impactos adversos de la alta volatilidad del mercado y las oportunidades anticipadas que surgen durante esos momentos.

Por último, es importante tener en cuenta que esta solución oráculo mantiene flexibilidad y escalabilidad. Por un lado, la gobernanza de Angle puede votar y actualizar sus contratos oráculo en cualquier momento. Por otro lado, se pueden crear oráculos para cualquier alimentación de precios compatible con Chainlink. ¡Este es el nivel mínimo de soporte necesario para lograr la visión de Angle de llevar activos financieros a la cadena de manera eficiente en capital!

Renuncia:

  1. Este artículo es reimpreso de [gateComunidad Denglink]. Todos los derechos de autor pertenecen al autor original [Ángulo]. Si hay objeciones a esta reimpresión, por favor contacte al Gate Learnequipo, y lo resolverán rápidamente.
  2. Responsabilidad de responsabilidad: Las opiniones y opiniones expresadas en este artículo son únicamente las del autor y no constituyen ningún consejo de inversión.
  3. Las traducciones del artículo a otros idiomas son realizadas por el equipo de gate Learn. A menos que se mencione, está prohibido copiar, distribuir o plagiar los artículos traducidos.
Empieza ahora
¡Registrarse y recibe un bono de
$100
!