Im Falle eines relativ trägen Marktes zeigt die Nachfrage nach Oracle-Maschinen einen exponentiellen Wachstumstrend.
Es spricht: Frank, Developer Relations Engineer, Chainlink Labs
Organisation: aididiaojp.eth, Foresight News
Ich bin Frank, Developer Relations Engineer bei Chainlink Labs. Meine Hauptaufgabe besteht darin, mehr Entwicklern oder Bauherren, die sich für diese Branche begeistern, die Möglichkeit zu geben, mehr über Oracle-Maschinen 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 enger mit verschiedenen Daten in der Web2-Welt, einschließlich Computerdiensten, integriert werden, und auf der Grundlage dieser Architektur werden dann die Möglichkeiten intelligenter Verträge in der Kette erheblich erweitert.
Im heutigen Teilen werde ich zunächst das Konzept der Oracle-Maschine vorstellen und dann basierend auf dem Konzept der Oracle-Maschine kurz das dezentrale Oracle-Maschinennetzwerk und einige Dienste vorstellen, die wir bereitstellen können, einschließlich Datendienste und Computerdienste.
Von Web 1 über Web 2 bis hin zu Web 3 ändert sich der Zustand des Netzwerks und der Daten ständig. Zu Beginn war Web1 ein Website-Dienst, dessen Daten nur statisch gelesen werden konnten. Mit der Entwicklung zur Web2-Stufe wurden die Daten lesbar, beschreibbar und teilbar. Viele große Unternehmen haben auf der Grundlage ihrer eigenen Dienste ein Geschäftsimperium geschaffen. Sie speichern alle Benutzerdaten in ihren eigenen Datenbanken. Bei Bedarf können sie Benutzerdaten tatsächlich besitzen und ändern. In diesem Fall stellt sich die Frage, dass einige 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 in einem Knoten vorhanden. Es verfügt über ein dezentrales Netzwerk, und das dezentrale Netzwerk ist ein Multi-Book-System, das aus mehreren Knoten besteht. Daten werden in mehreren Knoten gespeichert, und nur wenn jeder Knoten mit der Änderung und Speicherung der Daten einverstanden ist, können die endgültigen Daten gespeichert werden. Dies bringt uns dann einen Vorteil, das heißt, egal welche Änderung wir an den Daten vornehmen möchten, wir müssen sie gemäß dem vorab vereinbarten Konsens ändern. Wenn ich beispielsweise den Kontostand der Brieftasche ändern möchte und mir niemand Geld schickt, scheitert der Eigentümer der Daten unabhängig davon, wie er sie ändern möchte, am Konsensprozess, sodass der Kontostand der Brieftasche nicht geändert werden kann. Erst wenn der Eigentümer der Daten eine regelkonforme Transaktion sendet, können die Daten endgültig geändert werden, was einen ganz offensichtlichen Vorteil mit sich bringt. Gleichzeitig bringt es auch einige Nachteile mit sich. Der größte Nachteil besteht darin, dass es das System zu einem deterministischen System macht. Das heißt, 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 sie das Ergebnis tatsächlich zurückgeben. Ob es mehr als 50 % oder 70 % beträgt, hängt vom Konsensalgorithmus ab. Am Ende 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 und das Generieren von Zufallszahlen außerhalb der Blockchain, kann das deterministische Blockchain-System nicht abgeschlossen werden. Unsere Lotterieziehung muss Zufallszahlen generieren, oder das On-Chain-Protokoll muss den Vermögenspreis außerhalb der Kette kennen, beispielsweise um den Preis von Aktien oder Rohstoffen zu ermitteln, was ein nicht deterministischer Vorgang ist und nicht von der Blockchain selbst durchgeführt werden kann . Ein weiteres Beispiel sind API-Aufrufe. Wenn ich als Knoten im Netzwerk externe API-Daten aufrufe und dann anderen Knoten im Netzwerk das Ergebnis mitteile, führen andere Knoten es ebenfalls aus, um die Authentizität des Ergebnisses zu überprüfen. Tun Sie es Führen Sie den gleichen Vorgang aus und erhalten Sie ein Ergebnis. Wenn jedoch bei einer externen API verschiedene Personen zu unterschiedlichen Zeiten dieselbe API abrufen, hängt der Server möglicherweise auf, der Dienst wird angehalten oder die Daten können sich im Laufe der Zeit ändern. Sie machen dasselbe zu unterschiedlichen Zeiten und die Ergebnisse, die Sie erhalten, sind inkonsistent. Solange das Ergebnis inkonsistent ist, kann die letzte Operation nicht in einen Block eingegeben werden und es gibt keine Möglichkeit, sie abzuschließen. Nachdem wir das Eigentum an den Daten erlangt haben, müssen wir auch einige der damit verbundenen Mängel in Kauf nehmen.
Um dieses Problem zu lösen, müssen wir uns auf Orakel verlassen. Die Blockchain ist ein isoliertes und deterministisches System. Sie kann keine Daten außerhalb der Kette aktiv abrufen. Die Entstehung der Oracle-Maschine soll dieses Problem lösen. Vor zwei oder drei Jahren erschien das Konzept der Orakelmaschine, aber zu diesem Zeitpunkt gab es nicht viele anwendbare Szenarien und es gab 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 einzufügen, aber die Vermögensseite in die Kette einzubinden und den normalen Fortschritt der Transaktionen zu schützen Intelligente Verträge usw. Zu diesem Zeitpunkt müssen einige Daten aus der Kette abgerufen und regelmäßig eine Datensynchronisierung durchgeführt werden, einschließlich Bankzahlungs- oder Einzelhandelsdaten und sogar einiger anderer öffentlicher Ereignisdaten wie Wetterbedingungen und geografischer Lage Informationen, Logistikinformationen, Sportinformationen usw. Spielergebnisse usw. Diese Daten können ohne die Oracle-Maschine nicht abgerufen werden. Dadurch wird die Ökologie in der Kette sehr eingeschränkt. Mit der kontinuierlichen 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 übernommen oder von mehr Menschen genutzt wird, muss es sehr umfangreiche Funktionen bieten und sich nicht nur auf einige Operationen beschränken, die nur über die Originaldaten in der Kette ausgeführt werden können.
Die Oracle-Maschine wurde wahrscheinlich im Jahr 2020 populär, als es DeFiSummer war, und die meisten Leute haben es erkannt. Zu Beginn 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 Daten über den Server abzurufen und die Daten schließlich in das deduplizierte 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, d. h. der zentrale Knoten kann aus seinen eigenen grundlegenden Gründen Ausfallzeiten verursachen. Eine andere Möglichkeit besteht darin, dass, wenn der vom Smart Contract in der Kette bereitgestellte Dienst von den vom zentralen Knoten bereitgestellten Daten abhängt und der Betrag der im Smart Contract in der Kette enthaltenen Gelder sehr groß ist, diese zentralisierte Orakelmaschine möglicherweise bestehen bleibt seine eigenen Daten, die manipuliert werden können, um einen Angriff auf den Dienst zu starten. Solange der Nutzen groß genug ist und es keine Möglichkeit gibt, die Vollständigkeit mit technischen Mitteln zu erreichen, handelt es sich hier um einen Single Point of Failure. Wir wollen die Anwendung in das dezentrale Netzwerk einbinden, darunter Ethereum oder andere Layer-2-Ökosysteme. Tatsächlich hoffen wir auch, dass wir die Fairness unserer Anwendung, also des Smart Contracts, durch Hunderte oder Tausende von Oracle-Knoten sicherstellen können das Netzwerk. und Sicherheit.
Wenn wir uns natürlich auf zentralisierte Knoten verlassen, um Datenterminals zu erhalten, auch wenn andere Sicherheitsaspekte garantiert werden können, das wichtigste Asset-Datenterminal jedoch keine Sicherheit garantieren kann, wird die gesamte dApp bedeutungslos. Nach der zentralisierten Oracle-Maschine gibt es also ein dezentrales Oracle-Maschinennetzwerk, das das gerade erwähnte Risiko eines Single Point of Failure gut lösen kann. Der größte Unterschied im dezentralen Oracle-Netzwerk besteht nicht darin, dass ein einzelner Oracle-Knoten Dienste für das dezentrale Netzwerk bereitstellt, sondern über das dezentrale Oracle-Netzwerk. Es kann auch als eine Art Layer2 verstanden werden, d Oracle-Netzwerke können Daten über ihre eigenen Datenquellen abrufen und nach Erhalt der Ergebnisse eine Datenaggregation mit anderen dezentralen Netzwerken durchführen. Dies kann auch als Konsensprozess verstanden werden, einschließlich der Überprüfung, ob die Daten vorhanden sind Die zurückgegebenen Daten weichen zu stark vom Durchschnittswert ab, oder Sie erstellen einfach einen Durchschnittswert, aggregieren die Daten usw. und schreiben sie dann in das dezentrale Netzwerk. Einer der Vorteile dieser Methode besteht darin, dass sie technisch gesehen 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 gewährleistet werden, dass die vom Oracle für den Vertrag in der Kette bereitgestellten Daten nicht von einem einzelnen Knoten, sondern von vielen Knoten gesteuert werden. Wenn Sie Daten manipulieren möchten, um einen Angriff zu starten, sind die Kosten sehr hoch, was einem Angriff auf Layer 2 oder sogar einem dezentralen Netzwerk wie Ethereum gleichkommt, was grundsätzlich unwahrscheinlich ist.
Das dezentrale Netzwerk kann 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 einige andere Dienste bereitstellen, z. B. Datendienste, Computerdienste und kettenübergreifende Dienste. Wenn es auf der Oracle-Maschine basiert, um Daten an das Netzwerk bereitzustellen, gibt es tatsächlich einige komplexere und kostspieligere Vorgänge, die auch außerhalb der Kette ausgeführt werden können, das heißt, sie werden zur Berechnung in das Off-Chain-Oracle-Netzwerk gepackt , und dann zurück in die Sicherheitsvergleichs-High-Blockchain geschrieben. Wenn wir Daten außerhalb der Kette erhalten können, können wir auch Daten von anderen Ketten erhalten und sie in diese Blockchain schreiben, was tatsächlich kettenübergreifend ist. Solange die Sicherheit des dezentralen Oracle-Netzwerks stark genug ist, kann es die Sicherheit der darauf basierenden Datendienste, Computerdienste und kettenübergreifenden Dienste gewährleisten. 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.
Lassen Sie mich als Nächstes kurz die von Chainlink Oracles bereitgestellten Dienste vorstellen. Natürlich gibt es viele Dienste, die auf Chainlink basieren, und ich werde einige Dienste mit anwendbareren Szenarien teilen.
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 Kettendaten auf sehr dezentrale und sichere Weise abrufen und sie in Ihren Smart Contract in der Kette zurückschreiben.
Der erste Service ist der Preis-Feed, ein Begriff, den Sie vielleicht auch schon oft hören, und der im DeFiSummer im Jahr 2020 explodieren wird. 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 auf Sicherheit basierende Daten verfügbar sind Daten können durch Verträge dezentral von Nutzern genutzt werden, eine wichtige Rolle spielt dabei der Preis-Feed-Service des Orakels.
Die obige Abbildung ist das grundlegende Flussdiagramm des Preis-Feed-Dienstes, der drei wichtige Teilnehmer umfasst. Das erste ist das gerade erwähnte dezentrale Netzwerk von Oracle-Maschinen; das zweite sind Datenanbieter, bei denen es sich um Börsen oder andere große Autoritätsinstitutionen handeln kann, die alle als Datenlieferanten fungieren können; das dritte ist ein Benutzervertrag. Der in der obigen Abbildung dargestellte Prozess ist sehr einfach: Jeder Datenanbieter kann einen Knoten des Chanlink-Oracle-Netzwerks über die Datenquellenschnittstelle oder den Datenquellendienst bereitstellen, und jeder Knoten des Oracle-Netzwerks kann auch Daten gemäß seinem eigenen Dienst abrufen. , und 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 aufgezeichnet und von Benutzern in Zukunft verwendet werden. Dies ist der gesamte Prozess. Der Kunde muss lediglich den Vertrag nutzen, um mehrere Daten zu erhalten und zu nutzen.
Es gibt viele Anwendungsfälle für die Preisfütterung, wie zum Beispiel Compound, Uniswap und Synthetics, die wir gerade erwähnt haben. Sie müssen die Vermögenswerte in Web2 auf Web3 abbilden und sie benötigen externe Mechanismen, um Vermögenspreise bereitzustellen. Genau wie bei einem Stablecoin basiert es darauf, wie viele Vermögenswerte so viele Stablecoins ausgeben können, und sein Vermögenspreis sollte auch auf der Grundlage der Orakelmaschine ermittelt werden. Darüber hinaus sind sie, wie einige Vermögensverwaltungsplattformen und beliebte Anwendungen für den Derivatehandel, stark von Preisen abhängig, sodass sie tatsächlich wichtige Nutzer von Preisfütterungsdiensten sind. Aus Trendsicht steigt die Nachfrage nach Preis-Feed-Diensten exponentiell. Auch in weniger aktiven Märkten nimmt die Datennutzung zu.
Als nächstes werde ich den zweiten, charakteristischeren Dienst vorstellen, Any API. Einfach ausgedrückt hilft er intelligenten Verträgen 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. Beispielsweise müssen Web-3-Versicherungsgeschäftsanwendungen Wetterdaten oder Flugverspätungsdaten abrufen. Beispielsweise können Treibhausgase einige ESG-ähnliche Projekte bewirken, darunter Wahlsportspiele, die mit Prognosemärkten kombiniert werden können. Wir stellen Datenmärkte auf Basis einer beliebigen API bereit. In jedem Datenmarkt gibt es verschiedene Datenanbieter, die externe Dienste auf Basis ihrer eigenen Daten bereitstellen. Solange der Benutzer eine Anfrage sendet, kann er die Daten gemäß dem Benutzervertrag zurückschreiben die Serviceanforderungen. . Sowohl der Datenanbieter als auch der Datenempfänger werden vom Markt bestimmt. Es gibt einen Markt für Benutzer und Datenanbieter, und Chainlink monopolisiert nicht offiziell alle Daten und stellt diese dann der Kette zur Verfügung.
Der Workflow von Any API und Preis-Feed ist eigentlich ziemlich konsistent: Der Vertrag sendet zuerst eine Anfrage, und dann wird die Anfrage von den Chanlink-Knoten erkannt. Nach der Entdeckung kann Chanlink die erforderlichen Daten entsprechend der Anfrage auswählen und sie dann zurück in die Blockchain schreiben. AnyAPI kann Benutzern eine Vielzahl von Daten bereitstellen, zeichnet sich jedoch dadurch aus, dass es zwar relativ schnell erstellt wird, aber von einem einzelnen Knoten bereitgestellt wird. AnyAPI möchte Daten auf einfache Weise so schnell wie möglich abrufen, anstatt Daten über die zuvor erwähnte dezentrale Netzwerk-Orakelmaschine 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. Außerdem haben wir Anfang April dieses Jahres einen neuen Dienst namens Functions erstellt. Vereinfacht gesagt führt er jede Benutzeranfrage über ein dezentrales Oracle-Netzwerk aus. Benutzer können eine fortgeschrittene Programmiersprache wie Java verwenden, um das Betriebsprogramm zu schreiben. Es kann nicht mehr nur in der Solidity-Sprache geschrieben werden, das in Java geschriebene Programm ist definitiv umfangreicher als Solidity. 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 zum Futterpreis ist sein Freiheitsgrad sehr hoch. Das heißt, dem Smart Contract kann eine externe Schnittstelle gegeben werden, um jede gewünschte Methode zu nutzen. Es kann auch einen Teil der Logik, die es ausführen muss, in den Vertrag schreiben und wird dann nicht von der Blockchain, sondern von der Oracle-Maschine ausgeführt. Dies entspricht der direkten Einbettung des Oracle-Maschinendienstes in den Smart Contract und wird zu einem Hybrid Art von Smart Contract. Wenn Sie dies auf diese Weise tun, wird Ihre Ausführung durch das dezentrale Netzwerk garantiert, und Ihre nicht deterministischen Operationen sind Operationen, die nicht auf der Blockchain ausgeführt werden können und über die dezentrale Oracle-Maschine ausgeführt werden können. Das Netzwerk führt das Ergebnis aus und gibt es zurück . Insgesamt kann es die Funktionalität von Smart Contracts erheblich verbessern. Die Funktionen, die es ausführen kann, werden umfangreicher sein als zuvor und es ist auch sehr einfach auf der Clientseite anzuwenden. Sie müssen Ihrem Vertrag nur zwei Funktionen hinzufügen und können das dezentrale Oracle-Netzwerk direkt als Teil Ihres Smart nutzen Vertrag. zu verwenden. Und es ist auch für traditionelle Web2-Programmierer sehr benutzerfreundlich, da die Ausführungslogik durch traditionelle Programmiersprachen vervollständigt werden kann. Der Gesamtprozess hat sich nicht geändert: Die Anfrage wird gesendet, dann an das dezentrale Oracle-Netzwerk gesendet, nach der Ausführung aggregiert und schließlich in den Smart Contract des Benutzers zurückgeschrieben.
Das Obige habe ich über die Oracle-Maschine und einige Dienste mitgeteilt, die das auf der Oracle-Maschine basierende dezentrale Netzwerk bereitstellen kann.