Oracle-Problem

Was ist das Oracle-Problem?

David Eggert

24/02/24

Oracles (oder Orakel auf Deutsch) spielen eine wichtige Rolle in der Welt der Blockchain und Kryptowährungen. Hier erfährst du, was Oracles überhaupt sind, welche Probleme es dabei zu lösen gibt und wie Bitcoin das Oracle-Problem löst.

Das Wichtigste zusammengefasst:

  • Das Oracle-Problem beschreibt die Herausforderung, dass Blockchains externe Daten aus der realen Welt, sogenannte „Offchain-Daten“, nicht direkt selbst abrufen können, weil sie selbst isolierte Systeme sind.
  • Um externe Daten dennoch nutzen zu können, werden Oracles benötigt, die als Vermittler zwischen externen Quellen und der Blockchain fungieren.
  • Dies kann jedoch zu Sicherheitsproblemen und Abhängigkeiten von Dritten führen, wenn diese Daten von einer zentralen Quelle bereitgestellt werden und möglicherweise nicht vertrauenswürdig sind.
  • Gelöst wird das Problem dadurch, dass die Daten durch sogenannte „Notary“ auf Echtheit geprüft werden und diesen Beweis samt Daten an das Oracle sendet.
  • Bitcoin ist bewusst einfach gehalten und benötigt daher keine Oracles für einfache Transaktionen und den Betrieb der Blockchain.
  • Obwohl Bitcoin-Oracles in der Vergangenheit entwickelt wurden, hat die Dominanz von Ethereum als Smart-Contracts-Plattform diese Entwicklungen in den Hintergrund gedrängt.

Was sind überhaupt Oracles?

Zunächst einmal: Eine Blockchain ist eine Art Datenbank, die sich ständig selbst aktualisiert. Sie ist dezentralisiert, d.h. sie wird nicht von einer einzelnen Stelle kontrolliert, sondern von einem Netzwerk von Computern. Das macht sie besonders sicher und transparent. 

Aber was passiert, wenn die Blockchain Informationen benötigt, die nicht in der Blockchain selbst gespeichert sind? Etwa den aktuellen Kurs einer bestimmten Kryptowährung oder die Wetterdaten in einer bestimmten Stadt? 

Dafür gibt es sogenannte Oracles, die diese Daten abrufen und der Blockchain zur Verfügung stellt. Die Blockchain selbst kann jedoch nur einfache Transaktionen bearbeiten. [1]  Daher werden externe Daten meist von einem Smart Contract abgefragt, der auf einer Blockchain läuft.

Muss man wissen:

Ein Smart Contract ist im Prinzip Computercode, der vollkommen automatisch ausgeführt wird, sobald bestimmte Bedingungen erfüllt werden. Beispiel: Wenn der Kurs vom 10XDNA Fonds weniger als 30 % vom Allzeithoch im Minus ist, sende 420,69 Dogecoin von meinem Krypto-Wallet zur Kryptobörse Kraken.

Oracles sind also Schnittstellen, die einem Smart Contract auf einer Blockchain externe Informationen zur Verfügung stellen. Sie fungieren als Mittler zwischen der Blockchain und der realen Welt. 

Der Hash von Hallo Welt unterscheidet sich in fast allen Zeichen vom Hash von Hallo Welten.

Abbildung 1: Ein Oracle ist die Schnittstelle zwischen externen Daten (z.B. Kurse, Wetter und vieles mehr) und der Blockchain.

Der Name „Oracle“ (auf Deutsch: Orakel) kommt aus dem Lateinischen und bedeutet „Götterspruch“. In der Antike wurden Orakel befragt, um Ratschläge zu erhalten oder um die Zukunft vorherzusagen. In der Blockchain-Welt haben Oracles eine ähnliche Aufgabe: Sie liefern der Blockchain die Informationen, die sie benötigt, um Entscheidungen zu treffen.

Es gibt verschiedene Arten von Oracles. Einige Oracle liefern statische Daten, die sich nicht ändern, z.B. die Adresse eines Smart Contracts. Andere Oracle liefern dynamische Daten, die sich ständig ändern, z.B. den aktuellen Kurs einer Kryptowährung. 

