Oráculos: cómo conocen los precios las blockchains y por qué importa

Las blockchains no ven el mundo exterior. Descubre cómo oráculos como Chainlink llevan los precios a la cadena, cómo pueden fallar y cómo comprobarlos tú mismo.

10 min de lectura

Una esbelta torre de terrazo con una esfera naranja luminosa en lo alto que ilumina unas monedas debajo
En esta página
  1. Puntos clave
  2. El problema del oráculo
  3. Cómo funciona una fuente de precios descentralizada
  4. Por qué es peligroso el precio de un solo mercado
  5. Cómo usan las fuentes de precios las aplicaciones de préstamos y trading
  6. Los precios en la cadena están a la vista de todos
  7. Otros diseños: Pyth y el TWAP de Uniswap
  8. Preguntas frecuentes
  9. Fuentes

Un contrato inteligente puede custodiar millones y cumplir sus reglas a la perfección, pero no tiene ni idea de cuánto vale un bitcoin. Una blockchain solo ve los datos que ya están en ella. El oráculo es el puente: un servicio que lleva información del exterior, casi siempre precios, a la cadena.

En esta guía verás por qué hace falta ese puente, cómo funcionan las fuentes de precios descentralizadas como las de Chainlink, qué sale mal cuando una aplicación se fía de un único mercado y cómo puedes comprobar tú mismo los precios en la cadena.

Puntos clave

  • Las blockchains no pueden consultar datos externos por sí solas. Los oráculos los escriben en la cadena como transacciones normales.
  • Las fuentes de precios de Chainlink combinan a muchos operadores de nodos independientes, cada uno con varias fuentes de datos, y publican una mediana que se actualiza tras cierto movimiento del precio o cierto tiempo.
  • Fiarse del precio al contado de un solo exchange o pool es peligroso: un ataque con préstamo flash contra la plataforma de préstamos bZx obtuvo en 2020 unos 635.000 dólares en una sola transacción.
  • Las aplicaciones de préstamos y trading usan los precios de los oráculos para valorar garantías y activar liquidaciones, y las más cuidadosas añaden sus propios controles.
  • Los precios en cadenas públicas son transparentes: cualquiera puede leer el último valor, cuándo se fijó y su historial.

El problema del oráculo

Cada nodo de una red blockchain vuelve a ejecutar cada transacción y debe llegar exactamente al mismo resultado. Así es como miles de desconocidos se ponen de acuerdo sobre los saldos sin confiar unos en otros. Si un contrato pudiera consultar una web, dos nodos podrían recibir respuestas distintas, o el mismo nodo otra diferente un minuto después, y el acuerdo se vendría abajo.

Por eso las blockchains alcanzan el consenso solo con datos guardados en la propia cadena. Alguien tiene que escribir allí los datos externos mediante una transacción, y ese alguien es un oráculo. Ahí está el problema del oráculo: un contrato es tan fiable como los datos con los que actúa, y depender de un único proveedor devuelve justo la confianza que las blockchains querían eliminar.

Cómo funciona una fuente de precios descentralizada

Las Chainlink Data Feeds están diseñadas para que ninguna parte decida el precio por sí sola. Chainlink describe tres capas de agregación. Primero, los agregadores de datos combinan los precios de muchos exchanges, los ponderan por volumen y descartan los valores atípicos. Después, cada operador de nodo consulta varios de esos agregadores y se queda con la mediana. Por último, la red combina las respuestas de muchos operadores independientes y vuelve a calcular la mediana.

Varios pilares esbeltos de distintos materiales que llevan luz hacia un pedestal central
Muchas fuentes independientes, una sola respuesta agregada

El trabajo pesado se hace fuera de la cadena, con un protocolo llamado Offchain Reporting (OCR). Los nodos intercambian observaciones firmadas en una red entre pares y un nodo líder las reúne en un informe. Cuando un quórum de nodos lo ha firmado, una sola transacción lo lleva a la cadena, donde el contrato agregador comprueba las firmas y guarda la mediana con una marca de tiempo y un número de ronda.

