Die inhärente Unfähigkeit von Blockchains, sich mit der realen Welt zu verbinden schränkt ihre Nutzung stark ein. Oracles können eine Lösung bieten, indem sie als Middleware für ihre Verbindung zur Welt fungieren. Das "Oracle Problem" wird ein zentraler Teil der Analyse sein, sowie die führenden Projekte.
Wir stellen fest, dass Oracles in dezentralen Anwendungen allgegenwärtig sind und in allen wichtigen Themen und Implementierungen der Blockchain-Technologie wie dezentrale Finanzwelt (DeFi), Interoperabilität und Lieferketten zum Einsatz kommen. Wir decken auch wichtige Oracle-Projekte ab, die das wachsende Ökosystem dezentraler Anwendungen heute ermöglichen.
Blockchains benötigen externe Informationen
Eine Blockchain kann nur die Informationen lesen, die auf ihr selbst vorhanden sind. Sie kann nicht auf Informationen ausserhalb von ihr oder auf Metadaten über sich selbst zugreifen. Blockchains funktionieren wie ein Computer, der nicht mit dem Internet verbunden ist und nur die auf ihm vorhandenen Daten lesen kann. Diese geschlossene Architektur minimiert Schwachstellen und gewährleistet die Sicherheit der Blockchain, schränkt aber auch ihre Nutzung ein.
Für Blockchains, die nur zur Abrechnung von Werten verwendet werden (wie Bitcoin, Litecoin, Ripple) ist diese Einschränkung kein Problem. Für Blockchains, die für die Ausführung von Smart Contracts und Anwendungen entwickelt wurden (wie Cardano, Ethereum und Polkadot, um nur drei zu nennen) ist dies eine ernsthafte Einschränkung. Die Fähigkeit, mit der Aussenwelt zu interagieren und Informationen zu nutzen, ist der Schlüssel, um das ganze Potenzial dezentraler Anwendungen zu entfalten. Ohne sie werden alle dezentralen Anwendungen (dApps) nur auf Informationen beschränkt sein, die auf der eigenen Blockchain verfügbar sind.
Betrachten Sie zum Beispiel den Fall eines Prognosemarktes dafür, ob der Preis von ETH zu irgendeinem Zeitpunkt im Jahr 2021 über $5'000 steigen wird oder nicht. Keine Information auf der Ethereum Blockchain zeichnet den ETH-Preis in USD auf, so dass der Prognosemarkt nicht in der Lage wäre, diese Bedingung zu überprüfen.
Abbildung 1: Verschiedene Ethereum Nodes, die unterschiedliche Zufallszahlen ermitteln
Smart Contracts werden auf jedem Node separat und unabhängig voneinander ausgeführt. Bei einer Anwendung, die mit Zufallszahlen arbeitet, kann somit jeder Node eine andere Zufallszahl ermitteln und ein anderes Ergebnis erhalten (siehe Abbildung 1). Mehrere Ergebnisse würden den Block daran hindern, seine Endgültigkeit zu erreichen, da kein Konsens erzielt werden kann. Ausserdem wird dadurch die deterministische Qualität von Blockchains gebrochen - die Fähigkeit, alle Transaktionen zu wiederholen und zum gleichen Ergebnis zu kommen.
Was ist ein Oracle?
Oracles bieten eine Lösung für die oben genannten Probleme. Sie bringen Off-Chain-Daten (ausserhalb der Blockchain) auf die Blockchain, damit verschiedene Anwendungen und Smart Contracts darauf zugreifen können. Oracles verbinden Blockchains mit der realen Welt, dem Internet und untereinander.
In einer Blockchain-Welt mit mehreren Plattformen werden eine oder mehrere dezentrale Oracle-Lösungen die Blockchains mit dem Internet und untereinander verbinden. Dies ermöglicht den Austausch von Informationen und den Zugang zu diesen durch eine Vielzahl von Anwendungen. Wenn Blockchains Computer wären, wären Oracles die Modems, die ihnen die Interaktion mit dem Internet und untereinander ermöglichen (siehe Abbildung 2).
Oracles helfen auch bei der Lösung von Problemen wie dem oben erwähnten Zufallszahlenproblem. Anstatt dass die rechnenden Nodes separat Zufallszahlen generieren, führt das Oracle die Zufallszahlensimulation durch und veröffentlicht sie auf der Blockchain. Die rechnenden Nodes verwenden diese veröffentlichte Zahl, um das gleiche Ergebnis zu erzielen. Auf diese Weise wird die Blockfinalität erreicht und die deterministische Natur der Blockchain bleibt erhalten.
Abbildung 2: Ein Oracle, das Blockchains mit dem Web und untereinander verbindet
Es gibt zwei grobe Arten von Oracle Blockchains:
- On-Chain-Oracles fungieren als Brücken zwischen Blockchains und ermöglichen es, dass Blockchain-Informationen von anderen Blockchains gelesen und verwendet werden können. Ein Aggregator einer dezentralen Multi-Chain-Börse (DEX) benötigt zum Beispiel Preisfeeds von den dezentralen Börsen, die auf Ethereum, Cardano und anderen Blockchains laufen, um den besten verfügbaren Preis zu ermitteln. Zu diesem Zweck kann ein On-Chain-Oracle die DEXes auf Ethereum, Cardano und anderen durchlaufen, um den besten Preis für den Aggregator zu finden.Ein On-Chain-Oracle kann auch eine dApp sein, die Oracle-Dienste für eine andere dApp bereitstellt. Zum Beispiel kennt Uniswap (ein dezentrales Protokoll für automatisiertes Market Making) den Preis zwischen zwei beliebigen Assets, über seinen Liquiditätspool. Alle dApps, die die Preisbeziehung zwischen den beiden Assets benötigen, können diese Daten nutzen.
- Off-Chain-Oracles fungieren als Middleware, die Blockchains mit der Nicht-Blockchain-Welt verbindet. Nehmen wir zum Beispiel an, der Versandweg eines Produkts wird in einer Blockchain aufgezeichnet. Hier verbindet sich das Off-Chain-Protokoll mit den Sensoren, die den NFC-Tag (Near Field Communication) des Produkts über seine verschiedenen Stationen auslesen. Diese Daten werden dann an die Blockchain übermittelt, wo sie aufgezeichnet werden.
Sie können auch auf andere Weise klassifiziert werden:
- Inbound vs. Outbound Oracle - Inbound Oracles übertragen Informationen von ausserhalb der Blockchain auf die Blockchain. Ein Outbound Oracle macht das Gegenteil, es überträgt Daten von der Blockchain nach aussen.
- Software vs. Hardware vs. Mensch - Software Oracles ziehen Daten aus dem Internet, anderen Blockchains und dApps, APIs und so weiter. Ein Hardware Oracle kann ein Internet of Things (IoT) Gerät anschliessen, das Daten aus der realen Welt an die Blockchain meldet. Auch ein Mensch kann als Oracle fungieren, wie im Fall von Augurs Prognosemarkt. Dort kann ein Nutzer darauf wetten, dass ein bestimmtes Ergebnis eintritt, indem er sein Vermögen darauf setzt.
Das "Oracle Problem"
Dezentralisierung ist eine der zentralen Philosophien von öffentlichen Blockchains, so unterliegen sie auch nicht dem Risiko eines einzelnen Angriffspunkts. Die Verwendung eines zentralisierten Oracles zur Dateneinspeisung untergräbt den Zweck einer dezentralisierten Blockchain. Ein böswilliger Akteur muss die Nodes einer Blockchain nicht angreifen, wenn er das Oracle manipulieren kann, das zur Eingabe falscher Daten in die Blockchain verwendet wird. Um mit dem vorherigen Beispiel fortzufahren: Ein böswilliger Akteur, der das Oracle kontrolliert, hat eine Wette abgeschlossen, dass der Preis von ETH im Jahr 2021 unter $5'000 bleiben wird. So wird er es niemals zulassen, dass das Oracle einen höheren Preis als $5'000 an die Blockchain sendet, damit der Smart Contract korrekt ausgeführt werden kann.
Ein böswilliger Akteur ist nicht notwendig, damit zentralisierte Oracles ihre Arbeit nicht korrekt ausführen. Wir haben gesehen, dass Kursdaten aus einer Quelle von einem Flash-Crash betroffen sein können (siehe hier), was zu einem Kaskadeneffekt führt, wenn weitere Anwendungen auf diese Daten zurückgreifen.
Um das Problem zu entschärfen, fassen dezentrale Oracle-Lösungen Daten aus mehreren Quellen zusammen und verwenden einen Konsensmechanismus, um das Risiko von Falschmeldungen zu minimieren. Die Betreiber, die den Aggregationsalgorithmus mit den Daten füttern, erhalten einen Anreiz, korrekte Informationen zu melden und werden für falsche Informationen bestraft. Für jede korrekte Datenmeldung überträgt der Vertrag bzw. der Benutzer, der die Daten anfordert, einen gewissen Wert an das Protokoll. Dieses teilt den Wert unter den Betreibern auf, die die Daten geliefert haben.
Die Betreiber staken einen bestimmten Wert im Protokoll; wenn ein Konsens erreicht wird, bei dem die Daten eines Betreibers abgelehnt werden, wird ein vorher festgelegter Wert vom Anteil des Betreibers gestrichen. Wie beim Blockchain-Konsens meldet das Oracle die korrekten Daten, solange 51% der Teilnehmer korrekte Angaben machen.
Answendungsfälle von Oracles
Um den allgegenwärtigen Einsatz von Oracles zu verstehen, untersuchen wir einige Anwendungsfälle.
Decentralized Finance (DeFi)
DeFi-Anwendungen haben einen umfangreichen Datenbedarf, um Finanzlösungen effizient bereitstellen zu können. Das Maker-Protokoll, das besicherte DAI verleiht, verlässt sich beispielsweise auf Preisdaten von Oracles. So kann es bestimmen, wie viel DAI pro Einheit der Kryptowährung als Sicherheit ausgegeben werden sollen. Es verwendet auch Oracles, um sicherzustellen, dass die bereits ausgegebenen DAI immer ausreichend besichert sind.
Interoperabilität
Interoperabilitäts-Protokolle können über eigene Oracle-Lösungen verfügen oder auf bestehende Oracles zurückgreifen. Dadurch wird ein freier Informationsfluss zwischen verschiedenen Blockchain-Protokollen ermöglicht, um die Koordination sicherzustellen. Für einen Multi-Chain-Aggregator von dezentralen Börsen (DEX) müssen Informationen frei verfügbar sein, um Nutzern den besten Preis bieten zu können.
Lieferketten
Eine der Anwendungen der Blockchain-Technologie ist die Aufzeichnung der vollständigen Historie eines Produkts, die vom Verbraucher unabhängig überprüft werden kann. Dies kann zum Beispiel genutzt werden, um unabhängig sicherzustellen, dass ein Produkt aus einem bestimmten Land stammt oder um seinen CO2-Fussabdruck zu ermitteln.
Um dies vollautomatisch und konfliktfrei zu erreichen, muss ein Oracle in Verbindung mit einem Reporting-Mechanismus wie Near Field Communication (NFC)-Tags verwendet werden. Somit kann die Reise eines Produkts durch seine Lieferkette in die Blockchain eingespeist werden. Jede interessierte Partei kann dies später unabhängig verifizieren und sich der Gültigkeit der Daten sicher sein.
Prognosemärkte
Auf Prognosemärkten können Benutzer Wetten auf den Ausgang eines Ereignisses abschliessen. Zum Beispiel auf das Ergebnis eines Fussball- oder Kricketspiels oder den Gewinner einer Wahl. Ein Oracle ist erforderlich, um das Ergebnis eines Ereignisses zu melden. So können die Gewinner der Wetten bezahlt werden, da die Blockchain unabhängig nicht wissen kann, welches Ereignis in der realen Welt stattgefunden hat.
Gaming / Gambling
Gaming beruht oftmals auf Zufallszahlen, um den Spielern ein gewisses Mass an Glück und Spannung zu bieten. Spiele können Zufallszahlen nutzen, die von Oracles bereitgestellt wird. Diese bestimmen die Chancen für die Beuteabwurfrate, die Fehlschuss- und Trefferquote, die kritische Trefferquote und andere ähnliche Spielmechaniken.
Für einzigartige Drops können Oracles auch die Anzahl der vorhandenen Gegenstände mit NFTs (non-fungible tokens) verifizieren und deren historische Drop-Rate bestätigen. Für Glücksspiele können Spieler individuell verifizieren, dass der Kartenstapel, der Würfelwurf, der Spin oder jede andere verwendete Mechanik nachweislich zufällig ist und wie sie sich historisch verhalten hat.
Oracle Projekte/Netzwerke
ChainLink Network (LINK)
Chainlink ist die führende dezentrale Oracle-Lösung. Fast alle grossen DeFi-Projekte verlassen sich auf seine Datenfeeds. Es ist ein Off-Chain Oracle mit einem Netzwerk unabhängiger Node-Betreiber, das Daten sammelt und an seine Middleware-Anwendung liefert. Die Middleware-Anwendung aggregiert und kombiniert sie zu einer einzigen Datenausgabe und liefert sie an die Blockchain. Dadurch können sie von Smart Contracts, die sich auf sie verlassen, gelesen werden.
Abbildung 3: Chainlink-Software aggregiert Eingaben von allen Node-Betreibern
Das Chainlink Network ist Blockchain agnostisch, und Entwickler können die Kernsoftware modifizieren, um sich mit jeder Blockchain zu verbinden. Es ist derzeit weit verbreitet für Ethereum-basierte dApps. Die LINK-Token auf Ethereum werden für die Zahlungen von Dienstleistungen durch die Nutzer genutzt. In Zukunft werden Node-Betreiber diesen staken müssen. Wenn mehr Smart-Contract-basierte Blockchain-Plattformen in Betrieb genommen werden, kann der LINK-Token zu anderen Plattformen hinzugefügt werden, um Oracles und plattformübergreifende Dienste anzubieten.
Band Protocol (BAND)
Band Protocol ist ein On-Chain Oracle, das auf einer unabhängigen Cosmos-basierten Blockchain namens BandChain läuft. Es ermöglicht Entwicklern, benutzerdefinierte Oracle-Skripte zu schreiben, um Daten zur Verwendung in ihren Dapps zu holen. BandChain verwendet einen Delegated Proof of Stake Konsens-Mechanismus, und seine 100+ Validators holen die abgefragten Daten, die zuerst auf BandChain und dann auf der anfragenden Plattformkette veröffentlicht werden.
Ähnlich wie bei Chainlink werden die Validators mit dem nativen BAND-Token für die Bereitstellung der Daten bezahlt und müssen diese Token staken, so dass jede Falschmeldung bestraft werden kann. Die Durchlaufzeit für die Lieferung einer Datenanfrage beträgt etwa 6 Sekunden, da die Blockzeit für BandChain nur 2 Sekunden beträgt. Da BandChain eine unabhängige Kette ist, leidet sie nicht unter Netzwerkproblemen auf der anfordernden Kette wie langsame Blockzeit oder hohe Netzwerkgebühren.
The Graph (GRT)
The Graph ist ein Outbound Oracle, das Blockchain-Daten indiziert und sammelt, um sie in einer benutzerfreundlichen Weise lesen und anzeigen zu können. Es aggregiert und indiziert Blockchain-Daten, indem es alle Blöcke verarbeitet. Dadurch kann es Daten über APIs bereitstellen, auf die sonst nicht so einfach zugegriffen werden könnte.
Entwickler oder "Kuratoren" erstellen Anwendungen, die die Blockchain nach bestimmten Daten abfragen, die für den Benutzer von Interesse sein könnten. Die Node-Betreiber oder "Indexierer" sammeln diese Daten von jedem Blockchain-Block und indizieren sie, um sie dem Benutzer zur Verfügung zu stellen. Für diesen Service werden sie von den Entwicklern der App bezahlt. Die Nutzer der Anwendung müssen die "Indexierer" und "Kuratoren" für die Nutzung ihrer App und Daten bezahlen. Typischerweise zieht der Entwickler für die Anwendung auf The Graph Informationen aus seiner eigenen dApp auf der Blockchain und präsentiert sie seinen Nutzern. So können diese die beste Entscheidung für sich selbst treffen.
Vereinfacht gesagt handelt es sich um eine Open-Source-Suchmaschine für Blockchain-Daten, wobei Betreiber Indexierungs- und Speicherdienste bereitstellen. Darauf aufbauende Anwendungen können Blockchain-Daten für den Benutzer visualisieren, damit er sie versteht und eine fundiertere Entscheidung treffen kann.
Zum Beispiel nutzt die Informationsseite von Uniswap (siehe hier) The Graph, um Paar-Analysen, Top-Paare, Transaktionsdaten, liquideste Paare usw. abzurufen. Es bietet ein intuitives Front-End für die Benutzer, um zu analysieren und zu transagieren.
Andere Oracles
Abgesehen von den oben genannten Projekten können alle Daten, die von einer App generiert werden, von einer anderen verwendet werden. Zum Beispiel kennt Uniswap (ein dezentrales Protokoll für automatisiertes Market Making) von sich aus den Preis zwischen zwei beliebigen Vermögenswerten, durch seinen Liquiditätspool. Diese Daten können von allen Dapps genutzt werden, die Preisdaten zwischen den beiden Assets benötigen. Eine Kreditvergabe-dApp kann die Preisdaten nutzen, um sicherzustellen, dass sie genügend ausstehende Sicherheiten für alle Kredite hat.
Konklusion
Wir stellen fest, dass Oracles in dezentralen Anwendungen allgegenwärtig sind und in allen wichtigen Themen und Implementierungen der Blockchain-Technologie wie dezentrale Finanzwelt, Interoperabilität, Lieferketten usw. zum Einsatz kommen. Wir behandelten auch die Grundlagen der entscheidenden Oracle-Projekte, die das wachsende Ökosystem dezentraler Anwendungen heute ermöglichen.