In einem relativ trägen Markt ist die Nachfrage nach Orakeln exponentiell gewachsen.
Rede: Frank, Developer Relations Engineer, Chainlink Labs
Organisiert von: aididiaojp.eth, Foresight News
Ich bin Frank, ein Developer Relations Engineer von Chainlink Labs. Meine Hauptaufgabe besteht darin, mehr Entwicklern oder Bauherren, die sich für diese Branche begeistern, die Möglichkeit zu geben, mehr über Orakel zu erfahren. Basierend auf den Smart Contracts unserer aktuellen Infrastruktur können wir uns das als hybriden Smart Contract vorstellen. Intelligente Verträge können besser mit verschiedenen Daten in der Web2-Welt integriert werden, einschließlich Computerdiensten, und dann können wir auf der Grundlage dieser Architektur die Möglichkeiten intelligenter Verträge in der Kette erheblich erweitern.
Im heutigen Austausch werde ich zunächst das Konzept der Orakel vorstellen und dann basierend auf dem Konzept der Orakel kurz das dezentrale Orakelnetzwerk und einige der Dienste vorstellen, die wir anbieten können, einschließlich Datendienste und Computerdienste.
Was ist ein Orakel?

Der Netzwerk- und Datenstatus ändert sich in diesen drei Phasen ständig von Web 1 über Web 2 bis hin zu Web 3. Zu Beginn war Web1 ein Website-Dienst, bei dem Daten nur statisch gelesen werden konnten. Als es sich zur Web2-Stufe entwickelte, wurden die Daten lesbar, beschreibbar und teilbar. Viele große Unternehmen haben auf der Grundlage ihrer eigenen Dienste ein Geschäftsimperium aufgebaut. Sie speichern alle Benutzerdaten in ihren eigenen Datenbanken und können diese bei Bedarf tatsächlich besitzen und ändern. Dann stellt sich die Frage, dass einige der Daten, die wir im Internet oder in der virtuellen Welt erstellen, manchmal einen gewissen Wert haben. Wem gehört dieser Wert also? Vor diesem Hintergrund hoffen wir, dieses Problem in der Web 3-Phase gut lösen zu können. Alle Daten in der Web-3-Stufe sind nicht auf einem Server oder Knoten vorhanden. Es gibt ein dezentrales Netzwerk, und das dezentrale Netzwerk ist ein Multi-Ledger-System, das aus mehreren Knoten besteht. Daten werden in mehreren Knoten gespeichert. Nur wenn jeder Knoten mit der Änderung und Speicherung der Daten einverstanden ist, können die endgültigen Daten gespeichert werden. Dies wird uns einen Vorteil bringen, das heißt, egal welche Art von Änderung wir an den Daten vornehmen möchten, wir müssen die Änderung gemäß dem vorab vereinbarten Konsens vornehmen. Wenn ich beispielsweise mein Wallet-Guthaben ändern möchte und mir niemand Geld überweist, egal wie der Eigentümer der Daten es ändern möchte, wird er letztendlich den Konsensprozess nicht bestehen können, was bedeutet, dass das Wallet-Guthaben geändert wird kann nicht geändert werden. Nur der Eigentümer der Daten kann die Daten endgültig ändern, indem er eine den Regeln entsprechende Transaktion sendet. Dies hat einen ganz offensichtlichen Vorteil. Gleichzeitig bringt es auch einige Nachteile mit sich. Der größte Nachteil besteht darin, dass es das System zu einem deterministischen System macht. Mit anderen Worten: Da es während des gesamten Prozesses einen Konsensprozess gibt, können nur Vorgänge ausgeführt werden, die andere überprüfen können. Wenn Sie eine Operation senden, müssen andere Knoten Ihre Operation ausführen. Wenn andere Knoten die Operation erfolgreich ausführen können, können sie die Ergebnisse tatsächlich zurückgeben. Ob es mehr als 50 % oder 70 % beträgt, hängt vom Konsensalgorithmus ab.Schließlich kann die Operation in die Transaktion geschrieben werden, und die Transaktion kann in den Block geschrieben werden, um eine vollständige Transaktion zu werden.

