ChainLink ist eine weitere Blockchain-Technology, welche gerade in den letzten Wochen und Monaten für Aufsehen gesorgt hat. Dies lag nicht nur an den steigenden Preisen der ChainLink-Token, sondern vielmehr an den namhaften Partnern, welche mit ChainLink erste Prototypen entwickeln. Neben Interessenten wie Google und SWIFT gibt es zahlreiche kleine Unternehmen, die sich mit der Technology von ChainLink beschäftigen. Bereits 2017 ChainLink im Gartner Report für Blockchain-Anwendungen als eine führende Technology beschrieben.
In diesem Artikel beschreibe ich kurz die Idee hinter ChainLink und gehe dann auf einige Aspekte detaillierter ein.
Das Problem der Smart Contracts
Um zu verstehen welche Probleme mit ChainLink gelöst werden muss zuerst einmal erläutert werden was ein Smart Contract ist.
Ein Smart Contract ist im groben ein Vertrag, welcher auf einer Blockchain aufbaut. Dieser Vertrag kann alle möglichen Klauseln und Regeln beinhalten. Eine Regel könnte beispielsweise eine Wette sein. Falls der Preis einer Aktie unter einen bestimmten Betrag fällt, dann könnte ein bestimmter Betrag ausgezahlt werden und umgekehrt. Es könnte sich aber auch um den Kauf von Rohstoffen wie Mehl oder Kartoffeln handeln, wobei der Smart Contract die genaue Menge und den zu zahlenden Preis festlegt.
Wie das bei öffentlichen Blockchains so ist, ist auch der Vertrag öffentlich. D.h. jeder Teilnehmer der Blockchain kann den Vertrag sehen und überprüfen. Durch die Unveränderlichkeit der Blockchain kann dieser auch nicht nachträglich abgeändert werden. Da der Vertrag ein Stück Programmcode ist, bleibt auch kein Spielraum für Interpretationen. Wenn beispielsweise abgemacht wurde, dass für eine Tonne Weizen 180 Euro gezahlt werden muss, dann lässt sich der Smart Contract auch mit den besten Überredungskünsten nicht davon abhalten 180 Euro pro Tonne zu verrechnen.
Das ganze hat jedoch einen Hacken: In der digitalen Welt mag das alles ganz plausibel sein, in der realen Welt jedoch sieht das ganze schon ganz anders aus. Wer bestätigt beispielsweise, dass auch wirklich eine Tonne Weizen geliefert wurde? Wie kommen die Daten auf die Blockchain und wie können andere Teilnehmer der Blockchain diese Validieren?
Genau hier kommt ChainLink ins Spiel. ChainLink bietet Schnittstellen an um die Außenwelt mit den Smart Contracts der Blockchain zu verbinden.
Architektur
ChainLink besteht aus zwei Komponenten. Ein Teil davon, die ChainLink-Nodes, existieren außerhalb der Blockchain und kommunizieren mit der realen Welt. Diese Nodes dienen als sogenannte Oracles. Sie liefern Daten, welche innerhalb der Blockchain gebraucht werden.
Der andere Teil interagiert mit den Smart Contracts auf der Blockchain und ist daher ebenfalls als Smart Contract implementiert. Aktuell existiert eine Ethereum-Implementation. Theoretisch kann jedoch fast jede Blockchain mit Unterstützung für Smart Contracts in die ChainLink-Welt integriert werden. Zu den Aufgaben dieses ChainLink-SC gehören das Verarbeiten von Anfragen, die Auswahl der richtigen Oracles und das Aggregieren der Antworten.
Ein Smart Contract der Daten der realen Welt benötigt kommuniziert also mit anderen Smart Contracts. Diese speziellen Smart Contracts wiederum kommunizieren mit ChainLink-Nodes. Der ChainLink-Node ist nicht in der Blockchain integriert. Er stellt damit die Schnittstelle zur Aussenwelt dar, welche Daten für die Blockchain liefert und weiterreicht.
Auswahl der Oracles
Die richtige Auswahl eines oder mehrere geeigneter ChainLink-Nodes ist die wichtigste Aufgabe des gesamten Prozesses. Durch falsche oder manipulierte Daten der Außenwelt könnte ein Smart Contract getäuscht werden und falsch agieren. Dies könnte zu erheblichen Schäden führen. Es ist daher wichtig, dass diesem Prozess besondere Bedeutung zukommt.
Bei einer Anfrage wird zuerst ein sogenanntes SLA (Service Level Agreement) abgeschlossen. Darin ist unter Anderem spezifiziert welche Parameter ausgetauscht werden, wie hoch die Reputation der einzelnen Nodes sein muss und wie viele davon benötigt werden. Zudem wird festgelegt wie die Aggregation der Daten zu erfolgen hat. Der ChainLink-SC erfragt die Preise der einzelnen Nodes mit der entsprechenden Reputation, welche daraufhin ein Angebot für die geforderten Daten unterbreiten.
Ein Node kann sich durch erfolgreiche Transaktionen eine Reputation aufbauen. Basierend auf dieser kann der Node dafür wiederum höhere Preise offerieren. Wie im richtigen Leben gibt es hierbei einen Trade-off zwischen Preis und Leistung.
Bei der gehandelten Währung handelt es sich um ChainLink-Token (LINK). Dies sind ERC20 Token, welche über das Ethereum-Netzwerk gehandelt werden. Sie sollen den Node für seine Arbeit entschädigen.
Aggregation der Daten
Wenn Daten aus der realen Welt gebraucht werden, dann können eine oder mehrere Quellen Ergebnisse liefern. Je nachdem wie viele Nodes angefragt werden steigt die Wahrscheinlichkeit, dass die Daten valide sind. Einzelne Ausreißer oder Betrugsversuche können so ausgefiltert werden. Das ganze kostet dann natürlich erheblich mehr Token. Wissen ist auch hier nicht umsonst und hat seinen Preis.
Überall wo Geld verdient werden kann bleibt Betrug nicht aus. Ein Node könnte beispielsweise sogenanntes Freeloading betreiben. Dabei wartet er die Ergebnisse anderer Nodes ab und kopiert einfach deren Messwerte. Dies ist durchaus möglich, da durch unterschiedliche Transaktionsgebühren (Gaspreise bei Ethereum) nicht jede Transaktion sofort auf der Blockchain landet.
Das Problem des Freeloadings lässt sich durch das Commit-Reveal-Schema lösen. Dabei bekommt jeder Node zusätzlich zu der eigentlichen Anfrage eine einzigartige SID mitgeliefert. Die Antwort wird mit dieser SID gehashed. Da ein Hash eine Einwegfunktion darstellt kann kein anderer Teilnehmer auf Antwort schließen. Nachdem alle Commitments eingegangen sind wird eine Reveal-Nachricht verschickt. Jeder Node offenbart dann sein Ergebnis. Stimmt eine Antwort nicht mit dem gelieferten Hash überein handelt es sich um ein ungültiges Ergebnis.
Der Nachteil des Commit-Reveal-Schemas ist die gestiegene Anzahl an Nachrichten im Blockchain-Netzwerk, was zu einem doppelt so hohen Preis auf der Blockchain führt. In ihrem Paper haben die Macher von ChainLink daher für die Zukunft eine Off-Chain-Aggregation vorgeschlagen, welche außerhalb der Blockchain eine Lösung anbietet.
Das Whitepaper ist generell ziemlich gefüllt mit Vorschlägen für die kurz- und langfristige Zukunft ohne dass eine konkrete Implementierung dahinter steht. In wie weit das alles eingehalten werden kann ist natürlich ausschlaggebend für den zukünftigen Erfolg. Dieses Jahr startete das Main-Net. Ein guter Anfang ist also bereits gemacht. Die aktuelle Entwicklung kann hier verfolgt werden.