Saltar al contenido

Ataques a oráculos

Un ataque a un oráculo explota datos externos manipulables, obsoletos, mal escalados o mal configurados para que un protocolo preste, acuñe, reembolse, liquide o ejecute una liquidación a un valor inseguro.

Actualizado

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

Respuesta directa

Un ataque a un oráculo explota el límite de confianza de los datos de un protocolo para que un precio, tipo de cambio, índice, valor liquidativo o indicador de estado provoque una acción económicamente insegura. El atacante puede manipular un mercado poco líquido, comprometer informadores o claves, aprovechar las reglas de agregación o actualización, o combinar la ausencia de controles de vigencia, unidades, intervalos y respaldo en el consumidor con capital prestado. Una fuente obsoleta o mal configurada puede causar la misma pérdida sin que el operador del oráculo actúe de forma maliciosa; por ello, el análisis del incidente debe separar la vía del ataque del modo de fallo.

La comparación decisiva no es si un precio mostrado se movió con brusquedad. Es si el coste y el riesgo de influir en el valor exacto que consume el contrato son inferiores al valor ejecutable disponible mediante préstamo, acuñación, reembolso, liquidación contractual o liquidación de garantías. La liquidez flash puede financiar una vía atómica, pero ni crea el límite de confianza defectuoso ni es indispensable para explotarlo.

El valor de un oráculo tampoco es necesariamente un precio de mercado ejecutable. Toda revisión debe vincularlo a una cadena, bloque, dirección de la fuente o del pool, orientación base/cotizada, decimales, marca temporal, método de agregación, tamaño de mercado y función consumidora. Una firma válida demuestra quién comunicó los datos conforme a un esquema; por sí sola no demuestra vigencia, independencia de fuentes, profundidad de mercado ni corrección económica.

Cómo funciona

  1. Fije el despliegue: cadena, bloque, contrato y función consumidores, contratos de activos, proxy de la fuente o pool, agregador, activos base y cotizado, decimales, administradores y estado de actualización.
  2. Trace toda la ruta de confianza desde mercados, pools o informadores, pasando por agregación, firmas, proxy o adaptador y respaldo, hasta la lógica consumidora; registre mercados, operadores, claves y órganos de gobierno compartidos en vez de contar etiquetas como fuentes independientes.
  3. Reproduzca exactamente la lectura onchain: respuesta, metadatos de ronda, marca temporal, confianza o estado cuando proceda, normalización decimal, inversión de la cotización, estado del secuenciador y periodo de gracia, antigüedad máxima, límites de desviación y tratamiento de valores cero o negativos.
  4. Construya el registro de exposición del consumidor: factor de garantía, umbral de liquidación, límites de préstamo y suministro, liquidez disponible, deuda, límites de acuñación o reembolso, factor de cierre, bonificación de liquidación y cada acción habilitada por el valor.
  5. Modele la manipulación a tamaño ejecutable con reservas, liquidez activa, observaciones, ventana y convención de ponderación, comisiones, arbitraje, orden de bloques, capital flash o propio, pérdidas al deshacer, gas, MEV y liquidadores rivales.
  6. Pruebe controles y estados de fallo: fuentes independientes, cardinalidad del TWAP, límites, disyuntores, autoridad de pausa, timelocks, respaldo obsoleto o divergente, pérdida de informadores o claves, caída del secuenciador L2, saltos de precio legítimos y comportamiento fail-open frente a fail-closed.
  7. Supervise y concilie rondas canónicas, cambios de proxy y configuración, divergencia de fuentes, acciones del protocolo, liquidaciones, deuda incobrable y decisiones de pausa y recuperación; repita el análisis tras cambios de liquidez, cotización, actualización o régimen de mercado.

Una lectura spot de un AMM puede modificarse dentro de una sola transacción. Un promedio ponderado por tiempo puede elevar el coste al exigir influencia durante varias observaciones, pero su seguridad depende de la convención aritmética o basada en ticks, la ventana, la cardinalidad de observaciones, la distribución de liquidez y el control de bloques. Una mediana puede rechazar algunos valores atípicos, aunque mercados de origen correlacionados o la pérdida de cuórum aún pueden comprometer la seguridad o la disponibilidad. Los parámetros de heartbeat y desviación determinan cuándo publican algunas fuentes; los consumidores siguen necesitando su propia política de vigencia y validez.