Pasos: Los nodos recogen precios → Comparten observaciones → Un quórum firma un informe → Un nodo lo envía → El contrato guarda la respuesta → Las apps leen el último valor1Losnodosrecogenpreciosde variosagregadores dedatos2Compartenobservacionesfuera de lacadena,entre pares3Unquórumfirma uninformecon lamediana4Un nodolo envíaen una solatransacción5Elcontratoguarda larespuestacon marcade tiempoe ID deronda6Las appsleen elúltimovalora través deuncontratoproxyPasos: Los nodos recogen precios → Comparten observaciones → Un quórum firma un informe → Un nodo lo envía → El contrato guarda la respuesta → Las apps leen el último valor1Los nodos recogen preciosde varios agregadores de datos2Comparten observacionesfuera de la cadena, entre pares3Un quórum firma un informecon la mediana4Un nodo lo envíaen una sola transacción5El contrato guarda la respuestacon marca de tiempo e ID de ronda6Las apps leen el último valora través de un contrato proxy
  1. Los nodos recogen precios (de varios agregadores de datos)
  2. Comparten observaciones (fuera de la cadena, entre pares)
  3. Un quórum firma un informe (con la mediana)
  4. Un nodo lo envía (en una sola transacción)
  5. El contrato guarda la respuesta (con marca de tiempo e ID de ronda)
  6. Las apps leen el último valor (a través de un contrato proxy)

Escribir en la cadena cada mínimo movimiento del precio sería tirar comisiones, así que una fuente se actualiza cuando salta uno de dos disparadores. El umbral de desviación inicia una ronda nueva cuando el precio fuera de la cadena se aleja del valor registrado en ella más de cierto porcentaje. El heartbeat (latido) la inicia cuando ha pasado cierto tiempo desde la última actualización, aunque el precio apenas se haya movido.

Cifras clave31nodos de oráculo detrás deETH/USD en Ethereum0,5 %movimiento que dispara unaactualización1 horamáximo tiempo entreactualizacionesCifras clave31nodos de oráculo detrás de ETH/USD enEthereum0,5 %movimiento que dispara una actualización1 horamáximo tiempo entre actualizaciones
  • 31: nodos de oráculo detrás de ETH/USD en Ethereum
  • 0,5 %: movimiento que dispara una actualización
  • 1 hora: máximo tiempo entre actualizaciones
Fuente en EthereumUmbral de desviaciónHeartbeat
ETH/USD0,5 %1 hora
BTC/USD0,5 %1 hora
USDC/USD0,25 %23 horas
USDT/USD0,25 %24 horas
TAO/USD2 %24 horas

Son los parámetros que Chainlink publica a 29 de septiembre de 2026. Una fuente tranquila de una stablecoin puede actualizarse una vez al día, mientras que ETH/USD puede hacerlo muchas veces por hora cuando el mercado se agita.

Por qué es peligroso el precio de un solo mercado

La forma más sencilla de llevar un precio a la cadena es leerlo en un único sitio: un exchange o un pool de un exchange descentralizado (DEX). Pero la solidez de un precio depende del dinero necesario para moverlo, y en un mercado poco líquido puede ser sorprendentemente poco.

Los préstamos flash lo empeoran. Un préstamo flash se pide y se devuelve dentro de la misma transacción; si no se devuelve, toda la transacción se deshace. Así, cualquiera puede manejar millones durante un instante, sin garantías, siempre que el ataque se pague solo de una vez.

El ataque a bZx, febrero de 2020

El 18 de febrero de 2020, un atacante usó justo esa táctica contra bZx, una plataforma de préstamos y trading con margen en Ethereum. bZx fijaba el precio de la stablecoin sUSD a partir de dos pequeños mercados en la cadena, un pool de Uniswap y una reserva de Kyber. Investigadores del Imperial College de Londres reconstruyeron después los pasos:

Pasos: Pide 7.500 ETH → Compra sUSD en dos pools pequeños → Compra más sUSD a precio de mercado → Deja 1,1 millones de sUSD en bZx → Pide 6.799 ETH y devuelve el préstamo1Pide 7.500ETHpréstamo flash,una transacción2Compra sUSDen dos poolspequeñosallí su precio sedispara3Compra mássUSD a preciode mercadounos 944.000en Synthetix4Deja 1,1millones desUSD en bZxvalorados alprecio inflado5Pide 6.799ETH ydevuelve elpréstamole quedan unos2.381 ETHPasos: Pide 7.500 ETH → Compra sUSD en dos pools pequeños → Compra más sUSD a precio de mercado → Deja 1,1 millones de sUSD en bZx → Pide 6.799 ETH y devuelve el préstamo1Pide 7.500 ETHpréstamo flash, una transacción2Compra sUSD en dos poolspequeñosallí su precio se dispara3Compra más sUSD a precio demercadounos 944.000 en Synthetix4Deja 1,1 millones de sUSD en bZxvalorados al precio inflado5Pide 6.799 ETH y devuelve elpréstamole quedan unos 2.381 ETH
  1. Pide 7.500 ETH (préstamo flash, una transacción)
  2. Compra sUSD en dos pools pequeños (allí su precio se dispara)
  3. Compra más sUSD a precio de mercado (unos 944.000 en Synthetix)
  4. Deja 1,1 millones de sUSD en bZx (valorados al precio inflado)
  5. Pide 6.799 ETH y devuelve el préstamo (le quedan unos 2.381 ETH)

