Die meisten Blockchains verlassen sich auf Orakeldienste, um reale Daten in Smart Contracts zu holen. Das Internet Computer von @dfinity verfolgt einen anderen Ansatz: Es baut diese Vertrauensschicht direkt in seinen eigenen Konsensmechanismus ein.

So funktionieren HTTPS-Outcalls

Die Funktion ermöglicht es Smart Contracts, direkt Aufrufe an HTTP(S)-Server außerhalb der Blockchain zu tätigen und die Antwort in der weiteren Verarbeitung zu verwenden, ohne dass Orakel benötigt werden. Derzeit werden die Methoden GET, HEAD und POST für HTTP-Anfragen unterstützt.

Die Abläufe sind unkompliziert, aber bewusst gestaltet. Jeder Knoten im Subnetz, der den Smart Contract hostet, fordert separat dieselbe URL an. Mehr als zwei Drittel dieser Knoten müssen der Antwort zustimmen, bevor der Contract darauf reagieren kann – eine Schwelle, die die breitere Byzantine-Fault-Tolerance-Designlinie von ICP widerspiegelt. Das Protokoll ist so ausgelegt, dass es so lange funktioniert, wie weniger als ein Drittel der Knoten in einem Subnetz offline oder bösartig sind.

Bei einem standardmäßigen 13-Knoten-Subnetz bedeutet das: 13 identische Aufrufe treffen gleichzeitig auf die Ziel-API. Damit die Knoten eine Einigung darüber erzielen können, was sie erhalten, entfernt eine Transformationsfunktion auf Vertragsebene Teile einer Antwort, die sich naturgemäß zwischen Anfragen unterscheiden, etwa Zeitstempel, sodass ehrliche Knoten ein übereinstimmendes Ergebnis erzeugen können. Entwicklern wird außerdem empfohlen, Deduplication-Keys hinzuzufügen, um zu verhindern, dass Server dieselbe logische Anfrage mehrfach verarbeiten.

Warum das wichtig ist

Die Architektur bietet mehrere praktische Vorteile gegenüber dem traditionellen Orakelmodell. Die mit HTTPS-Outcalls erreichte Dezentralisierung ist das Beste, was erreichbar ist, da dabei nur die Subnetz-Replikas und der externe aufzurufende Dienst beteiligt sind – ohne dritte Parteien wie Orakeldienste. Nutzer erhalten typischerweise einen günstigeren Service, weil Orakel-Mittelsmänner wegfallen, und die Latenz direkter HTTP-Aufrufe ist geringer als wenn eine Anfrage über einen Orakel-Contract geleitet wird.

Anwendungsfälle sind unter anderem Echtzeit-Wechselkurse für Kryptowährungen, um DeFi-Anwendungen zu bauen, sowie das Abfragen von Wetterdaten für dezentrale Versicherungsprodukte. HTTPS-Outcalls ermöglichen außerdem das Senden von Push-Benachrichtigungen und E-Mails über herkömmliche Kommunikationskanäle sowie die Integration mit anderen Blockchains, indem mit HTTP-basierten Cloud-Knoten kommuniziert wird.

Für Entwickler besteht der Kompromiss darin, dass die externe API in der Lage sein muss, den Burst gleichzeitiger identischer Anfragen von jedem Knoten im Subnetz zu bewältigen. Eine korrekte Nutzung von Deduplication und Response-Transforms ist daher entscheidend für den zuverlässigen Betrieb.

Quellen:
Internet Computer: HTTPS-Outcalls, Funktionsweise (Offizielle Dokumente)
Internet Computer: So nutzt man HTTPS-Outcalls (Offizielle Dokumente)
FF News: ICP-Blockchain führt HTTPS-Outcalls ein, um das Wachstum von Web3 voranzutreiben