Wenn wir jedoch einige nicht deterministische Vorgänge ausführen müssen, z. B. das Abrufen einiger API-Daten außerhalb der Blockchain und das Generieren von Zufallszahlen usw., kann das deterministische Blockchain-System nicht fertiggestellt werden. Unsere Lotterie muss Zufallszahlen generieren, oder das On-Chain-Protokoll muss den Preis von Vermögenswerten außerhalb der Kette kennen, beispielsweise um den Preis von Aktien oder Waren zu ermitteln. Dies ist ein nicht deterministischer Vorgang und kann nicht von der Blockchain selbst durchgeführt werden . Ein weiteres Beispiel sind API-Aufrufe, die ich als Knoten im Netzwerk aufrufe und dann anderen Knoten im Netzwerk mitteile, um die Authentizität des Ergebnisses zu überprüfen und ein Ergebnis erhalten. Wenn jedoch bei einer externen API verschiedene Personen zu unterschiedlichen Zeiten auf dieselbe API zugreifen, hängt der Server möglicherweise auf, der Dienst wird angehalten oder die Daten können sich im Laufe der Zeit ändern. Wenn Sie dasselbe zu unterschiedlichen Zeiten tun, werden die Ergebnisse inkonsistent sein. Solange die Ergebnisse inkonsistent sind, gibt es keine Möglichkeit, den letzten Vorgang zu blockieren und ihn auch nicht abzuschließen. Aus diesem Grund müssen wir, nachdem wir Dateneigentum erlangt haben, auch einige der damit verbundenen Mängel ertragen.

Um dieses Problem zu lösen, müssen Sie sich auf Orakel verlassen. Die Blockchain ist ein isoliertes und deterministisches System. Sie kann keine Daten außerhalb der Kette abrufen. Das Aufkommen von Orakeln soll dieses Problem lösen. Das Konzept der Orakel tauchte vor zwei oder drei Jahren auf, doch damals gab es nicht viele anwendbare Szenarien und es hatte große Einschränkungen. Wenn Sie beispielsweise einige Marktdaten erhalten, Bestandsdaten in das Blockchain-Netzwerk hochladen oder eine Struktur erstellen möchten, um die Logik zur Ausführung in die Kette zu legen, aber die Vermögenswerte in die Kette zu legen und die normale Durchführung von Transaktionen zu schützen Intelligente Verträge usw. Zu diesem Zeitpunkt müssen einige Daten aus der Kette abgerufen und regelmäßig synchronisiert werden, einschließlich Bankzahlungs- oder Einzelhandelsdaten und sogar einige andere öffentliche Ereignisdaten wie Wetterbedingungen, geografische Informationen, Logistikinformationen, Sportwettkampfergebnisse usw. Diese Daten können nicht ohne den Umweg über die Oracle-Maschine abgerufen werden. Dadurch wird die Ökologie in der Kette sehr eingeschränkt. Mit der Weiterentwicklung des Web-3-Ökosystems wird die Verbindung zwischen den beiden Welten Web 3 und Web 2 immer enger. Wenn wir möchten, dass Web3 in großem Umfang angenommen wird oder von mehr Menschen genutzt wird, muss es sehr umfangreiche Funktionen bieten und darf nicht auf Vorgänge beschränkt werden, die nur über native Daten in der Kette ausgeführt werden können.
Oracle wurde erst im DeFi-Sommer 2020 populär, als es den meisten Menschen klar wurde. Zunächst erledigte die Oracle-Maschine sehr einfache Dinge. Wenn Sie beispielsweise externe Daten abrufen und in das dezentrale Netzwerk, also die Blockchain, hochladen möchten, ist es am einfachsten, einen zentralen Knoten unter der Kette einzurichten Das heißt, einen Server aufzubauen, dann die Daten über den Server abzurufen und schließlich die Daten in das Deduplizierungs-Blockchain-Netzwerk zu schreiben. Dieses Modell wird dann als zentralisiertes Orakel bezeichnet. Obwohl es relativ einfach zu implementieren ist, bringt es einige Probleme mit sich. Beispielsweise besteht das Risiko eines Single Point of Failure, das heißt, der zentralisierte Knoten kann aus seinen eigenen grundlegenden Gründen Ausfallzeiten verursachen. Eine andere Möglichkeit besteht darin, dass, wenn der vom Smart-Vertrag in der Kette bereitgestellte Dienst auf den vom zentralisierten Knoten bereitgestellten Daten basiert und der Betrag der im Smart-Vertrag in der Kette enthaltenen Gelder sehr groß ist, das zentralisierte Orakel seine Daten weitergeben kann Eigene Daten, die manipuliert werden können, können für Angriffe auf Dienste genutzt werden. Solange die Interessen groß genug sind und es keine Möglichkeit gibt, mit technischen Mitteln einen vollständigen Schutz zu erreichen, handelt es sich hier um einen Single Point of Failure. Wir wollen Anwendungen in dezentralen Netzwerken platzieren, darunter Ethereum oder andere Layer-2-Ökosysteme. Tatsächlich hoffen wir auch, dass wir die Fairness unserer Anwendungen, also Smart Contracts, durch Hunderte oder Tausende von Oracle-Knoten im Netzwerk sicherstellen können. Sex und Sicherheit.

