Saltar al contenido

Oráculo TWAP

Un oráculo TWAP obtiene una referencia ponderada por tiempo a partir de observaciones acumuladas específicas del protocolo; los precios aritméticos de v2 y los ticks medios de v3 tienen matemáticas y límites de historial, liquidez y manipulación diferentes.

Actualizado

Solo con fines educativos; no constituye asesoramiento de inversión. Invertir puede ocasionar pérdidas.

Respuesta directa

Un oráculo de precio medio ponderado por tiempo obtiene una referencia de observaciones acumuladas durante un intervalo definido. No existe una fórmula universal. Uniswap v2 acumula el precio marginal lineal del pool en cada dirección, por lo que las diferencias entre extremos producen TWAP aritméticos. Uniswap v3 acumula tick, una coordenada logarítmica del precio, de modo que el tick medio aritmético se transforma en un precio relativo medio geométrico.

El resultado solo tiene sentido tras fijar blockchain, pool, implementación, nivel de comisión, orden de tokens, dirección base/cotizada, decimales, extremos, tiempo transcurrido, historial poblado y redondeo. Una lectura correcta no demuestra valor razonable ni profundidad ejecutable. Una ventana más larga diluye una distorsión breve, pero aumenta el retraso y no vence la manipulación sostenida, los vacíos de liquidez concentrada, el control del proponente o secuenciador, las reorganizaciones ni a un consumidor cuyo valor extraíble supere el coste de manipulación.

La actualidad de las observaciones y la del mercado son distintas. Un promedio calculado ahora puede conservar intencionadamente un régimen antiguo; un pool activo puede seguir siendo poco líquido o estar separado de mercados externos. El consumidor necesita comprobar historial, liquidez y divergencia, imponer límites por acción y definir expresamente el comportamiento degradado o pausado.

Cómo funciona

  1. Fije blockchain y bloque, fábrica y dirección del pool, versión del protocolo y nivel de comisión, token0 y token1, decimales, dirección base/cotizada, acción consumidora, ventana y valor en riesgo.
  2. Identifique el objeto acumulado y sus unidades: price0Cumulative o price1Cumulative lineal de v2, tickCumulative de v3 u otra estadística documentada. No traslade la aritmética entre implementaciones.
  3. Verifique marcas de tiempo de los extremos, tiempo positivo, historial inicializado más antiguo, cardinalidad actual y reglas de interpolación o construcción contrafactual. observationCardinalityNext es capacidad objetivo, no historial ya poblado.
  4. En v2, divida la variación del precio acumulado por los segundos transcurridos y normalice unidades de punto fijo y decimales. Calcule cada dirección por separado: el TWAP aritmético inverso no suele ser el recíproco del directo.
  5. En v3, llame a la interfaz de observación documentada, divida la variación del tick acumulado por la ventana, redondee un cociente negativo no exacto hacia menos infinito como hace OracleLibrary y transforme el tick medio en cotización normalizada mediante price = 1.0001^tick.
  6. Mida liquidez actual en rango, armónica, de rango amplio, por nivel de comisión y de mercados externos. Someta a tensión rutas de uno y varios bloques, comisiones, arbitraje, ordenación, censura, pérdida al deshacer, reorganizaciones, retraso y valor extraíble del consumidor.
  7. Compare el TWAP con spot y referencias independientes bajo límites explícitos de actualidad y desviación; vigile historial, rangos de liquidez, upgrades del pool y condiciones de la cadena, y ensaye historial insuficiente, divergencia, pausa, fallback, liquidación y recuperación.

Uniswap v2 guarda dos valores acumulados direccionales y los incrementa con el tiempo. Uniswap v3 guarda observaciones en un búfer circular y puede interpolar entre ellas o construir un acumulado actual contrafactual. Esos extremos construidos son aritmética válida del protocolo, no prueba de que se negociara en ese instante. Aumentar la cardinalidad crea espacio para observaciones futuras; no rellena periodos anteriores.