Wie entsteht das Oracle-Problem?

Die Blockchain ist ein geschlossenes System. Betrügerische Datenmanipulation ist nahezu unmöglich, da Änderungen nur unter strengen Regeln stattfinden und sofort auffallen. Doch sobald diese sichere Umgebung verlassen wird und externe Daten, sogenannte „Offchain-Daten“, ins Spiel kommen, ändert sich das. 

Wie stellt man sicher, dass diese externen Daten vertrauenswürdig sind? Die Blockchain selbst kann die Quelle nicht validieren – sie ist perfekt darin, die eigenen Daten zu prüfen, aber blind für die Echtheit externer Daten.[2]

Daher ist sie auf Oracles angewiesen, Datenanbieter, die zur Schnittstelle zwischen Blockchain und externer Welt werden. 

Das Problem liegt auf der Hand: In einem System, das auf Dezentralität und Sicherheit ausgelegt ist, wird plötzlich eine Instanz eingeführt, die zur Schwachstelle werden kann. 

Ein Oracle, das manipuliert wird oder falsche Daten liefert, kann fatale Folgen haben:

  • Verfälschte Kurse auf dezentralen Börsen zerstören das Vertrauen in die Plattform
  • Manipulierte Smart Contracts ermöglichen Betrug und Diebstahl.
  • Unzuverlässige Informationen in dezentralen Anwendungen (dApps) verringern den Nutzen enorm.

Nehmen wir dezentrale Börsen auf Basis der Ethereum Blockchain. Smart Contracts automatisieren dort den Handel, aber wenn Kursdaten vom Oracle gefälscht werden, könnten sich Betrüger Vorteile verschaffen. Der ganze Aufwand der dezentralen Datenspeicherung wäre am Ende einfach nur komplett überflüssig.

Wie wird das Oracle-Problem gelöst?

Es sind einige Schritte notwendig, um sicherzustellen, dass die Oracle-Daten vertrauenswürdig sind. Fangen wir direkt mit dem ersten Schritt an:

  1. Die Blockchain ober genauer gesagt ein Smart Contract auf einer Blockchain benötigt Daten, um ausgeführt zu werden. Diese Anfrage stellt er dem Oracle.
  2. Sobald die Blockchain mithilfe eines Smart Contracts eine Anfrage an ein Oracle gestellt hat, versucht das Oracle die externen Daten von verschiedenen Quellen abzurufen. Das kann entweder eine direkte Schnittstelle zu einem Datenanbieter sein, das Abrufen von Daten anderer Blockchains oder Webservices.
  3. Die Daten werden dann aber nicht direkt an das Oracle zurückgesendet und von dort wieder zurück zur Blockchain, sondern zu einem Notary. Dieser ist dafür da, die Daten mithilfe von kryptografischen Nachweisen auf ihre Echtheit zu prüfen. Wie genau die Daten verifiziert werden, ist eine sehr komplexe Angelegenheit und würde hier den Rahmen sprengen. Wenn du mehr dazu erfahren möchtest, schau dir gern die Dokumentation von TLSNotary an. Das ist die am häufigsten verwendete Methode und kommt bei Ethereum zum Einsatz.[3]
  4. Der Notary sendet die Daten und den Beweis der Echtheit dann an das Oracle.
  5. Vom Oracle werden die Daten dann der Blockchain bzw. dem Smart Contract auf der Blockchain zur Verfügung gestellt.
Der Hash von Hallo Welt unterscheidet sich in fast allen Zeichen vom Hash von Hallo Welten.

Abbildung 2: Die notwendigen Schritte, um die von der Blockchain benötigten externen Daten vom Oracle zu bekommen. Dabei ruft das Oracle die Daten ab, die dann zu einem Notary gesendet werden, um die Echtheit digital zu beweisen. Dieser stellt die Daten selbst und den Beweis dem Oracle zur Verfügung.

Das Oracle-Problem bei Bitcoin

