fbpx

Was sind Oracles auf der Blockchain?

Operationen, die auf der Blockchain ausgeführt werden, beispielsweise Smart-Contracts, werden durch das dezentrale Netzwerk an Teilnehmern geprüft. Die Informationen sind also verifizierbar und der Vorteil ensteht dadurch, dass man nur dem Netzwerk und nicht einzelnen Drittparteien vertraut. Dennoch kommt es oft vor, dass man Daten von außerhalb benötigt, die von Drittanbietern bereitgestellt werden – Wie funktioniert das auf der Blockchain?

Für die Lösung dieses Problems wurden sogenannte Oracles geschaffen. Oracles sind im Kontext von Blockchain eine Art von Agent, der Geschehnisse aus der Realwelt verifiziert und diese Smart-Contracts bereitstellt. Blockchains selbst können nicht auf Daten außerhalb ihres Netzwerks zugreifen – deshalb bedarf es dieser speziellen technischen Komponente, um externe Daten zu integrieren. Denn Smart-Contracts geben in der Regel nichts Anderes vor als Ablauffolgen: “Wenn Bedingung A eingetreten ist, wird Operation B ausgeführt”. Um die Bedingung zu prüfen, benötigen wir jedoch die Daten, die oft von außerhalb stammen. Als Beispiel kann man sich unter anderem Sensoren vorstellen, die in der Realwelt messen, welche Phänomene auftreten. Möchte man bspw. eine Versicherung über einen Smart-Contract umsetzen, die bei Eintreten von bestimmten Windstärken (vereinfacht) direkte Entschädigungen auszahlt, dann muss ein Oracle die Informationen über die Windstärke liefern.

Wie werden Oracles in Smart-Contracts integriert?

Das Hinzufügen eines Oracles geschieht über MultiSig-Contracts. Diese erfordern es, dass der Smart-Contract von mehreren Parteien unterzeichnet wird. Es wäre entsprechend definierbar, dass Person A und B einen Austausch abwickeln wollen – dieser soll jedoch nur möglich sein, wenn bestimmte Bedingungen erfüllt sind, dessen Daten das Oracle liefert. Auch wenn A und B den Smart-Contract ausführen, würde er nur dann ausgeführt, wenn auch die Bedingung erfüllt ist, die anhand der Daten des Oracles geprüft werden kann.

Welche Arten von Oracles gibt es?

Man kann die Komponenten in Smart-Contracts, die Realwelt-Daten liefern, wie folgt klassifizieren:

Software Oracles

Daten, die online verfügbar sind (z.B. Flugverspätungen und Temperaturen)

Hardware Oracles

Es werden Daten direkt aus der physischen Realwelt verarbeitet, zum Beispiel über RFID-Sensoren in einer Lieferkette. Die Schwierigkeit bei dieser Art von Datenlieferanten ist, die Informationen unter Wahrung der Datensicherheit zu übermitteln.

Inbound Oracles

Stellen dem Smart-Contract Informationen aus der Außenwelt zur Verfügung. Zum Beispiel könnte eine Kauf-Order ausgeführt werden, sobald der Euro-Kurs unter eine bestimmte Grenze fällt.

Outbound Oracles

Ermöglicht es Smart-Contracts, Daten auch nach außen zu senden, statt sie nur zu empfangen. So kann beispielsweise der Zugang zu einem Bereich gewährt werden, wenn eine Zahlung auf der Blockchain erfolgt ist.

Consensus Based Oracles

Es werden mehrere Oracles kombiniert, um sich nicht auf eine einzige externe Quelle verlassen zu müssen. Diese bilden dann einen Konsens, um Entscheidungen zu treffen. Zum Beispiel müssen per Defintion drei von fünf Oracles zustimmen, damit es zur Ausführung einer Operation kommt. Selbstverständlich ist es auch möglich, einzelne Oracles mit Scorings zu bewerten, sodass bestimmte Quellen eher bevorzugt werden, wenn sie verlässlicher erscheinen.

Die Sicherheitsproblematik hinter Oracles

Das Grundprinzip der Blockchain ist, dass durch die Involvierung i.d.R. vieler Parteien ein Konsens erzielt wird und es nicht länger nötig ist, einer einzelnen Partei zu vertrauen. Dies kann bei Oracles nicht von Natur aus gewährleistet werden: Schließlich handelt es sich dabei um den Zugriff auf Daten von zentralen Stellen wie einer Bank. Somit muss man diesen Parteien, auf die zugegriffen wird, nach wie vor vertrauen.

Unternehmen wie Oraclize möchten sich dieser Herausforderung stellen und arbeiten an Technologien, die für eine höhere Sicherheit bei der Verwendung von Oracles sorgen und diese Informationen technisch überprüfen lassen.