> ## Documentation Index
> Fetch the complete documentation index at: https://docs.intention.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Oráculo

> Cómo se produce un precio índice a partir de los datos de los exchanges, cómo lo certifican los validadores y cómo se confirma en el bloque que lo consume.

Intention no usa un comité de oráculo externo. **El conjunto de validadores es el oráculo.** Cada validador produce su propia visión del precio de cada instrumento, la firma, y la red certifica un resultado en el mismo evento de consenso que confirma las transacciones que se compensan contra él.

Hay dos pasos distintos, y responden a preguntas distintas. La agregación pregunta *cuánto vale este instrumento* y ocurre en cada validador, fuera de la ruta del consenso. La certificación pregunta *cuánto acuerda la red que valía en esta ronda* y ocurre dentro del consenso.

<div className="dg" data-dg="oracle-path">
  <div className="dg-c" style={{aspectRatio:"720 / 316"}}>
    <svg className="dg-w" viewBox="0 0 720 316" aria-hidden="true">
      <path className="dg-wire" d="M 176.00 90.00 L 176.00 101.60" />

      <path className="dg-head" d="M 176.00 108.00 L 171.60 101.60 L 180.40 101.60 Z" />

      <path className="dg-wire" d="M 176.00 152.00 L 176.00 163.60" />

      <path className="dg-head" d="M 176.00 170.00 L 171.60 163.60 L 180.40 163.60 Z" />

      <path className="dg-wire" d="M 550.00 90.00 L 550.00 101.60" />

      <path className="dg-head" d="M 550.00 108.00 L 545.60 101.60 L 554.40 101.60 Z" />

      <path className="dg-wire" d="M 550.00 152.00 L 550.00 163.60" />

      <path className="dg-head" d="M 550.00 170.00 L 545.60 163.60 L 554.40 163.60 Z" />

      <path className="dg-wire dg--blue" d="M 341.00 130.00 L 384.60 130.00" />

      <path className="dg-head dg--blue" d="M 391.00 130.00 L 384.60 134.40 L 384.60 125.60 Z" />

      <path className="dg-wire dg--green" d="M 550.00 222.00 L 550.00 235.60" />

      <path className="dg-head dg--green" d="M 550.00 242.00 L 545.60 235.60 L 554.40 235.60 Z" />
    </svg>

    <div className="dg-band" style={{left:"0.0000%",top:"8.2278%",width:"48.8889%",height:"62.0253%"}}><span className="dg-cap">Por validador — fuera de la ruta del consenso</span></div>
    <div className="dg-band" style={{left:"52.7778%",top:"8.2278%",width:"47.2222%",height:"62.0253%"}}><span className="dg-cap">Dentro del consenso</span></div>
    <div className="dg-b" style={{left:"2.2222%",top:"15.8228%",width:"44.4444%",height:"11.3924%"}}><span className="dg-t">Exchanges</span></div>
    <div className="dg-b dg--sky" style={{left:"2.2222%",top:"35.4430%",width:"44.4444%",height:"11.3924%"}}><span className="dg-t">Sidecar de oráculo</span><span className="dg-s">uno por validador</span></div>
    <div className="dg-b dg--blue" style={{left:"2.2222%",top:"55.0633%",width:"44.4444%",height:"11.3924%"}}><span className="dg-t">El validador valida y firma</span></div>
    <div className="dg-b dg--blue" style={{left:"55.0000%",top:"15.8228%",width:"42.7778%",height:"11.3924%"}}><span className="dg-t">Gossip entre validadores</span></div>
    <div className="dg-b dg--green" style={{left:"55.0000%",top:"35.4430%",width:"42.7778%",height:"11.3924%"}}><span className="dg-t">Certificados por epoch y ronda</span></div>
    <div className="dg-b dg--green" style={{left:"55.0000%",top:"55.0633%",width:"42.7778%",height:"11.3924%"}}><span className="dg-t">Viajan en el bloque</span></div>
    <div className="dg-b dg--green dg-left" style={{left:"0.0000%",top:"77.8481%",width:"100.0000%",height:"17.7215%"}}><span className="dg-t">Kernel — precio de marca · margen · liquidación · financiación</span><span className="dg-s">compensa contra los precios confirmados en el mismo evento de consenso</span></div>
  </div>
</div>

<h2 id="producing-an-index-price">
  Producir un precio índice
</h2>