Bitcoin ist so designt, dass es keine Daten von außen braucht, um einfache Transaktionen zu erledigen und die Blockchain am Laufen zu halten. Anders als Ethereum und andere Blockchains, die mit Smart Contracts komplexe Anwendungen ermöglichen, ist Bitcoin bewusst einfach gehalten. 

Somit gibt es auf den ersten Blick gar kein Oracle-Problem bei Bitcoin. Möchte man aber komplexere Programme wie z.B. eine dezentrale Kryptobörse auf Bitcoin aufbauen, ist man jedoch wieder auf Oracles angewiesen. 

Bitcoin erfüllt sein ursprüngliches Versprechen, dass man Werte versenden und speichern kann, ohne Mittelsmann, dem man vertrauen müsste. Dafür benötigt man kein Oracle. Der Wert wird von der benötigten Energie für das Bitcoin-Mining erbracht und auch hier wird kein Oracle benötigt. 

Allerdings wird bei dieser Sichtweise eine Sache außer Acht gelassen:

Würden sich andere Blockchains wie Ethereum, Solana oder Polkadot auch auf die einfache Funktionsweise beschränken (also ohne Smart Contracts), dann hätten sie ja ebenso wie Bitcoin überhaupt erst kein Oracle-Problem zu lösen. Die anderen Blockchains sind ja erst aus der Notwendigkeit entstanden, komplexere Programme auf der Blockchain ausführen zu können. 

Vitalik Buterin, einer der Gründer von Ethereum, war lange Zeit selbst sehr aktiv in der Bitcoin-Szene und hatte vorgeschlagen, dass Bitcoin erweitert werden sollte, um Anwendungen darauf entwickeln zu können. Als er keine Mehrheit für seine Idee gewinnen konnte, startete er Ethereum.[4]

Was auch häufig bei der Bitcoin Oracle Diskussion vergessen wird: 

Es gab durchaus einige Versuche, komplexere Anwendungen auf Bitcoin einzuführen. Diese kamen bereits vom Bitcoin-Gründer Satoshi Nakamto selbst. Es war sogar die Rede von „Contracts“ und dem Aufbau eines Marktplatzes wie eBay auf Bitcoin.[5]

In dieser Zeit wurde intensiv an Oracles auf Bitcoin gearbeitet. Vieles wurde allerdings nur theoretisch entwickelt und nie praktisch implementiert wie z.B. die „Nakamoto Contracts“. Es gab jedoch einige Projekte wie z.B. Realtiy Keys oder Oraclize, die umgesetzt worden sind.[6]

Als jedoch ab 2015 Ethereum als Smart Contract Plattform immer mehr Aufmerksamkeit erlangte, ebbten die Bemühungen an Bitcoin Oracles immer mehr ab. Einige wechselten sogar komplett zu Ethereum. 

Quellen

1. Szabo, N. (1997). Formalizing and Securing Relationships on Public Networks. First Monday, 2(9).

2. Caldarelli, G. (2020). Understanding the Blockchain Oracle Problem: A Call for Action. Information, 11, 509.

3. Bashir, I. (2020). Mastering Blockchain: A Deep Dive Into Distributed Ledgers, Consensus Protocols, Smart Contracts, DApps, Cryptocurrencies, Ethereum, and More (3. Aufl.). Packt. ISBN 9781839213199.

4. Tapscott, D., Tapscott, A. (2016). The Blockchain Revolution: How the Technology Behind Bitcoin is Changing Money, Business, and the World. Portfolio. ISBN 9780670069972.

5. S. Nakamoto, “Re: 2 Open sourced my Java SPV impl | Satoshi’s Archive,” Bitcoin.com, Mar. 09, 2011.

6. Caldarelli, G. (2023). From Reality Keys to Oraclize. A Deep Dive into the History of Bitcoin Oracles. arXiv preprint arXiv:2302.07911.

Über den Autor

Hi, ich bin David und schreibe hier über meine eigenen Erfahrungen zum Thema Krypto, Blockchain und Bitcoin. Mehr erfährst du auf der „Über uns“-Seite.