Oracle
Das Oracle ist die Schnittstelle zwischen der Blockchain und der analogen Welt. Durch das Oracle kommen Daten in die Blockchain und gegebenenfalls auch Daten von der Blockchain in die Außenwelt. Vereinfacht gesprochen übersetzt es die Informationen aus der Realität in eine Sprache, die die Blockchain versteht.
Ohne ein Oracle kann beispielsweise bei einem Smart Contract nicht festgestellt werden, ob die Bedingungen für den Vertrag eingetreten sind. Durch die Daten, die das Oracle empfängt und weitergibt, wird das Eintreten eines solchen Vertragsfalles ausgelöst. Solche Daten können beispielsweise eine Lieferung, eine Preisänderung, die Temperatur und vieles mehr sein. Erhält der Smart Contract einen bestimmten Wert vom Oracle, führt er Algorithmen aus und löst ein Ereignis auf der Blockchain aus.
Das Oracle ist eine Anwendung, die außerhalb der Blockchain liegt. Wäre es selbst eine Anwendung (dApp bzw. Smart Contract) auf der Blockchain, würden verschiedene Teilnehmer (Nodes) möglicherweise verschiedene Informationen erhalten. Beispielsweise würden bei einem Smart Contract, bei dem es um Versicherungen für Landwirte im Falle von schlechten Wetterbedingungen geht, verschiedene Teilnehmer der Blockchain zu verschiedenen Zeitpunkten bei einem Wetterdienst anfragen und verschiedene Ergebnisse erhalten – ein Konsens über eine richtige Version der Blockchain wäre so nicht mehr gewährleistet. Aus diesem Grund sind Anwendungen auf der Blockchain nicht dazu geeignet, externe Daten abzufragen.
Ein Oracle kann rein softwarebasiert sein und Daten beispielsweise von Webanbietern abfragen, ebenso kann es mit einer Hardware verknüpft sein und beispielsweise mithilfe von Sensoren den Standort einer Ware oder die Temperatur messen und der Blockchain zur Verfügung stellen. Oracle können nicht nur Daten empfangen, sondern sie auch an Drittanbieter oder Geräte senden. Beispielsweise können sie den Zugang zu einer Ladesäule für Elektroautos freischalten, sobald eine Zahlung auf der Blockchain erfolgt ist.
Die Frage, wie externe Daten so in die Blockchain kommen, dass man davon ausgehen kann, dass sie richtig sind, wird Oracleproblem genannt. Das Oracle selbst kann im Gegensatz zur Blockchain nämlich nicht dezentral und mit Konsens-Algorithmus gesichert sein – es funktioniert genau wie andere zentrale Systeme und ist damit (auch unabsichtlich) manipulierbar. Da die Blockchain aber nicht veränderbar ist, können falsche Informationen, die vom Orakel kommen, nicht mehr korrigiert werden.