Cada validador ejecuta su propio sidecar de oráculo, que recoge datos de varios exchanges y los reduce a un único precio índice por instrumento. La reducción, deliberadamente, no es una media simple: a una media la mueve trivialmente una sola fuente defectuosa.

<div className="dg" data-dg="oracle-aggregate">
  <div className="dg-c" style={{aspectRatio:"720 / 236"}}>
    <svg className="dg-w" viewBox="0 0 720 236" aria-hidden="true">
      <path className="dg-wire" d="M 100.67 84.00 L 114.27 84.00" />

      <path className="dg-head" d="M 120.67 84.00 L 114.27 88.40 L 114.27 79.60 Z" />

      <path className="dg-wire" d="M 225.33 84.00 L 238.93 84.00" />

      <path className="dg-head" d="M 245.33 84.00 L 238.93 88.40 L 238.93 79.60 Z" />

      <path className="dg-wire" d="M 350.00 84.00 L 363.60 84.00" />

      <path className="dg-head" d="M 370.00 84.00 L 363.60 88.40 L 363.60 79.60 Z" />

      <path className="dg-wire" d="M 474.67 84.00 L 488.27 84.00" />

      <path className="dg-head" d="M 494.67 84.00 L 488.27 88.40 L 488.27 79.60 Z" />

      <path className="dg-wire" d="M 599.33 84.00 L 612.93 84.00" />

      <path className="dg-head" d="M 619.33 84.00 L 612.93 88.40 L 612.93 79.60 Z" />
    </svg>

    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"12.7119%",width:"13.4259%",height:"45.7627%"}}><span className="dg-t">Filtrar</span><span className="dg-s">valores no finitos y malformados</span></div>
    <div className="dg-b dg--sky" style={{left:"17.3148%",top:"12.7119%",width:"13.4259%",height:"45.7627%"}}><span className="dg-t">Mediana</span><span className="dg-s">entre fuentes</span></div>
    <div className="dg-b dg--sky" style={{left:"34.6296%",top:"12.7119%",width:"13.4259%",height:"45.7627%"}}><span className="dg-t">Acotar</span><span className="dg-s">cada fuente a mediana ± banda</span></div>
    <div className="dg-b dg--sky" style={{left:"51.9444%",top:"12.7119%",width:"13.4259%",height:"45.7627%"}}><span className="dg-t">Ponderar</span><span className="dg-s">por diferencial y estabilidad</span></div>
    <div className="dg-b dg--sky" style={{left:"69.2593%",top:"12.7119%",width:"13.4259%",height:"45.7627%"}}><span className="dg-t">Limitar</span><span className="dg-s">por nivel de exchange</span></div>
    <div className="dg-b dg--green" style={{left:"86.5741%",top:"12.7119%",width:"13.4259%",height:"45.7627%"}}><span className="dg-t">Precio índice</span></div>
    <div className="dg-b dg-dashed dg-left" style={{left:"0.0000%",top:"69.4915%",width:"100.0000%",height:"26.2712%"}}><span className="dg-t">El orden es el diseño</span><span className="dg-s">Filtrar va primero porque un único valor infinito que sobreviva hasta una mediana o una suma ponderada contamina todo lo que viene después. Acotar en lugar de descartar mantiene contadas todas las fuentes y limita cuánto puede tirar cada una.</span></div>
    <div className="dg-free" style={{left:"0.0000%",top:"0.0000%",width:"100.0000%"}}><div className="dg-n">No es una media simple — a una media la mueve una sola fuente defectuosa</div></div>
  </div>
</div>

**Filtrar.** Los valores no finitos y malformados se descartan antes de que puedan tocar nada aguas abajo. Este orden importa: un único valor infinito que sobreviva hasta una mediana o una suma ponderada contamina el resultado entero.

**Acotar a la mediana.** Se toma una mediana entre las fuentes y después se acota cada fuente dentro de una banda alrededor de ella. La banda es por instrumento, y es más estrecha allí donde el mercado tiene más profundidad:

| Clase de instrumento          | Banda alrededor de la mediana |
| ----------------------------- | ----------------------------- |
| Cripto principales (BTC, ETH) | 1%                            |
| Stablecoins                   | 0.5%                          |
| Otros                         | 3%                            |

Una fuente que cotiza fuera de su banda no se descarta: se desplaza hasta el borde de la banda. Esa distinción importa: descartar permite a un atacante encoger la muestra, mientras que acotar mantiene todas las fuentes contadas pero limita cuánto puede tirar cualquiera de ellas.

