Was ist ein Smart Contract?
Was ein Smart Contract ist, wofür er genutzt wird, Anwendungsbeispiele und die Risiken in seinem Code.
Ratgeber lesen
Sprachen
Blockchain-Netzwerke wurden entwickelt, um Informationen in einer dezentralen Umgebung aufzuzeichnen und zu validieren, ohne dass eine zentrale Instanz bestimmen muss, welche Daten korrekt sind. Diese Autonomie hat jedoch eine grundlegende Grenze. Eine Blockchain kann Informationen, die in ihrem eigenen Netzwerk existieren, mit großer Genauigkeit überprüfen, kann aber nicht direkt wissen, was außerhalb von ihr geschieht. Sie weiß beispielsweise nicht, wie hoch der Preis einer Aktie ist, ob ein Flugzeug sein Ziel erreicht hat, welche Temperatur in einer bestimmten Stadt gemessen wurde oder ob ein Unternehmen eine in einem Vertrag festgelegte Bedingung erfüllt hat. Um diese Einschränkung zu überwinden, entstanden sogenannte Blockchain-Oracles. Sie sind Mechanismen, die die Außenwelt mit den Aufzeichnungen und dezentralen Anwendungen verbinden sollen, die auf einer Blockchain betrieben werden.
Die Funktion eines Oracles besteht im Wesentlichen darin, externe Daten bereitzustellen, die eine Blockchain zur Ausführung bestimmter Vorgänge benötigt. Das mag einfach erscheinen, stellt in der Praxis jedoch eines der komplexesten Probleme dezentraler Architektur dar. Wenn eine blockchainbasierte Anwendung von einem externen Datenpunkt abhängt und diese Daten falsch, manipuliert oder veraltet sind, kann die Logik des Smart Contracts auf der Grundlage falscher Informationen ausgeführt werden und reale Konsequenzen erzeugen. Dieses Problem wird häufig als Oracle-Problem bezeichnet und gehört zu den wichtigsten Sicherheits- und Vertrauensfragen innerhalb des Ökosystems dezentraler Anwendungen.
Um seine Bedeutung zu verstehen, muss man sich an eine wesentliche Eigenschaft von Blockchains erinnern. Netzwerk-Nodes können Konsens über Transaktionen und Zustände erreichen, die Teil des Systems selbst sind, besitzen aber keinen nativen Mechanismus zur Überprüfung externer Ereignisse. Ethereum kann beispielsweise mathematisch den Kontostand einer Adresse bestimmen oder prüfen, ob eine Transaktion den Protokollregeln entspricht. Es kann jedoch nicht selbst feststellen, ob der Wechselkurs zwischen Euro und Dollar auf einem externen Finanzmarkt einen bestimmten Wert erreicht hat. Diese Information muss über einen zusätzlichen Mechanismus eingebracht werden, der sie erfasst und überträgt.
Oracles fungieren genau als diese Brücke zwischen zwei Umgebungen. Allgemein erhalten sie Informationen aus externen Quellen, verarbeiten sie und liefern sie an eine Blockchain, damit ein Smart Contract sie nutzen kann. Je nach Design können sie Daten von Finanzmärkten, Websites, Sensoren, vernetzten Geräten, Unternehmenssystemen, Behörden oder verschiedenen Blockchain-Netzwerken beziehen. Sobald die Daten in die Chain eingebracht wurden, kann der Smart Contract sie nutzen, um die in seinem Code definierten Bedingungen automatisch auszuführen.
Einer der bekanntesten Anwendungsfälle ist die dezentrale Finanzwirtschaft. Viele Protokolle müssen den Wert von Vermögenswerten kennen, um Anforderungen an Sicherheiten, Liquidationen, Wechselkurse oder die Bedingungen bestimmter Finanzprodukte zu bestimmen. Ein Kreditprotokoll, das Ether als Sicherheit hinterlegen und einen in einem Stablecoin denominierten Kredit aufnehmen lässt, muss den Wert dieses Ethers kontinuierlich kennen. Dieser Preis entsteht nicht spontan innerhalb der Blockchain. Er muss aus einer externen Quelle oder einem als Oracle fungierenden Informationsaggregationssystem stammen.
Wie die Daten gewonnen werden, ist ebenso wichtig wie die Daten selbst. Ein Oracle, das auf einer einzigen Quelle basiert, kann zu einem Single Point of Failure werden. Wenn diese Quelle ausfällt, falsche Informationen veröffentlicht oder manipuliert wird, kann der Smart Contract ein fehlerhaftes Signal erhalten. Aus diesem Grund verwenden anspruchsvollere Systeme mehrere Quellen und Aggregationsmechanismen. Statt einer einzelnen Quelle zu vertrauen, können sie verschiedene Werte sammeln und anschließend einen gemeinsamen Referenzwert berechnen. Ziel ist es, die Auswirkungen eines anomalen Datenpunkts einer bestimmten Quelle zu reduzieren.
Diese Eigenschaft führt zu einer wichtigen Unterscheidung zwischen zentralisierten und dezentralisierten Oracles. Ein zentralisiertes System kann von einer bestimmten Einheit abhängen, die Informationen sammelt, überprüft und übermittelt. Sein Betrieb kann effizient sein, konzentriert aber Vertrauen auf einen einzelnen Akteur. In einem dezentralisierten System können Informationen parallel von mehreren unabhängigen Betreibern stammen. Ein Konsens- oder Aggregationsmechanismus bestimmt anschließend den Wert, der letztlich verwendet wird. Das Ziel besteht nicht unbedingt darin, jedes Vertrauen zu beseitigen, was bei externen Daten schwierig ist, sondern es zu verteilen und einzelne Schwachstellen zu reduzieren.
Die Mechanismen zur Sicherstellung der Datenqualität sind vielfältig. Einige Systeme verwenden mehrere Informationsanbieter und vergleichen deren Ergebnisse. Andere integrieren wirtschaftliche Anreize, sodass Betreiber einen Grund haben, korrekt zu handeln, und die Bereitstellung betrügerischer Informationen potenziell bestraft werden kann. Es gibt auch Modelle, bei denen ein bestimmter Referenzwert regelmäßig aufgezeichnet und die Änderungsfrequenz eines Datenpunkts begrenzt wird, um ungewöhnliche Schwankungen zu vermeiden. Die konkrete Architektur hängt von der Art der zu übertragenden Information, der erforderlichen Geschwindigkeit und dem benötigten Sicherheitsniveau ab.
Nicht alle Oracles liefern dieselbe Art von Informationen. Einige sind darauf ausgelegt, Preisdaten bereitzustellen, während andere reale Ereignisse übermitteln können. In Bereichen wie Versicherungen könnte ein Smart Contract von Wetterdaten abhängen, um automatisch eine Entschädigung bei bestimmten klimatischen Bedingungen zu bestimmen. In der Logistik könnte ein System Daten über die Ankunft einer Lieferung verwenden, um eine Zahlung auszulösen. In Prognosemärkten können Oracles entscheidend sein, um das Ergebnis eines Ereignisses festzulegen, das außerhalb der Blockchain stattgefunden hat.
Es gibt außerdem eine weitere Kategorie, die als Computational Oracles bezeichnet wird. Sie liefern nicht nur externe Informationen, sondern können auch bestimmte Vorgänge ausführen, die direkt innerhalb einer Blockchain zu teuer oder zu komplex wären. Auf diese Weise kann ein Teil der Verarbeitung offchain stattfinden und das Ergebnis anschließend an den Smart Contract zurückgegeben werden. Diese Kombination erweitert die Möglichkeiten dezentraler Anwendungen, ohne jeden Vorgang in die Onchain-Umgebung zu verlagern.
Die Bedeutung von Oracles steigt, wenn die Blockchain nicht mehr ausschließlich für die Übertragung digitaler Vermögenswerte verwendet wird, sondern sich mit Finanz-, Geschäfts- und physischen Systemen verbindet. Smart Contracts benötigen zunehmend Informationen über Ereignisse, die sie nicht selbst kontrollieren. Diese Abhängigkeit macht Oracles zu kritischer Infrastruktur. Ein Fehler in einem Oracle-System muss nicht nur eine einzelne Anwendung betreffen. Wenn derselbe Anbieter Informationen für mehrere Protokolle liefert, kann eine erhebliche Veränderung gleichzeitig Auswirkungen auf verschiedene Dienste haben.
Risiken können auch bei extremer Volatilität entstehen. Finanzmärkte sind besonders empfindlich, weil sich Preise innerhalb von Sekunden ändern können. Aktualisiert ein Oracle seine Daten zu langsam, kann ein Protokoll mit Referenzwerten arbeiten, die die tatsächlichen Marktbedingungen nicht mehr abbilden. Aktualisiert es zu häufig und stützt sich auf unzuverlässige Quellen, kann es ungewöhnliche Bewegungen ebenfalls verstärken. Beim Design eines Oracles müssen daher Genauigkeit, Geschwindigkeit, Kosten und Manipulationsresistenz miteinander ausgeglichen werden.
In diesem Zusammenhang hängt die Sicherheit nicht ausschließlich vom Code des Smart Contracts ab. Sie hängt auch von der Infrastruktur ab, die die Daten bereitstellt, auf die der Contract angewiesen ist. Diese Realität verändert teilweise die ursprüngliche Vorstellung von Dezentralisierung. Eine Anwendung kann ihre Logik automatisch ausführen und eine öffentliche Blockchain als Abwicklungssystem verwenden und dennoch externe Mechanismen benötigen, um bestimmte Tatsachen zu kennen. Dezentralisierung wird daher nicht einfach durch das Entfernen von Vermittlern erreicht, sondern durch eine sorgfältige Gestaltung der Art und Weise, wie Informationen gesammelt, überprüft und übertragen werden.
Blockchain-Oracles gehören damit zu den unsichtbarsten und zugleich wichtigsten Bestandteilen dezentraler Infrastruktur. Ihre Aufgabe besteht darin, zwei Realitäten mit sehr unterschiedlichen Eigenschaften zu verbinden. Auf der einen Seite steht ein Netzwerk, das Zustände über kryptografische Regeln und Konsensmechanismen verifizieren kann. Auf der anderen Seite befindet sich eine Außenwelt, in der Informationen mehrdeutig, dynamisch, unvollständig oder manipulierbar sein können. Wie weit Smart Contracts und dezentrale Anwendungen gehen können, hängt zu einem erheblichen Teil davon ab, wie gut diese beiden Umgebungen miteinander verbunden werden.
Die zukünftige Entwicklung dieser Technologie wird mit dem Bedarf an zunehmend zuverlässigen, transparenten und widerstandsfähigen Datenquellen zusammenhängen. Ebenso müssen die Art und Weise verbessert werden, wie verschiedene Anbieter ihre Antworten koordinieren, und Mechanismen entwickelt werden, die anomales Verhalten erkennen können, ohne neue Formen der Zentralisierung einzuführen. Da immer mehr wirtschaftliche Aktivitäten von autonomer Software auf Blockchains abhängen, wird die Integrität externer Daten ebenso wichtig sein wie die Sicherheit der Transaktionen selbst.
Oracles sind daher kein nachrangiges Zubehör des Blockchain-Ökosystems. Sie sind die Komponente, die es einem dezentralen Netzwerk ermöglicht, mit außerhalb des Netzwerks auftretenden Ereignissen zu interagieren. Ohne diese Mechanismen wären viele Smart Contracts darauf beschränkt, ausschließlich auf chaininterne Informationen zuzugreifen. Mit ihnen kann die Blockchain digitale Vermögenswerte mit Märkten, Unternehmenssystemen, physischen Ereignissen und realen Daten verbinden, wobei diese Erweiterung auch neue technische und sicherheitsbezogene Herausforderungen einführt. Die Lösung dieser Herausforderungen wird entscheidend dafür sein, dass die Versprechen von Automatisierung und Dezentralisierung aus digitalen Umgebungen in Anwendungen mit realen wirtschaftlichen und operativen Folgen übergehen können.