> ## 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

> Como um preço do índice é produzido a partir de dados das plataformas, certificado pelos validadores e confirmado no bloco que o consome.

A Intention não usa um comité de oráculos externo. **O conjunto de validadores é o oráculo.** Cada validador produz a sua própria visão do preço de cada instrumento, assina-a, e a rede certifica um resultado no mesmo evento de consenso que confirma as transações liquidadas contra ele.

Há dois passos distintos e respondem a perguntas diferentes. A agregação pergunta *quanto vale este instrumento* e acontece por validador, fora do caminho do consenso. A certificação pergunta *quanto é que a rede concorda que ele valia nesta ronda* e acontece dentro do 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 — fora do caminho do 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 do consenso</span></div>
    <div className="dg-b" style={{left:"2.2222%",top:"15.8228%",width:"44.4444%",height:"11.3924%"}}><span className="dg-t">Plataformas de negociação</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">um 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">O validador valida e assina</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 e 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">Transportados no bloco</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 — preço de marcação · margem · liquidação · funding</span><span className="dg-s">liquida contra os preços confirmados no mesmo evento de consenso</span></div>
  </div>
</div>

<h2 id="producing-an-index-price">
  Produzir um preço do índice
</h2>

Cada validador corre o seu próprio sidecar de oráculo, que recolhe dados de várias plataformas de negociação e os reduz a um preço do índice por instrumento. A redução não é, deliberadamente, uma média simples — uma média é trivialmente deslocada por uma única fonte má.

<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 não finitos e 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 fontes</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">Limitar</span><span className="dg-s">cada fonte à 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 spread e estabilidade</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 peso</span><span className="dg-s">por escalão da fonte</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">Preço do í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">A ordem é deliberada</span><span className="dg-s">A filtragem vem primeiro porque um valor infinito que sobreviva até uma mediana ou uma soma ponderada contamina tudo o que vem depois. Limitar em vez de descartar mantém todas as fontes contadas e restringe até onde cada uma pode puxar.</span></div>
    <div className="dg-free" style={{left:"0.0000%",top:"0.0000%",width:"100.0000%"}}><div className="dg-n">Não é uma média simples — trivialmente deslocada por uma fonte má</div></div>
  </div>
</div>

**Filtrar.** Os valores não finitos e malformados são descartados antes de poderem tocar em seja o que for a jusante. Esta ordem importa: um único valor infinito que sobreviva até uma mediana ou uma soma ponderada contamina todo o resultado.

**Limitar à mediana.** É tirada uma mediana entre as fontes e cada fonte é depois limitada a uma banda em torno dela. A banda é por instrumento, mais apertada onde o mercado tem mais profundidade:

| Classe de instrumento           | Banda em torno da mediana |
| ------------------------------- | ------------------------- |
| Cripto de referência (BTC, ETH) | 1%                        |
| Stablecoins                     | 0,5%                      |
| Outros                          | 3%                        |

Uma fonte que cote fora da sua banda não é descartada — é puxada para o limite da banda. Essa distinção importa: descartar permite a um atacante encolher a amostra, enquanto limitar mantém todas as fontes contadas mas restringe até onde cada uma delas pode puxar.

**Ponderar pela qualidade e depois limitar.** As fontes limitadas são combinadas por média ponderada e não em pé de igualdade. O peso sobe com a qualidade da cotação — um spread mais apertado conta mais — e com a estabilidade, medida comparando o volume recente com uma média diária de prazo mais longo, para que uma plataforma com um pico de volume invulgar não ganhe influência com isso.

Os pesos são depois limitados por escalão da fonte, para que nenhuma plataforma isolada possa dominar o resultado por muito boas que as suas cotações pareçam:

| Escalão                  | Limite de peso |
| ------------------------ | -------------- |
| Plataformas de escalão 1 | 0,45           |
| Plataformas de escalão 2 | 0,35           |

Os instrumentos cotados de forma cruzada são convertidos para uma moeda de cotação comum antes de tudo isto, para que a mediana seja tirada sobre números comparáveis e não sobre denominações misturadas.

<Note>
  Cada constante aqui é uma decisão de política, não uma constante natural. As bandas de desvio, a atribuição de escalões e os limites de peso são configuração, e são as alavancas que se afinam quando o comportamento de uma plataforma muda ou se acrescenta uma fonte nova.
</Note>

<h2 id="certifying-it">
  Certificá-lo
</h2>

O preço do índice que um sidecar produz é a opinião de um validador. Para se tornar algo contra o qual a rede possa liquidar, tem de passar pelo consenso.

O validador vai buscar o preço ao seu próprio sidecar e **valida-o antes de assinar** — incluindo a atualidade face a um limiar configurado, para que um sidecar parado não produza submissão nenhuma em vez de produzir uma desatualizada. Assina depois os dados de preço e propaga por gossip a submissão assinada aos outros validadores, como mensagem da rede de consenso.

Os preços certificados são montados por epoch (época) e ronda e transportados na proposta de bloco. As assinaturas que confirmam as transações do bloco confirmam, portanto, também os preços contra os quais essas transações foram liquidadas — não há transação de oráculo separada, nem janela entre um preço ser publicado e ser usado.

**Um validador não pode propor um bloco sem observações de preço válidas para a ronda.** A disponibilidade de preços é uma pré-condição da produção de blocos, não uma entrada que a execução espera encontrar.

<h2 id="index-price-and-mark-price">
  Preço do índice e preço de marcação
</h2>

O preço certificado é o **preço do índice** — a visão que a rede tem do mercado externo. Não é o preço a que as transações executam.

O [kernel](/pt/protocol/architecture/kernel) deriva dele um **preço de marcação**, suavizado e limitado para que uma deslocação breve do índice não desencadeie uma cascata de liquidações. O preço de marcação é o que a margem, a liquidação e o funding realmente usam. Ver [Preço de marcação](/pt/trading/mark-price) e [Preço do índice](/pt/trading/index-price) para a perspetiva do lado da negociação.

<h2 id="what-this-does-and-does-not-guarantee">
  O que isto garante e o que não garante
</h2>

Garante que o preço contra o qual uma transação foi liquidada tinha sido certificado por um quórum de validadores na ronda que confirmou a transação, e que nenhum caminho de execução poderia ter lido outro.

Não garante que o preço estivesse certo. Se as plataformas a partir das quais o índice é construído estiverem elas próprias erradas — por um movimento coordenado entre várias delas ou por uma deslocação em todo o mercado —, a limitação e a ponderação restringem até onde uma única fonte pode empurrar o resultado, mas não conseguem fabricar informação que o mercado não tinha.

<Warning>
  O preço é a entrada externa com mais consequências para o sistema de negociação. A resistência à manipulação é aqui uma questão de grau, não uma propriedade binária. Ver [Advertências de risco](/pt/protocol/security/risks) para o que continua exposto.
</Warning>

<h2 id="where-to-go-next">
  Para onde ir a seguir
</h2>

<CardGroup cols={2}>
  <Card title="IntentionBFT" href="/pt/protocol/architecture/intention-bft">
    Como a certificação fica ligada às mesmas assinaturas que confirmam o bloco.
  </Card>

  <Card title="Câmara de compensação" href="/pt/protocol/architecture/clearinghouse">
    O que a margem, a liquidação e o funding fazem com o preço.
  </Card>

  <Card title="Preço de marcação" href="/pt/trading/mark-price">
    Como o índice se torna o número que move as posições.
  </Card>

  <Card title="Advertências de risco" href="/pt/protocol/security/risks">
    Onde o risco de preço permanece e quanto pode custar.
  </Card>
</CardGroup>