**Ponderar por calidad y después limitar.** Las fuentes acotadas se combinan mediante una media ponderada, no por igual. El peso sube con la calidad de la cotización (un diferencial más estrecho cuenta más) y con la estabilidad, medida comparando el volumen reciente con una media diaria de más largo plazo, de forma que un exchange con un pico de volumen inusual no gane influencia por ello.

Después los pesos se limitan por el nivel de la fuente, de modo que ningún exchange por sí solo pueda dominar el resultado por muy buenas que parezcan sus cotizaciones:

| Nivel                | Límite de peso |
| -------------------- | -------------- |
| Exchanges de nivel 1 | 0.45           |
| Exchanges de nivel 2 | 0.35           |

Los instrumentos cotizados de forma cruzada se convierten a una moneda de cotización común antes de todo esto, para que la mediana se tome sobre números comparables y no sobre denominaciones mezcladas.

<Note>
  Cada constante de aquí es una decisión de política, no una constante natural. Las bandas de desviación, la asignación de niveles y los límites de peso son configuración, y son las palancas que se ajustan cuando cambia el comportamiento de un exchange o se añade una fuente nueva.
</Note>

<h2 id="certifying-it">
  Certificarlo
</h2>

El precio índice que produce un sidecar es la opinión de un solo validador. Convertirlo en algo contra lo que la red pueda compensar ocurre en el consenso.

El validador toma el precio de su propio sidecar y **lo valida antes de firmarlo**, incluida la frescura frente a un umbral configurado, de modo que un sidecar atascado no produce envío alguno en lugar de producir uno rancio. Después firma los datos de precio y difunde por gossip el envío firmado a los demás validadores como mensaje de la red de consenso.

Los precios certificados se ensamblan por epoch y ronda y viajan en la propuesta de bloque. Las firmas que confirman las transacciones del bloque confirman por tanto también los precios contra los que esas transacciones se compensaron: no hay transacción de oráculo aparte, ni ventana entre que un precio se publica y se usa.

**Un validador no puede proponer un bloque sin observaciones de precio válidas para la ronda.** La disponibilidad de precios es una precondición de la producción de bloques, no una entrada que la ejecución espera encontrar.

<h2 id="index-price-and-mark-price">
  Precio índice y precio de marca
</h2>

El precio certificado es el **precio índice**: la visión que la red tiene del mercado externo. No es el precio al que se ejecutan las operaciones.

El [kernel](/es/protocol/architecture/kernel) deriva de él un **precio de marca**, suavizado y acotado para que una dislocación breve del índice no se propague en cascada hasta provocar liquidaciones. El precio de marca es lo que usan de verdad el margen, la liquidación y la financiación. Consulta [Precio de marca](/es/trading/mark-price) y [Precio índice](/es/trading/index-price) para la visión desde el lado del trading.

<h2 id="what-this-does-and-does-not-guarantee">
  Qué garantiza esto y qué no
</h2>

Garantiza que el precio contra el que se compensó una transacción fue certificado por un quórum de validadores en la ronda que confirmó la transacción, y que ninguna ruta de ejecución pudo haber leído otro distinto.

No garantiza que el precio fuera correcto. Si los exchanges sobre los que se construye un índice están ellos mismos equivocados (por un movimiento coordinado entre varios de ellos o por una dislocación de todo el mercado), el acotado y la ponderación limitan cuánto puede empujar el resultado una sola fuente, pero no pueden fabricar información que el mercado no tenía.

<Warning>
  El precio es la entrada externa de mayor consecuencia del sistema de trading. Aquí la resistencia a la manipulación es una cuestión de grado, no una propiedad binaria. Consulta [Advertencias de riesgo](/es/protocol/security/risks) para ver qué queda expuesto.
</Warning>

<h2 id="where-to-go-next">
  Qué leer a continuación
</h2>

<CardGroup cols={2}>
  <Card title="IntentionBFT" href="/es/protocol/architecture/intention-bft">
    Cómo la certificación queda atada a las mismas firmas que confirman el bloque.
  </Card>

  <Card title="Cámara de compensación" href="/es/protocol/architecture/clearinghouse">
    Qué hacen con el precio el margen, la liquidación y la financiación.
  </Card>

  <Card title="Precio de marca" href="/es/trading/mark-price">
    Cómo el índice se convierte en la cifra que mueve las posiciones.
  </Card>

  <Card title="Advertencias de riesgo" href="/es/protocol/security/risks">
    Dónde sigue habiendo riesgo de precio y cuánto puede costar.
  </Card>
</CardGroup>