Ejemplos resueltos

  • Precio acumulado v2. Si C_start = 1,000,000 price-seconds, C_end = 1,360,000 price-seconds y elapsed = 3,600 seconds, entonces TWAP = (1,360,000 - 1,000,000) / 3,600 = 100 quote/base. Extremos, dirección, escala y marcas de tiempo forman parte del resultado.
  • Trampa del recíproco. Un precio directo vale 100 durante 900 seconds y 400 durante 900 seconds; su TWAP aritmético es 250. Los spots inversos son 0.01 y 0.0025; su TWAP aritmético es 0.00625, cuyo recíproco es 160, no 250. Promediar e invertir no conmutan.
  • Tick medio negativo. Sea tickCumulativeDelta = -39,601 durante 3,600 seconds. La división con signo de Solidity trunca a -11 con resto, pero el auxiliar v3 redondea hacia abajo a meanTick = -12. El precio geométrico relativo es 1.0001^-12 = 0.998800779636. Un error de signo o redondeo sesga sistemáticamente la cotización.
  • Dilución y retraso. Un pool cotiza a 100 durante 1,740 seconds y a 400 durante 60 seconds en una ventana de 1,800-second. El TWAP aritmético tipo v2 es (100 * 1,740 + 400 * 60) / 1,800 = 110; la media geométrica tipo v3 es 100^(29/30) * 400^(1/30) = 104.7294122821. Ambos difieren del spot actual 400 y entre sí; ninguno determina por sí solo coste de manipulación o tamaño ejecutable.

Riesgos

  • Blockchain, fábrica, pool, nivel de comisión, implementación o estado de upgrade incorrectos.
  • Dirección base/cotizada o token0/token1 invertida.
  • Decimales, escala de punto fijo o normalización de cotización incorrectos.
  • Se tratan un precio aritmético v2 y uno geométrico v3 como la misma estadística.
  • Se calcula el TWAP aritmético inverso como recíproco del directo.
  • Se usan extremos, tiempo, frontera de ventana o bloque actual erróneos.
  • Se gestiona mal aritmética temporal cero, negativa, envuelta o específica de la implementación.
  • El historial solicitado precede a la observación inicializada más antigua.
  • Se confunde observationCardinalityNext con observationCardinality poblada.
  • Se toman observaciones interpoladas o contrafactuales por operaciones reales.
  • El tick medio negativo se redondea hacia cero y no hacia menos infinito.
  • La conversión de tick, rango entero, overflow o redondeo de cotización no es segura.
  • La liquidez activa en rango o armónica es insuficiente para la exposición protegida.
  • Falta profundidad de rango amplio, se retira o se ignora al analizar manipulación.
  • La liquidez está fragmentada entre pools, niveles, cadenas o mercados correlacionados.
  • Una ventana corta sigue expuesta a manipulación de un bloque, atómica o transitoria.
  • Una ventana larga retrasa revaloraciones reales, desvinculaciones o migración de liquidez.
  • Proponentes multibloque, secuenciador, censura, congestión, MEV o reorganizaciones reducen la corrección o aumentan el control.
  • Se trata el TWAP como valor razonable reciente o precio ejecutable a cualquier tamaño sin comprobar divergencia ni profundidad.
  • La exposición del consumidor supera el coste de manipulación y fallback, cortacircuitos, pausa, liquidación o recuperación son inseguros.

Errores frecuentes

  • «TWAP siempre significa media aritmética de precios». v3 promedia tick y produce un precio relativo medio geométrico.
  • «La cotización inversa siempre es uno dividido por el TWAP directo». Esa simetría no existe para precios lineales promediados por separado.
  • «Una ventana más larga hace imposible manipular». Cambia sensibilidad a distorsión breve por retraso y aún admite control sostenido o liquidez débil.
  • «Aumentar cardinalidad crea más historial inmediatamente». Solo amplía la capacidad futura; las observaciones deben inicializarse después.
  • «Una lectura reciente y correcta prueba valor razonable ejecutable». El éxito de la interfaz no demuestra actualidad económica, profundidad, independencia ni exposición segura.

Temas relacionados

Fuentes

Navegación

Buscar en la wiki...