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

# Oracle

> Wie ein Indexpreis aus Handelsplatzdaten entsteht, von Validatoren zertifiziert und in dem Block festgeschrieben wird, der ihn verbraucht.

Intention nutzt kein externes Oracle-Komitee. **Das Validatorenset ist das Oracle.** Jeder Validator erzeugt seine eigene Sicht auf den Preis jedes Instruments, signiert sie, und das Netzwerk zertifiziert ein Ergebnis in demselben Konsensereignis, das die Transaktionen festschreibt, die dagegen abgerechnet werden.

Es sind zwei getrennte Schritte, und sie beantworten unterschiedliche Fragen. Die Aggregation fragt, *was dieses Instrument wert ist*, und läuft je Validator abseits des Konsenspfads. Die Zertifizierung fragt, *worauf sich das Netzwerk in dieser Runde als Wert einigt*, und läuft innerhalb des Konsenses.

<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">Je Validator – abseits des Konsenspfads</span></div>
    <div className="dg-band" style={{left:"52.7778%",top:"8.2278%",width:"47.2222%",height:"62.0253%"}}><span className="dg-cap">Im Konsens</span></div>
    <div className="dg-b" style={{left:"2.2222%",top:"15.8228%",width:"44.4444%",height:"11.3924%"}}><span className="dg-t">Handelsplätze</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">Oracle-Sidecar</span><span className="dg-s">je Validator</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">Validator prüft und signiert</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 zwischen Validatoren</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">Zertifiziert je Epoche und Runde</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">Im Block mitgeführt</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 – Mark-Preis · Margin · Liquidation · Funding</span><span className="dg-s">rechnet gegen die Preise desselben Konsensereignisses ab</span></div>
  </div>
</div>

<h2 id="producing-an-index-price">
  Einen Indexpreis erzeugen
</h2>

Jeder Validator betreibt seinen eigenen Oracle-Sidecar, der Daten von mehreren Handelsplätzen sammelt und sie auf einen Indexpreis je Instrument reduziert. Diese Reduktion ist bewusst kein einfacher Durchschnitt – einen Durchschnitt verschiebt eine einzige schlechte Quelle mühelos.

<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">Filter</span><span className="dg-s">nicht-endliche, fehlerhafte Werte</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">Median</span><span className="dg-s">über die Quellen</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">Kappen</span><span className="dg-s">jede Quelle auf Median ± Band</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">Gewichten</span><span className="dg-s">nach Spread und Stabilität</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">Deckeln</span><span className="dg-s">nach Quellenstufe</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">Indexpreis</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">Die Reihenfolge zählt</span><span className="dg-s">Gefiltert wird zuerst, weil ein einziger unendlicher Wert in Median oder gewichteter Summe alles danach verseucht. Kappen statt Verwerfen zählt jede Quelle weiter und begrenzt zugleich, wie weit eine einzelne ziehen kann.</span></div>
    <div className="dg-free" style={{left:"0.0000%",top:"0.0000%",width:"100.0000%"}}><div className="dg-n">Kein einfacher Durchschnitt – den verschiebt eine schlechte Quelle mühelos</div></div>
  </div>
</div>

**Filtern.** Nicht-endliche und fehlerhafte Werte werden verworfen, bevor sie irgendetwas weiter hinten berühren können. Diese Reihenfolge zählt: Ein einziger unendlicher Wert, der es bis in einen Median oder eine gewichtete Summe schafft, verseucht das gesamte Ergebnis.

**Auf den Median kappen.** Über die Quellen wird ein Median gebildet, und danach wird jede Quelle auf ein Band um diesen Median gekappt. Das Band gilt je Instrument und ist dort am engsten, wo der Markt am tiefsten ist:

| Instrumentenklasse           | Band um den Median |
| ---------------------------- | ------------------ |
| Große Kryptowerte (BTC, ETH) | 1 %                |
| Stablecoins                  | 0,5 %              |
| Sonstige                     | 3 %                |

Eine Quelle, die außerhalb ihres Bandes quotiert, wird nicht verworfen – sie wird an den Rand des Bandes gezogen. Dieser Unterschied zählt: Verwerfen erlaubt es einem Angreifer, die Stichprobe zu verkleinern, während das Kappen jede Quelle weiterzählt und zugleich begrenzt, wie weit eine einzelne von ihnen ziehen kann.

**Nach Qualität gewichten, dann deckeln.** Die gekappten Quellen werden über einen gewichteten Mittelwert kombiniert, nicht gleichgewichtig. Das Gewicht steigt mit der Qualität der Quotierung – ein engerer Spread zählt mehr – und mit der Stabilität, gemessen am Vergleich des jüngsten Volumens mit einem längerfristigen Tagesdurchschnitt, sodass ein Handelsplatz aus einem ungewöhnlichen Volumensprung keinen Einfluss gewinnt.

Anschließend werden die Gewichte nach Quellenstufe gedeckelt, damit kein einzelner Handelsplatz das Ergebnis dominieren kann, wie gut seine Quotierungen auch aussehen:

| Stufe                     | Gewichtsobergrenze |
| ------------------------- | ------------------ |
| Handelsplätze der Stufe 1 | 0,45               |
| Handelsplätze der Stufe 2 | 0,35               |

Instrumente, die gegen unterschiedliche Währungen quotiert werden, werden vor all dem in eine gemeinsame Quotierungswährung umgerechnet, damit der Median über vergleichbare Zahlen gebildet wird und nicht über verschiedene Währungen.

<Note>
  Jede Konstante hier ist eine Richtlinienentscheidung, keine Naturkonstante. Abweichungsbänder, Stufenzuordnungen und Gewichtsobergrenzen sind Konfiguration, und sie sind die Stellschrauben, an denen gedreht wird, wenn sich das Verhalten eines Handelsplatzes ändert oder eine neue Quelle hinzukommt.
</Note>

<h2 id="certifying-it">
  Ihn zertifizieren
</h2>

Der Indexpreis, den ein Sidecar erzeugt, ist die Meinung eines einzelnen Validators. Erst im Konsens wird daraus ein Preis, gegen den das Netzwerk abrechnen kann.

Der Validator holt den Preis von seinem eigenen Sidecar und **prüft ihn, bevor er signiert** – einschließlich der Aktualität gegen eine konfigurierte Schwelle, sodass ein hängender Sidecar gar keine Einreichung erzeugt statt einer veralteten. Anschließend signiert er die Preisdaten und verteilt die signierte Einreichung per Gossip als Konsensnachricht an die anderen Validatoren.

Zertifizierte Preise werden je Epoche und Runde zusammengestellt und im Blockvorschlag mitgeführt. Dieselben Signaturen, die die Transaktionen des Blocks festschreiben, schreiben damit auch die Preise fest, gegen die diese Transaktionen abgerechnet wurden – es gibt keine separate Oracle-Transaktion und kein Zeitfenster zwischen der Veröffentlichung eines Preises und seiner Verwendung.

**Ein Validator kann ohne gültige Preisbeobachtungen für die Runde keinen Block vorschlagen.** Preisverfügbarkeit ist eine Voraussetzung der Blockproduktion und keine Eingabe, die die Ausführung vorzufinden hofft.

<h2 id="index-price-and-mark-price">
  Indexpreis und Mark-Preis
</h2>

Der zertifizierte Preis ist der **Indexpreis** – die Sicht des Netzwerks auf den externen Markt. Er ist nicht der Preis, zu dem Trades ausgeführt werden.

Der [Kernel](/de/protocol/architecture/kernel) leitet daraus einen **Mark-Preis** ab, geglättet und begrenzt, damit eine kurze Verwerfung im Index nicht in eine Liquidationskaskade umschlägt. Der Mark-Preis ist das, was Margin, Liquidation und Funding tatsächlich verwenden. Die Sicht aus der Handelsperspektive steht unter [Mark-Preis](/de/trading/mark-price) und [Indexpreis](/de/trading/index-price).

<h2 id="what-this-does-and-does-not-guarantee">
  Was das garantiert und was nicht
</h2>

Garantiert ist: Der Preis, gegen den eine Transaktion abgerechnet wurde, ist von einem Validatoren-Quorum in derselben Runde zertifiziert worden, die die Transaktion festgeschrieben hat – und kein Ausführungspfad hätte einen anderen lesen können.

Nicht garantiert ist, dass der Preis richtig war. Wenn die Handelsplätze, aus denen ein Index gebildet wird, selbst falsch liegen – durch eine koordinierte Bewegung über mehrere von ihnen hinweg oder durch eine marktweite Verwerfung –, begrenzen Kappung und Gewichtung zwar, wie weit eine einzelne Quelle das Ergebnis schieben kann, aber sie können keine Information herstellen, die der Markt nicht hatte.

<Warning>
  Der Preis ist die folgenreichste externe Eingabe des Handelssystems. Manipulationsresistenz ist hier eine Frage des Grades, keine binäre Eigenschaft. Was ungeschützt bleibt, steht unter [Risikohinweise](/de/protocol/security/risks).
</Warning>

<h2 id="where-to-go-next">
  Wie es weitergeht
</h2>

<CardGroup cols={2}>
  <Card title="IntentionBFT" href="/de/protocol/architecture/intention-bft">
    Wie die Zertifizierung an dieselben Signaturen gebunden wird, die den Block festschreiben.
  </Card>

  <Card title="Clearingstelle" href="/de/protocol/architecture/clearinghouse">
    Was Margin, Liquidation und Funding mit dem Preis machen.
  </Card>

  <Card title="Mark-Preis" href="/de/trading/mark-price">
    Wie aus dem Index die Zahl wird, die Positionen bewegt.
  </Card>

  <Card title="Risikohinweise" href="/de/protocol/security/risks">
    Wo Preisrisiko bleibt und was es kosten kann.
  </Card>
</CardGroup>