Wenn wir uns natürlich auf zentralisierte Knoten verlassen, um das Datenterminal zu erhalten, auch wenn die Sicherheit anderer Aspekte garantiert werden kann, wenn es keine Möglichkeit gibt, die Sicherheit des wichtigsten Vermögenswerts, des Datenterminals, zu gewährleisten, wird es das Ganze machen dApp bedeutungslos. Daher entstand nach der zentralisierten Oracle-Maschine das dezentrale Oracle-Maschinennetzwerk, das das gerade erwähnte Risiko eines Einzelpunktausfalls gut lösen kann. Der größte Unterschied zwischen dem dezentralen Oracle-Netzwerk besteht nicht darin, dass ein einzelner Oracle-Knoten Dienste für das dezentrale Netzwerk bereitstellt, sondern darin, dass die Dienste über das dezentrale Oracle-Netzwerk bereitgestellt werden. Es kann auch als eine Art Schicht 2 verstanden werden Knoten im zentralisierten Oracle-Netzwerk können Daten über ihre eigenen Datenquellen abrufen und mit anderen dezentralen Netzwerken aggregieren. Dies kann auch als Konsensprozess verstanden werden, einschließlich der Überprüfung der Daten. oder ob die zurückgegebenen Daten zu weit vom Durchschnitt abweichen, oder einfach einen Durchschnitt bilden, dann die Daten aggregieren usw. und sie dann in das dezentrale Netzwerk schreiben. Einer der Vorteile dieses Ansatzes besteht darin, dass er technisch garantieren kann, dass der Dienst nicht unterbrochen wird, es sei denn, alle Knoten im dezentralen Oracle-Netzwerk stellen den Dienst ein. Diese Möglichkeit ist jedoch sehr gering. Darüber hinaus kann auf der Datenseite auch sichergestellt werden, dass die vom Orakel an den Vertrag in der Kette bereitgestellten Daten nicht von einem einzelnen Knoten, sondern von vielen Knoten kontrolliert werden. Wenn Sie Daten manipulieren möchten, um einen Angriff zu starten, sind die Kosten sehr hoch. Dies entspricht einem Angriff auf Layer 2 oder sogar auf ein dezentrales Netzwerk wie Ethereum, was grundsätzlich unwahrscheinlich ist.

Dezentrale Netzwerke können die Sicherheit und Fairness der von Smart Contracts empfangenen Daten erheblich verbessern. Für Benutzer sind wir nur ein dezentrales Oracle-Netzwerk, aber basierend auf dem dezentralen Oracle-Netzwerk können wir andere Dienste bereitstellen, z. B. Datendienste, Computerdienste und kettenübergreifende Dienste. Wenn dem Netzwerk Daten basierend auf Orakeln bereitgestellt werden, können einige komplexere und kostspieligere Vorgänge auch außerhalb der Kette durchgeführt werden. Das heißt, sie werden zur Berechnung in das Off-Chain-Orakel-Netzwerk gepackt und dann in den Sicherheitsvergleich zurückgeschrieben. hoch oben auf der Blockchain. Wenn wir Daten von Off-Chain erhalten können, können wir auch Daten von anderen Ketten erhalten und diese dann in diese Blockchain schreiben, dann handelt es sich tatsächlich um Cross-Chain. Solange die Sicherheit des dezentralen Oracle-Netzwerks stark genug ist, kann es sicherstellen, dass die darauf aufbauenden Datendienste, Computerdienste und kettenübergreifenden Dienste sehr sicher sind. Chainlink bietet eine Vielzahl von Diensten basierend auf dezentralen Orakeln, die Web 3- und Web 2-Daten, einschließlich Layer 1- und Layer 2-Daten, verbinden können, sodass jeder so viele entsprechende Daten und Dienste wie möglich erhalten kann.
Welche Dienstleistungen bietet Chainlink Oracles an?
Lassen Sie mich als Nächstes kurz die von Chainlink Oracles bereitgestellten Dienste vorstellen. Natürlich bietet Chainlink viele Dienste an. Ich werde einige Dienste vorstellen, die auf viele Szenarien anwendbar sind.
Wenn Sie in Zukunft einige Innovationen in den Bereichen DeFi, GameFi, NFT und SocialFi machen möchten, ist die Wahrscheinlichkeit hoch, dass Sie ein Orakel benötigen, um Daten zu erhalten. Denn Sie müssen die Kettendaten auf sehr dezentrale und sichere Weise abrufen und in Ihren On-Chain-Smart-Vertrag zurückschreiben.
Der erste Service ist Price Feeding, ein Begriff, den Sie vielleicht schon oft gehört haben. Er wurde im DeFi-Sommer 2020 populär. Im Jahr 2020 erschienen viele DeFi-Projekte, angefangen bei Uniswap, gefolgt vom Kreditvertrag Compound und dann dem synthetischen Asset-Projekt Synthetics und anderen Anwendungen. Sie alle haben einen großen Bedarf an Off-Chain-Daten, da nur sichere Daten verwendet werden können durch Nutzer dezentral über Verträge, wobei der Preisfütterungsdienst des Orakels eine wichtige Rolle spielt.