Ejemplos resueltos

  • Spot de producto constante. Ignore las comisiones en un pool con 1,000,000 ABC y 1,000,000 USDC, de modo que k = 10^12. Un precio marginal objetivo de 9 USDC/ABC exige reservas de 3,000,000 USDC y 333,333.333333 ABC: el operador aporta 2,000,000 USDC y recibe 666,666.666667 ABC. El precio marginal final es 3,000,000 / 333,333.333333 = 9, mientras que el precio medio de ejecución es 2,000,000 / 666,666.666667 = 3 USDC/ABC. En cambio, una aportación de 5,000,000 USDC deja reservas de 6,000,000 y 166,666.666667, lo que produce un precio marginal de 36, no 9. Las comisiones reales, el arbitraje, la liquidez concentrada y el deshacer de la posición modifican el registro.
  • Convención TWAP. En diez observaciones iguales de un minuto, nueve precios son 100 y uno es 160. El TWAP aritmético didáctico es (9 * 100 + 160) / 10 = 106, apenas un 6% por encima de 100 aunque el último spot sea un 60% superior. Para elevar ese promedio aritmético a 130 manteniendo las otras nueve observaciones en 100, la observación manipulada debe ser 400. La media de ticks de Uniswap v3 es geométrica y no coincide con este ejemplo aritmético, por lo que el consumidor debe reproducir la convención desplegada.
  • Mediana y cuórum. Siete observaciones normalizadas son [99, 100, 100, 101, 101, 500, 600]; su mediana es 101, por lo que dos informes extremos no desplazan el resultado fuera del grupo honesto. Si la aceptación exige cinco informes activos y tres informadores honestos quedan fuera de línea, solo permanecen 4 < 5: la resistencia a valores atípicos no garantiza disponibilidad y el respaldo pasa a formar parte del modelo de seguridad.
  • Obsolescencia y liquidación indebida. Una fuente con ocho decimales devuelve el valor bruto 140,000,000,000, es decir, 1,400, pero tiene 17 minutes de antigüedad frente a un máximo del consumidor de 15 minutes, por lo que debe rechazarse. Si aun así se usa el valor obsoleto para 10 ETH, un umbral de liquidación del 75% y una deuda de 12,000, el factor de salud es 10 * 1,400 * 0.75 / 12,000 = 0.875; con un precio vigente de 2,000, es 1.25. Una corrección posterior del precio no revierte una liquidación ya ejecutada.

Riesgos

  • Cadena, activo, fuente, proxy, pool o dirección del consumidor incorrectos.
  • Activos base y cotizado invertidos o denominación incoherente.
  • Normalización incorrecta de decimales de la fuente, token y punto fijo interno.
  • Aceptar datos obsoletos o confundir heartbeat y desviación con garantías de vigencia.
  • Aceptar rondas incompletas, estado inválido o respuestas cero, negativas, limitadas o fuera de rango.
  • Un precio spot de un único mercado poco líquido controla una gran exposición del protocolo.
  • Ventana TWAP demasiado corta, dispersa, mal ponderada o leída en sentido inverso.
  • Cardinalidad, inicialización, interpolación o respaldo de observaciones mal entendidos.
  • Liquidez concentrada o just-in-time que hace que el valor nominal del pool distorsione el coste del ataque.
  • Varias fuentes comparten mercados, proveedores, operadores, claves o plano de control.
  • El fallo de informadores, mercados, API, firmantes, red o cuórum elimina vigencia o integridad.
  • Caída del secuenciador L2 o periodo de gracia posterior ausente o incorrecto.
  • Respaldo obsoleto, circular, correlacionado, con otra escala o semánticamente incompatible.
  • La liquidez flash y la composición atómica hacen aprovechable una influencia temporal.
  • Orden de actualizaciones, frontrunning, sandwich, backrunning o MEV de liquidación que modifica los pagos.
  • Factores de garantía, umbrales, límites, bonificaciones y liquidez disponible amplifican un pequeño error.
  • Compromiso de gobierno, administrador, guardian, multisig o clave de firma que altera la ruta de confianza.
  • Errores de proxy, agregador, adaptador, actualización, almacenamiento o configuración que seleccionan otro valor.
  • Disyuntores o lógica fail-closed que bloquean préstamos, reembolsos o liquidaciones legítimos durante una crisis.
  • Fallos en pausa, recuperación, conciliación de cuentas, asignación de deuda incobrable o contención entre protocolos.

Errores frecuentes

  • «Todo ataque a un oráculo compromete su red». Muchos fallos explotan una fuente poco líquida, un valor obsoleto, unidades incorrectas, un adaptador inseguro o la lógica consumidora mientras la red informa según su configuración.
  • «Varias fuentes o fuentes descentralizadas garantizan un precio correcto». Siguen siendo necesarias la independencia, la calidad, el cuórum, la vigencia, las unidades, la agregación y las comprobaciones del consumidor.
  • «Un TWAP hace imposible la manipulación». Cambia su duración y coste; una ventana débil, observaciones escasas, poca liquidez o control de bloques aún pueden ser explotables.
  • «Prohibir los préstamos flash elimina el riesgo del oráculo». Son un mecanismo de financiación. Persisten el capital propio, el crédito, los préstamos entre protocolos, el compromiso de informadores y los errores de configuración.
  • «La recuperación del precio revierte el daño». Los préstamos, acuñaciones, reembolsos, liquidaciones contractuales y liquidaciones de garantías canónicos persisten salvo que exista un proceso de recuperación separado y autorizado.

Temas relacionados

Fuentes

Navegación

Buscar en la wiki...