En esos dos pools, el sUSD llegó a costar unas 2,5 veces más que en el resto del mercado, así que bZx prestó mucho más ETH de lo que valía la garantía. El atacante se quedó con 2.381,41 ETH, unos 634.900 dólares de entonces, pagando una comisión de 118,79 dólares. La pérdida recayó en los prestamistas de bZx.

Promediar no lo arregla todo

Combinar fuentes no sirve de nada si todas miran el mismo mercado poco líquido. Según una demanda de la CFTC, el regulador estadounidense de derivados, en octubre de 2022 un operador de Mango Markets, una plataforma cripto de trading y préstamos, compró grandes cantidades del token MNGO en los tres exchanges que alimentaban el oráculo de la plataforma. El precio de MNGO en el oráculo se multiplicó por más de 13 en 30 minutos, y el operador usó sus posiciones infladas como garantía para retirar más de 110 millones de dólares.

La propia documentación de Chainlink advierte de que los activos con poca negociación pueden manipularse con ataques financiados con préstamos flash o por parte de actores con mucho capital.

Advertencia

Un precio es tan sólido como el dinero necesario para moverlo. Si una aplicación valora las garantías con un solo exchange, un solo pool o un token poco negociado, una operación lo bastante grande (o un préstamo flash) puede llevar ese precio casi a cualquier nivel durante un momento.

Cómo usan las fuentes de precios las aplicaciones de préstamos y trading

En una plataforma de préstamos depositas una garantía y pides prestado contra ella, y la plataforma necesita el precio de cada activo para saber si tu préstamo sigue cubierto. Aave lo expresa con el factor de salud: el valor de tu garantía, multiplicado por un factor de seguridad llamado umbral de liquidación, dividido entre lo que debes. Si baja de 1, otros pueden pagar parte de tu deuda y quedarse con parte de tu garantía más una bonificación: eso es una liquidación. El oráculo de precios de Aave V3 toma sus precios de los agregadores de Chainlink y recurre a un oráculo de respaldo si una fuente devuelve cero o menos.

Un precio erróneo sale caro en ambos sentidos. Si es demasiado bajo, se liquidan préstamos sanos. Si es demasiado alto, los prestatarios pueden llevarse más de lo que vale su garantía, como comprobaron los prestamistas de bZx.

Las plataformas de trading con apalancamiento necesitan precios más rápidos que un heartbeat. Muchas usan fuentes de tipo pull, como Chainlink Data Streams, que entregan precios en menos de un segundo en forma de informes firmados que se verifican en la cadena en la misma transacción que los usa.

Las aplicaciones cuidadosas añaden sus propios controles. Chainlink recomienda límites de precio, cortacircuitos y comprobaciones de actualidad. El protocolo Sky, antes MakerDAO, pasa los precios por un Oracle Security Module que retiene cada valor nuevo, por defecto durante una hora, para que haya tiempo de reaccionar ante un ataque al oráculo.

Los precios en la cadena están a la vista de todos

Como las fuentes viven en blockchains públicas, cada actualización es una transacción que cualquiera puede inspeccionar. Puedes leer la última respuesta de una fuente, cuándo se actualizó y su número de ronda, repasar rondas anteriores y ver qué nodos la sirven. Cuando una plataforma de préstamos liquida a alguien, el precio que usó queda registrado.

Por ejemplo, la fuente ETH/USD de Ethereum está detrás de la dirección proxy 0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419. Si llamas a latestRoundData en un explorador de bloques, obtienes el precio, con ocho decimales, y la hora de la última actualización. nowcoin lee de la misma manera los precios que muestra, directamente de las fuentes de Chainlink en la cadena.

Esa transparencia tiene límites. Ves qué informó la red y cuándo, pero no todos los datos en bruto de los proveedores que hay detrás.

Otros diseños: Pyth y el TWAP de Uniswap

Las fuentes push de Chainlink son solo un diseño entre varios:

Mapa mental: Oráculos de preciosFuentes pushChainlinkData FeedsPor desviacióno heartbeatFuentes pullPythChainlinkData StreamsPromediosen la cadenaTWAP deUniswap v2Observacionesde Uniswap v3Precio alcontado únicoUn exchangeo un poolFácil de manipularOráculosde preciosMapa mental: Oráculos de preciosOráculos de preciosFuentes pushChainlink Data FeedsPor desviación o heartbeatFuentes pullPythChainlink Data StreamsPromedios en la cadenaTWAP de Uniswap v2Observaciones de Uniswap v3Precio al contado únicoUn exchange o un poolFácil de manipular

Mapa mental: Oráculos de precios

  • Fuentes push
    • Chainlink Data Feeds
    • Por desviación o heartbeat
  • Fuentes pull
    • Pyth
    • Chainlink Data Streams
  • Promedios en la cadena
    • TWAP de Uniswap v2
    • Observaciones de Uniswap v3
  • Precio al contado único
    • Un exchange o un pool
    • Fácil de manipular

Pyth apuesta por el modelo pull. Sus precios proceden de más de 120 proveedores de primera mano, entre ellos exchanges, bancos, firmas de trading y creadores de mercado, y se actualizan cada 400 milisegundos. Cada precio incluye un intervalo de confianza, un margen que se ensancha cuando los proveedores discrepan. En su modelo pull habitual, un precio solo llega a una blockchain cuando alguien lo necesita: cualquiera puede enviar una actualización firmada al contrato de Pyth, que la verifica, normalmente en la misma transacción que usa el precio.

Uniswap ofrece otra herramienta, el precio medio ponderado por tiempo o TWAP. Un pool de Uniswap v2 lleva un total acumulado de su precio, medido al inicio de cada bloque y ponderado por el tiempo que duró cada precio, y comparar ese total en dos momentos da el promedio del periodo. Para mover un 5 % un TWAP de una hora, un atacante tendría que mantener el pool un 5 % fuera del mercado durante aproximadamente una hora, pagando todo el rato a los arbitrajistas. Los pools de Uniswap v3 pueden guardar hasta 65.535 observaciones, mientras que v4 no trae un oráculo integrado.

DiseñoCómo funcionaPrincipal inconveniente
Fuente pushLos nodos publican una mediana por desviación o heartbeatNo refleja movimientos menores que el umbral
Fuente pullLos precios firmados se verifican al usarlosLa app debe traer las actualizaciones y vigilar su antigüedad
TWAPPromedio en el tiempo de los precios de un poolVa por detrás en mercados rápidos; tan seguro como profundo sea el pool
Precio al contado únicoUn exchange o pool, leído directamenteBarato de manipular

Preguntas frecuentes

¿Por qué un contrato inteligente no puede consultar sin más la web de un exchange?

Porque cada nodo tiene que volver a ejecutar el contrato y obtener el mismo resultado. Los datos web cambian cada segundo y pueden variar según el lugar, así que los nodos no coincidirían. Un oráculo convierte los datos externos en una transacción que todos los nodos ven igual.

Cuando el precio supera el umbral de desviación de la fuente o vence el heartbeat, lo que ocurra antes. Para ETH/USD en Ethereum, eso significa un movimiento del 0,5 % o una hora.

¿Puede equivocarse un oráculo?

Sí. Los mercados de fondo pueden manipularse, los nodos pueden fallar y las fuentes pueden retirarse: según Chainlink, una fuente dada de baja devuelve cero o ningún dato. Por eso las aplicaciones añaden comprobaciones de actualidad, límites de precio y alternativas de respaldo.

¿Qué diferencia hay entre los oráculos push y pull?

Un oráculo push escribe los precios en la cadena según su propio calendario, así que el último valor siempre está disponible. Un oráculo pull guarda precios firmados fuera de la cadena hasta que una aplicación o un usuario envía uno, normalmente en la misma transacción que lo necesita.

Fuentes

Solo con fines informativos; no es asesoramiento financiero, legal ni fiscal.

Un monedero universal para tus criptomonedas.

Guarda Bitcoin, Ethereum, USDT, USDC y más en una sola cuenta, con precios leídos en cadena y cada comisión a la vista antes de confirmar.

Crear cuenta

Un monedero universal para tus criptomonedas.

nowcoin es un monedero custodiado: guardamos las monedas que respaldan tu saldo. Los criptoactivos no son depósitos bancarios y no están cubiertos por ningún fondo de garantía de depósitos. Su valor puede bajar además de subir.

© 2026 nowcoin