Das obige Bild ist das grundlegende Flussdiagramm des Preisfütterungsdienstes, der drei wichtige Parteien umfasst. Das erste ist das gerade erwähnte dezentrale Oracle-Netzwerk; das zweite ist der Datenanbieter, bei dem es sich um eine Börse oder andere große Autoritätsinstitutionen handeln kann, die alle als Datenanbieter fungieren können; Der in der obigen Abbildung dargestellte Prozess ist sehr einfach. Jeder Datenanbieter kann Daten über die Datenquellenschnittstelle oder den Datendienst des Oracle-Netzwerks bereitstellen. Anschließend werden die von jedem Kanal erhaltenen Daten durch den Aggregationsprozess in den in der Kette bereitgestellten Verifizierungsvertrag geschrieben. Wenn die Überprüfung bestanden wird, können die Daten vom Benutzer aufgezeichnet und in Zukunft verwendet werden. Dies ist der gesamte Prozess. Der Kunde muss lediglich Verträge abschließen, um mehrere Daten zu erhalten und zu nutzen.
Es gibt viele Anwendungsfälle für die Preiseingabe, wie zum Beispiel die gerade erwähnten Compounds, Uniswap und Synthetics. Sie müssen die Vermögenswerte in Web2 zu Web3 zuordnen. Zu diesem Zeitpunkt benötigen sie einen externen Mechanismus, um den Preis des Vermögenswerts bereitzustellen. Genau wie bei einem Stablecoin muss die Anzahl der ausgegebenen Stablecoins davon abhängen, wie viele Vermögenswerte verfügbar sind, und der Vermögenspreis muss ebenfalls auf der Grundlage eines Orakels ermittelt werden. Darüber hinaus sind einige Vermögensverwaltungsplattformen und beliebte Derivatehandelsanwendungen stark von Preisen abhängig, sodass sie tatsächlich wichtige Nutzer von Preisfütterungsdiensten sind. Dem Trend zufolge steigt die Nachfrage nach Preisfütterungsdiensten exponentiell. Auch wenn der Markt nicht so aktiv ist, nimmt die Datennutzung dennoch zu.

Als nächstes werde ich den zweiten, charakteristischeren Dienst vorstellen, nämlich Any API. Einfach ausgedrückt hilft er Smart Contracts in der Kette, einige nicht standardmäßige Daten zu erhalten, wie zum Beispiel einige Long-Tail-Daten. Diese Daten stehen möglicherweise nur bestimmten Personen oder bestimmten Verträgen zur Verfügung, es handelt sich jedoch nicht um Standarddaten wie Token-Preise oder Vermögenspreise. Viele DApps erfordern nicht standardmäßige Daten. Web-3-Versicherungsgeschäftsanwendungen müssen beispielsweise Wetterdaten oder Flugverspätungsdaten abrufen. Beispielsweise können Treibhausgase für ESG-ähnliche Projekte genutzt werden, darunter Wahlen und Sportwettkämpfe, die mit Prognosemärkten kombiniert werden können. Wir stellen einen Datenmarkt bereit, der auf einer beliebigen API basiert. In jedem Datenmarkt gibt es verschiedene Datenanbieter, die auf der Grundlage ihrer eigenen Daten Dienste nach außen bereitstellen. Solange der Benutzer eine Anfrage sendet, kann er die Daten an den Benutzer zurückschreiben Vertrag entsprechend den Leistungsanforderungen. Sowohl der Datenlieferant als auch der Datenempfänger werden vom Markt bestimmt. Es gibt einen Markt für Benutzer und Datenanbieter, und es ist nicht die Aufgabe der Chainlink-Beamten, alle Daten zu monopolisieren und sie dann der Kette zur Verfügung zu stellen.

Der Workflow jeder API und der Preiszuführung ist tatsächlich relativ konsistent. Der Vertrag sendet zuerst eine Anfrage, und dann wird die Anfrage vom Chanlink-Knoten erkannt. Nach der Entdeckung kann Chanlink die erforderlichen Daten entsprechend der Anfrage auswählen und diese dann zurück in die Blockchain schreiben. Jede API kann Benutzern eine Vielzahl von Daten bereitstellen. Eine ihrer Eigenschaften besteht jedoch darin, dass sie, obwohl sie relativ schnell eingerichtet ist, Daten von einem einzigen Knoten bereitstellt. Das Ziel von Any API besteht darin, Daten auf einfache Weise so schnell wie möglich abzurufen, anstatt Daten über das zuvor erwähnte dezentrale Netzwerkorakel abzurufen.

Später, als die Vielfalt der Datenanforderungen zunahm, hofften viele nicht standardmäßige Daten auch darauf, dezentral in die Kette zurückgeschrieben zu werden. Wir haben Anfang April dieses Jahres auch einen neuen Dienst namens Functions erstellt, der jede Benutzeranfrage über ein dezentrales Oracle-Netzwerk ausführt. Benutzer können einige fortgeschrittene Programmiersprachen wie Javascript verwenden, um Betriebsprogramme zu schreiben. Sie können nicht mehr nur in der Solidity-Sprache geschrieben werden. Programme, die in Javascript geschrieben sind, sind definitiv umfangreicher. Der Functions-Dienst kann das geschriebene Programm in eine Anfrage kapseln und an das gesamte Oracle-Netzwerk senden. Jeder Knoten im Netzwerk führt den gleichen Vorgang aus, bei dem es sich um Computerdienste, Datenerfassungsdienste oder andere Dienste handeln kann. Nachdem jeder Knoten ausgeführt wurde und das Ergebnis erhalten hat, durchläuft er den gerade erwähnten Aggregationsprozess und schreibt ihn dann zurück in den Smart Contract.

Im Vergleich zur Preisfütterung ist der Freiheitsgrad sehr hoch. Mit anderen Worten: Dem Smart Contract kann eine externe Schnittstelle zur Verfügung gestellt werden, die er beliebig nutzen kann. Sie können auch einen Teil der dafür erforderlichen Logik in den Vertrag schreiben, der dann nicht von der Blockchain, sondern von der Oracle-Maschine ausgeführt wird. Dies entspricht der direkten Einbettung des Oracle-Maschinendienstes in den Smart Contract und dessen Umwandlung ein hybrider Smart Contract. Wenn Sie dies auf diese Weise tun, wird Ihre Ausführung über ein dezentrales Netzwerk gewährleistet. Dann können Ihre nicht deterministischen Operationen, die nicht auf der Blockchain ausgeführt werden können, über ein dezentrales Orakel ausgeführt werden und die Ergebnisse zurückgeben. Insgesamt kann es die Funktionalität von Smart Contracts erheblich verbessern. Die Funktionen, die es ausführen kann, werden umfangreicher sein als zuvor, und die eigentliche Anwendung auf der Benutzerseite ist ebenfalls sehr einfach. Sie müssen Ihrem Vertrag nur zwei Funktionen hinzufügen und können das dezentrale Oracle-Netzwerk direkt als Teil Ihres Smart Contracts verwenden . benutzen. Es ist auch für herkömmliche Web2-Programmierer sehr benutzerfreundlich, da die Ausführungslogik über herkömmliche Programmiersprachen vervollständigt werden kann. Der Gesamtprozess hat sich nicht geändert. Senden Sie eine Anfrage, senden Sie sie dann an das dezentrale Oracle-Netzwerk, aggregieren Sie sie nach der Ausführung und schreiben Sie sie schließlich zurück in den Smart Contract des Benutzers.
Das Obige habe ich über Orakel und einige der Dienste erzählt, die dezentrale, auf Orakeln basierende Netzwerke bereitstellen können.
