CHAINLINK EIN DEZENTRALES ORACLE-NETZWERK - TRANSLATEWHITEPAPER
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
ChainLink Ein dezentrales Oracle-Netzwerk Steve Ellis, Ari Juels †, und Sergey Nazarov 4. September 2017 ( v1.0) Abstrakt Intelligente Verträge stehen kurz davor, viele Branchen zu revolutionieren, indem sie die Notwendigkeit traditioneller rechtlicher Vereinbarungen und zentral automatisierter digitaler Vereinbarungen ersetzen. Sowohl die Leistungsüberprüfung als auch die Ausführung beruhen auf manuellen Aktionen einer der Vertragsparteien oder auf einem automatisierten System, das relevante Änderungen programmgesteuert abruft und aktualisiert. Leider können die Blockchains, auf denen Smart Contracts ausgeführt werden, aufgrund ihrer zugrunde liegenden Konsensprotokolle die native Kommunikation mit externen Systemen nicht unterstützen. Heute besteht die Lösung für dieses Problem darin, eine neue Funktionalität einzuführen, die als Orakel, das bietet Konnektivität zur Außenwelt. Bestehende Orakel sind zentralisierte Dienste. Jeder intelligente Vertrag, der solche Dienste nutzt, weist eine einzige Fehlerquelle auf, sodass er nicht sicherer ist als eine herkömmliche, zentral ausgeführte digitale Vereinbarung. In diesem Artikel stellen wir ChainLink vor, ein dezentrales Orakelnetzwerk. Wir beschreiben die On-Chain-Komponenten, die ChainLink für Verträge zur Erlangung externer Konnektivität bereitstellt, und die Software, die die Knoten des Netzwerks mit Strom versorgt. Wir präsentieren sowohl ein einfaches On-Chain-System zur Aggregation von Vertragsdaten als auch einen effizienteren Konsensmechanismus außerhalb der Kette. Wir beschreiben auch die Unterstützung von Reputations- und Sicherheitsüberwachungsdiensten für ChainLink, die Benutzern helfen, fundierte Anbieterauswahlen zu treffen und selbst unter aggressiv widrigen Bedingungen einen robusten Dienst zu erzielen. Schließlich charakterisieren wir die Eigenschaften eines idealen Orakels als Leitfaden für unsere Sicherheitsstrategie und legen mögliche zukünftige Verbesserungen fest, einschließlich umfangreicher Orakelprogrammierung, Änderungen der Datenquelleninfrastruktur und vertraulicher Ausführung intelligenter Verträge. 1
Inhalt 1. Einleitung 3 2 Architekturübersicht 4 2.1 On-Chain-Architektur. . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 O ff -Kettenarchitektur. . . . . . . . . . . . . . . . . . . . . . . . . . 6 3 Oracle-Sicherheit 7 4 ChainLink-Dezentralisierungsansatz 11 4.1 Quellen verteilen. . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.2 Orakel verteilen. . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5 ChainLink-Sicherheitsdienste 16 5.1 Validierungssystem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 5.2 Reputationssystem. . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 5.3 Zertifizierungsservice. . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5.4 Vertrags-Upgrade-Service. . . . . . . . . . . . . . . . . . . . . . . . 20 5.5 Verwendung von LINK-Token. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6 Langfristige technische Strategie 21 6.1 Vertraulichkeit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.2 Änderungen der Infrastruktur. . . . . . . . . . . . . . . . . . . . . . . . . . 25 6.3 Berechnung der O ff -Kette. . . . . . . . . . . . . . . . . . . . . . . . . . 26 7 Bestehende Oracle-Lösungen 26 8 Fazit 27 Eine O ff -Kettenaggregation 33 A.1 OCA Protokoll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 A.2 Beweisskizzen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 A.3 Diskussion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 B SGX-Vertrauensannahmen 38 2
1. Einleitung Intelligente Verträge sind Anwendungen, die auf einer dezentralen Infrastruktur wie einer Blockchain ausgeführt werden. Sie sind manipulationssicher in dem Sinne, dass keine Partei (auch nicht ihr Schöpfer) ihren Code ändern oder ihre Ausführung stören kann. In der Vergangenheit wurden in Code enthaltene Verträge zentral ausgeführt, sodass sie von einer privilegierten Partei geändert, gekündigt und sogar gelöscht werden können. Im Gegensatz dazu schaffen die Ausführungsgarantien von Smart Contracts, die alle Parteien an eine schriftliche Vereinbarung binden, eine neue und leistungsstarke Art von Vertrauensbeziehung, die nicht auf dem Vertrauen in eine Partei beruht. Intelligente Verträge sind daher ein überlegenes Mittel zur Realisierung und Verwaltung digitaler Vereinbarungen, da sie sich selbst überprüfen und selbst ausführen (dh wie oben erläutert manipulationssicher sind). Das leistungsstarke neue Vertrauensmodell, das intelligente Verträge verkörpern, bringt jedoch eine neue technische Herausforderung mit sich: Konnektivität. Die überwiegende Mehrheit der interessanten [27] 1 Intelligente Vertragsanwendungen basieren auf Daten über die reale Welt, die aus Schlüsselressourcen stammen, insbesondere Datenfeeds und APIs, die außerhalb der Blockchain liegen. Aufgrund der Mechanismen der Konsensmechanismen, die Blockchains zugrunde liegen, kann eine Blockchain solche kritischen Daten nicht direkt abrufen. Wir schlagen eine Lösung für das Problem der intelligenten Vertragskonnektivität in Form von ChainLink vor, einem sicheren Orakel-Netzwerk. Was ChainLink von anderen Oracle-Lösungen unterscheidet, ist seine Fähigkeit, als vollständig dezentrales Netzwerk zu arbeiten. Dieser dezentrale Ansatz schränkt das Vertrauen in eine einzelne Partei ein und ermöglicht es, die in intelligenten Verträgen geschätzte manipulationssichere Qualität auf den End-to-End-Betrieb zwischen intelligenten Verträgen und den APIs auszudehnen, auf die sie sich verlassen. Es ist notwendig, intelligente Verträge extern bekannt zu machen, dh in der Lage zu sein, mit Ressourcen der Kette zu interagieren, wenn sie die heute verwendeten digitalen Vereinbarungen ersetzen sollen. Heutzutage verwendet der Löwenanteil der digitalen Vertragsvereinbarungen, die digital automatisiert wurden, externe Daten, um die vertragliche Leistung nachzuweisen, und erfordert, dass Datenausgaben an externe Systeme übertragen werden. Wenn intelligente Verträge diese älteren vertraglichen Mechanismen ersetzen, erfordern sie hochsichere Versionen derselben Arten von Dateneingaben und -ausgaben. Beispiele für potenzielle Smart Contracts der nächsten Generation und deren Datenanforderungen sind: • • Wertpapiere intelligente Verträge B. Anleihen, Zinsderivate und viele andere erfordern den Zugriff auf APIs, die Marktpreise und Marktreferenzdaten, z. B. Zinssätze, melden. 1 Die Hauptanwendung von intelligenten Verträgen in Ethereum ist heute die Verwaltung von Token, die in den meisten intelligenten Vertragsnetzwerken eine gängige Funktionalität sind. Wir glauben, dass der derzeitige Fokus auf Token unter Ausschluss vieler anderer möglicher Anwendungen auf einen Mangel an angemessenen Orakel-Diensten zurückzuführen ist, eine Situation, die ChainLink speziell beheben möchte. 3
• • Intelligente Versicherungsverträge Sie benötigen Daten-Feeds zu IoT-Daten im Zusammenhang mit dem betreffenden versicherbaren Ereignis, z. B.: War die magnetische Tür des Lagers zum Zeitpunkt des Verstoßes verschlossen, war die Brandmauer des Unternehmens online oder war der Flug, für den Sie eine Versicherung hatten, pünktlich. • • Intelligente Handelsfinanzierungsverträge benötigen GPS-Daten über Sendungen, Daten aus ERP-Systemen der Lieferkette und Zolldaten über die versendeten Waren, um die Erfüllung vertraglicher Verpflichtungen zu bestätigen. Ein weiteres Problem, das diesen Beispielen gemeinsam ist, ist die Unfähigkeit intelligenter Verträge, Daten in Off-Chain-Systeme auszugeben. Diese Ausgabe erfolgt häufig in Form einer Zahlungsnachricht, die an eine herkömmliche zentralisierte Infrastruktur weitergeleitet wird, in der Benutzer bereits Konten haben, z. B. für Bankzahlungen, PayPal und andere Zahlungsnetzwerke. Die Fähigkeit von ChainLink, Daten im Auftrag eines intelligenten Vertrags sicher an APIs und verschiedene Legacy-Systeme zu übertragen, ermöglicht die Erstellung von extern bekannten manipulationssicheren Verträgen. Whitepaper-Roadmap In diesem Whitepaper * überprüfen wir die ChainLink-Architektur (Abschnitt 2). Anschließend erklären wir, wie wir die Sicherheit für Orakel definieren (Abschnitt 3). Wir beschreiben den ChainLink-Ansatz zur Dezentralisierung / Verteilung von Orakeln und Datenquellen (Abschnitt 4) und diskutieren anschließend die vier von ChainLink vorgeschlagenen Sicherheitsdienste sowie die Rolle von LINK-Token (Abschnitt 5). Anschließend beschreiben wir eine vorgeschlagene langfristige Entwicklungsstrategie, die einen besseren Schutz der Vertraulichkeit, die Verwendung vertrauenswürdiger Hardware, Änderungen der Infrastruktur und die allgemeine Programmierbarkeit von Oracle umfasst (Abschnitt 6). Wir überprüfen kurz alternative Orakelentwürfe (Abschnitt 7) und schließen mit einer kurzen Diskussion der Entwurfsprinzipien und der Philosophie, die die Entwicklung von ChainLink leiten (Abschnitt 8). 2 Architekturübersicht Das Hauptfunktionsziel von ChainLink besteht darin, zwei Umgebungen zu verbinden: On-Chain und O-Chain. Im Folgenden wird die Architektur jeder ChainLink-Komponente beschrieben. ChainLink wird zunächst auf Ethereum [16] [35] aufbauen, beabsichtigt jedoch, alle führenden intelligenten Vertragsnetzwerke sowohl für kettenübergreifende als auch für kettenübergreifende Interaktionen zu unterstützen. ChainLink wurde sowohl in der On- als auch in der Off-Chain-Version unter Berücksichtigung der Modularität entwickelt. Jedes Teil des ChainLink-Systems kann aktualisiert werden, sodass verschiedene Komponenten ausgetauscht werden können, wenn bessere Techniken und konkurrierende Implementierungen entstehen. 4
2.1 On-Chain-Architektur Als Oracle-Dienst geben ChainLink-Knoten Antworten auf Daten zurück Anfragen oder Anfragen hergestellt durch oder im Auftrag eines Benutzervertrags, den wir als bezeichnen Verträge anfordern und bezeichnen mit USER-SC. Die On-Chain-Schnittstelle von ChainLink zum Anfordern von Verträgen ist selbst ein On-Chain-Vertrag, den wir bezeichnen CHAINLINK-SC. Hinter CHAINLINK-SC, ChainLink verfügt über eine On-Chain-Komponente, die aus drei Hauptverträgen besteht: a Reputationsvertrag, ein Auftragsabgleichsvertrag, und ein Aggregatvertrag. Der Reputationsvertrag verfolgt die Leistungsmetriken von Oracle-Service-Providern. Der Auftragsabgleich-Smart-Vertrag nimmt eine vorgeschlagene Service-Level-Vereinbarung entgegen, protokolliert die SLA-Parameter und sammelt Gebote von Oracle-Anbietern. Anschließend werden Gebote mithilfe des Reputationsvertrags ausgewählt und die Orakel-SLA abgeschlossen. Der Aggregatvertrag sammelt die Antworten der Orakelanbieter und berechnet das endgültige kollektive Ergebnis der ChainLink-Abfrage. Außerdem werden die Metriken von Oracle-Anbietern in den Reputationsvertrag zurückgeführt. ChainLink-Verträge sind modular aufgebaut, sodass sie bei Bedarf von Benutzern konfiguriert oder ersetzt werden können. Der On-Chain-Workflow besteht aus drei Schritten: 1) Orakelauswahl, 2) Datenberichterstattung, 3) Ergebnisaggregation. Oracle-Auswahl Ein Käufer von Oracle Services legt Anforderungen fest, aus denen sich ein Vorschlag für ein Service Level Agreement (SLA) zusammensetzt. Der SLA-Vorschlag enthält Details wie Abfrageparameter und die Anzahl der vom Käufer benötigten Orakel. Darüber hinaus gibt der Käufer den Ruf und die aggregierten Verträge an, die für den Rest der Vereinbarung verwendet werden sollen. Mithilfe der in der Kette gepflegten Reputation und eines robusteren Datensatzes aus Protokollen früherer Verträge können Käufer Orakel manuell über Off-Chain-Listing-Services sortieren, filtern und auswählen. Wir beabsichtigen, dass ChainLink einen solchen Auflistungsservice unterhält, alle ChainLink-bezogenen Protokolle sammelt und die Binärdateien der aufgelisteten Orakelverträge überprüft. In Abschnitt 5 werden die Listingservice- und Reputationssysteme näher erläutert. Die Daten, die zum Generieren von Listings verwendet werden, werden aus der Blockchain abgerufen, sodass alternative Orakel-Listing-Services erstellt werden können. Käufer werden SLA-Vorschläge bei Orakel der Kette einreichen und eine Einigung erzielen, bevor sie die SLA in der Kette abschließen. Manueller Abgleich ist nicht in allen Situationen möglich. Beispielsweise muss ein Vertrag möglicherweise Oracle-Dienste dynamisch als Reaktion auf seine Auslastung anfordern. Automatisierte Lösungen lösen dieses Problem und verbessern die Benutzerfreundlichkeit. Aus diesen Gründen wird von ChainLink auch ein automatisierter Orakelabgleich durch die Verwendung von Auftragsabgleichsverträgen vorgeschlagen. Sobald der Käufer seinen SLA-Vorschlag spezifiziert hat, anstatt die Orakel direkt zu kontaktieren, wird er die SLA einem Auftragsabgleichsvertrag unterziehen. Die Übermittlung des Vorschlags an den Auftragsabgleichsvertrag löst ein Protokoll aus, das Orakelanbieter erstellen können 5
überwachen und filtern basierend auf ihren Fähigkeiten und Servicezielen. ChainLink-Knoten entscheiden dann, ob sie auf den Vorschlag bieten möchten oder nicht, wobei der Vertrag nur Gebote von Knoten akzeptiert, die den Anforderungen des SLA entsprechen. Wenn ein Orakel-Dienstleister auf einen Vertrag bietet, verpflichtet er sich dazu, insbesondere indem er den Strafbetrag anfügt, der aufgrund seines Fehlverhaltens verloren gehen würde, wie in der SLA definiert. Gebote werden für das gesamte Gebotsfenster angenommen. Sobald die SLA genügend qualifizierte Gebote erhalten hat und das Gebotsfenster beendet ist, wird die angeforderte Anzahl von Orakeln aus dem Gebotspool ausgewählt. Strafzahlungen, die während des Bietungsprozesses angeboten wurden, werden an Orakel zurückgegeben, die nicht ausgewählt wurden, und ein endgültiger SLA-Datensatz wird erstellt. Wenn das abgeschlossene SLA aufgezeichnet wird, wird ein Protokoll ausgelöst, das die ausgewählten Orakel benachrichtigt. Die Orakel führen dann die von der SLA festgelegte Aufgabe aus. Datenberichterstattung Sobald der neue Orakel-Datensatz erstellt wurde, führen die Orakel der Kette die Vereinbarung aus und melden sie in der Kette zurück. Weitere Einzelheiten zu Wechselwirkungen zwischen Ketten finden Sie in den Abschnitten 2.2 und 4. Ergebnisaggregation Sobald die Orakel ihre Ergebnisse dem Orakelvertrag mitgeteilt haben, werden ihre Ergebnisse dem Aggregatvertrag zugeführt. Der Aggregatvertrag bewertet die kollektiven Ergebnisse und berechnet eine gewichtete Antwort. Die Gültigkeit jeder Orakelantwort wird dann dem Reputationsvertrag gemeldet. Schließlich wird die gewichtete Antwort an die angegebene Vertragsfunktion in zurückgegeben USER-SC. Das Erkennen von abweichenden oder falschen Werten ist ein Problem, das für jeden Typ von Datenfeed und Anwendung spezifisch ist. Beispielsweise kann es für numerische Daten erforderlich sein, abweichende Antworten vor der Mittelwertbildung zu erkennen und abzulehnen, jedoch nicht für boolesche Daten. Aus diesem Grund gibt es keinen bestimmten Aggregatvertrag, sondern eine konfigurierbare Vertragsadresse, die vom Käufer angegeben wird. ChainLink wird einen Standardsatz von Aggregatverträgen enthalten, es können jedoch auch benutzerdefinierte Verträge angegeben werden, sofern diese der Standardberechnungsschnittstelle entsprechen. 2.2 O ff -Kettenarchitektur In der Kette besteht ChainLink zunächst aus einem Netzwerk von Orakelknoten, die mit dem Ethereum-Netzwerk verbunden sind, und wir beabsichtigen, alle führenden Smart-Contract-Netzwerke zu unterstützen. Diese Knoten sammeln unabhängig voneinander Antworten auf Anfragen der Kette. Wie wir weiter unten erläutern, werden ihre einzelnen Antworten über einen von mehreren möglichen Konsensmechanismen zu einer globalen Antwort zusammengefasst, die an einen anfordernden Vertrag zurückgegeben wird USER-SC. Die ChainLink-Knoten werden von der Standard-Open-Source-Kernimplementierung unterstützt, die Standard-Blockchain-Interaktionen, die Planung und die Verbindung mit gemeinsamen externen Ressourcen verwaltet. Knotenbetreiber können Software hinzufügen 6
Erweiterungen, sogenannte externe Adapter, ermöglichen es den Betreibern, zusätzliche spezialisierte Off-Chain-Services anzubieten. ChainLink-Knoten wurden bereits neben öffentlichen Blockchains und privaten Netzwerken in Unternehmenseinstellungen bereitgestellt. Die dezentrale Ausführung der Knoten ist die Motivation für das ChainLink-Netzwerk. ChainLink Core. Die Kernknotensoftware ist für die Anbindung an die Blockchain, die Planung und den Ausgleich der Arbeit zwischen den verschiedenen externen Diensten verantwortlich. Von ChainLink-Knoten ausgeführte Arbeiten werden wie folgt formatiert Zuordnungen. Jede Zuweisung besteht aus einer Reihe kleinerer Auftragsspezifikationen, die als Unteraufgaben bezeichnet werden und als Pipeline verarbeitet werden. Jede Unteraufgabe hat eine bestimmte Operation, die sie ausführt, bevor sie ihr Ergebnis an die nächste Unteraufgabe weitergibt und schließlich ein endgültiges Ergebnis erzielt. In der Knotensoftware von ChainLink sind einige Unteraufgaben integriert, darunter HTTP-Anforderungen, JSON-Analyse und Konvertierung in verschiedene Blockchain-Formate. Externe Adapter. Über die integrierten Unteraufgabentypen hinaus können benutzerdefinierte Unteraufgaben durch Erstellen definiert werden Adapter. Adapter sind externe Services mit einer minimalen REST-API. Durch die serviceorientierte Modellierung von Adaptern können Programme in jeder Programmiersprache einfach implementiert werden, indem einfach eine kleine Zwischen-API vor dem Programm hinzugefügt wird. Ebenso kann die Interaktion mit komplizierten mehrstufigen APIs auf einzelne Unteraufgaben mit Parametern vereinfacht werden. Unteraufgabenschemata. Wir gehen davon aus, dass viele Adapter Open Source sind, damit die Dienste von verschiedenen Community-Mitgliedern geprüft und ausgeführt werden können. Da viele verschiedene Adaptertypen von vielen verschiedenen Entwicklern entwickelt werden, ist die Gewährleistung der Kompatibilität zwischen Adaptern von entscheidender Bedeutung. ChainLink arbeitet derzeit mit einem Schemasystem, das auf dem JSON-Schema [36] basiert, um anzugeben, welche Eingaben jeder Adapter benötigt und wie sie formatiert werden sollen. In ähnlicher Weise geben Adapter ein Ausgabeschema an, um das Format der Ausgabe jeder Unteraufgabe zu beschreiben. 3 Oracle-Sicherheit Um die Sicherheitsarchitektur von ChainLink zu erklären, müssen wir zunächst erklären, warum Sicherheit wichtig ist - und was sie bedeutet. Warum müssen Orakel sicher sein? Zurück zu unseren einfachen Beispielen in Abschnitt 1: Wenn eine intelligente Vertragssicherheit einen falschen Datenfeed erhält, kann sie die falsche Partei auszahlen, wenn intelligente Vertragsversicherungsdatenfeeds vom Versicherten manipuliert werden können 7
Abbildung 1: ChainLink-Workflow: 1) USER-SC macht eine On-Chain-Anfrage; 2) CHAINLINK-SC protokolliert ein Ereignis für die Orakel; 3) Der ChainLink-Kern nimmt das Ereignis auf und leitet die Zuweisung an einen Adapter weiter. 4) Der ChainLink-Adapter führt eine Anforderung an eine externe API aus. 5) Der ChainLink-Adapter verarbeitet die Antwort und gibt sie an den Kern zurück. 6) Der ChainLink-Kern meldet die Daten an CHAINLINK-SC; 7) CHAINLINK-SC aggregiert Antworten und gibt sie als einzelne Antwort an zurück USER-SC. Es kann zu Versicherungsbetrug kommen, und wenn GPS-Daten, die einem Handelsfinanzierungsvertrag zugewiesen wurden, nach dem Verlassen des Datenanbieters geändert werden können, kann die Zahlung für Waren freigegeben werden, die noch nicht angekommen sind. Im Allgemeinen bietet eine gut funktionierende Blockchain mit ihrer Hauptbuch- oder Bulletin-Board-Abstraktion sehr starke Sicherheitseigenschaften. Benutzer verlassen sich auf die Blockchain als eine Funktion, die Transaktionen korrekt validiert und verhindert, dass Daten geändert werden. Sie behandeln es effektiv wie einen vertrauenswürdigen Dritten (ein Konzept, das wir weiter unten ausführlich diskutieren). Ein unterstützender Orakeldienst muss ein Sicherheitsniveau bieten, das dem der von ihm unterstützten Blockchain entspricht. Daher muss auch ein Orakel den Benutzern als wirksamer vertrauenswürdiger Dritter dienen und mit sehr hoher Wahrscheinlichkeit korrekte und zeitnahe Antworten liefern. Die Sicherheit eines Systems ist nur so stark wie das schwächste Glied. Daher ist ein äußerst vertrauenswürdiges Orakel erforderlich, um die Vertrauenswürdigkeit einer hochentwickelten Blockchain zu gewährleisten. Orakelsicherheit definieren: Eine ideale Ansicht. Um über die Sicherheit von Orakeln nachzudenken, müssen wir sie zuerst definieren. Ein lehrreicher, prinzipieller Weg, über Orakelsicherheit nachzudenken, ergibt sich aus dem folgenden Gedankenexperiment. Stellen Sie sich vor, ein vertrauenswürdiger Dritter (Trusted Third Party, TTP) - eine ideale Entität oder Funktionalität, die Anweisungen stets genau nach dem Buchstaben ausführt - wurde beauftragt, ein Orakel auszuführen. Wir werden dieses Orakel mit bezeichnen ORACLE ( Verwenden Sie im Allgemeinen alle Großbuchstaben, um eine Entität zu kennzeichnen, der von den Benutzern vollständig vertraut wird. Nehmen Sie an, dass der TTP Daten aus einer absolut vertrauenswürdigen Datenquelle bezieht Src . Angesichts dieses magischen Dienstes ORAKEL, Welche Anweisungen würden wir von ihm verlangen? Um die Eigenschaft der Integrität zu erreichen, die auch als Authentizitätseigenschaft bezeichnet wird [24], würden wir dies einfach verlangen ORAKEL Führen Sie die folgenden Schritte aus: 8
Figur 2: Verhalten eines idealen Orakels ORAKEL wird durch folgende Schritte definiert: 1) Anfrage annehmen; 2) Daten erhalten; 3) Daten zurückgeben. Um die Vertraulichkeit einer Anforderung beim Entschlüsseln zu schützen, ORAKEL Verwendet oder enthüllt niemals die darin enthaltenen Daten, außer zum Abfragen Src . 1. Anfrage annehmen: Aufnahme aus einem intelligenten Vertrag USER-SC eine Anfrage Req = ( Src , τ, q) das gibt eine Zieldatenquelle an Src , eine Zeit oder einen Bereich von Zeiten τ, und eine Abfrage q; 2. Daten erhalten: Anfrage senden q zu Src zum Zeitpunkt τ; 3. Daten zurückgeben: Nach Erhalt der Antwort ein, Rückkehr ein zum intelligenten Vertrag. Diese einfachen Anweisungen, die korrekt ausgeführt werden, definieren einen starken, aussagekräftigen, aber einfachen Begriff von Sicherheit. Intuitiv diktieren sie das ORAKEL fungiert als vertrauenswürdig Brücke zwischen Src und USER-SC. 2 Zum Beispiel wenn Src ist https://www.FountOfKnowledge.com, τ ist 16 Uhr und q = „ Preis für Ticker INTC ”, Die Integrität von ORAKEL garantiert, dass es zur Verfügung stellen wird USER-SC mit genau dem Preis von INTC, der um 16 Uhr unter https://www.FountOfKnowledge.com abgefragt wurde. Vertraulichkeit ist eine weitere wünschenswerte Eigenschaft für Orakel. Wie USER-SC sendet Anf zu ORAKEL im klaren auf der Blockchain, Anf ist Öffentlichkeit. Es gibt viele Situationen, in denen Anf ist empfindlich und seine Veröffentlichung könnte schädlich sein. Wenn USER-SC ist zum Beispiel ein Flugversicherungsvertrag und sendet ORAKEL eine Anfrage Anf in Bezug auf den Flug eines bestimmten Benutzers ( q = „ Ätherluftflug 338 ”) Wäre das Ergebnis, dass die Flugpläne eines Benutzers der ganzen Welt offenbart werden. Wenn USER-SC ist ein Vertrag für 2 Natürlich werden hier viele Details weggelassen. ORAKEL sollte mit beiden kommunizieren USER-SC und Quelle Src über sichere, dh manipulationssichere Kanäle. (Wenn Src ist ein Webserver, TLS ist erforderlich. Kommunizieren mit USER-SC, ORACLE muss sicher sein, die richtige Blockchain abzukratzen und digital zu signieren EIN passend.) 9
Finanzhandel, Anf könnte Informationen über die Trades und das Portfolio eines Benutzers verlieren. Es gibt natürlich noch viele andere Beispiele. Zum Schutz der Vertraulichkeit von Req, Wir können diese Daten in verlangen Anf unter einem (öffentlichen Schlüssel) verschlüsselt werden, der zu gehört ORAKEL. Weitere Nutzung der TTP-Natur von ORAKEL, wir könnten dann einfach geben ORAKEL die Informationsflussbeschränkung: Beim Entschlüsseln Req, offenbaren oder verwenden Sie niemals Daten in Anf außer zu fragen Src . Es gibt andere wichtige Orakeleigenschaften, wie die Verfügbarkeit, die letzte der klassischen CIA-Triade (Vertraulichkeit-Integrität-Verfügbarkeit). Ein wirklich idealer Service ORAKEL, würde natürlich nie untergehen. Die Verfügbarkeit umfasst auch subtilere Eigenschaften wie Zensurresistenz: Eine ehrliche ORAKEL wird bestimmte intelligente Verträge nicht herausgreifen und ihre Anfragen ablehnen. Das Konzept eines vertrauenswürdigen Dritten ähnelt der Vorstellung einer idealen Funktionalität [7], mit der die Sicherheit kryptografischer Protokolle in bestimmten Modellen nachgewiesen werden kann. Wir können eine Blockchain auch in ähnlichen Begriffen modellieren und sie als TTP konzipieren, das ein ideales Bulletin Board beibehält. Seine Anweisungen lauten, Transaktionen zu akzeptieren, zu validieren, zu serialisieren und dauerhaft im Bulletin Board zu verwalten, einer Datenstruktur, die nur zum Anhängen geeignet ist. Warum das ideale Orakel ( ORAKEL) ist schwer zu erreichen. Es gibt natürlich keine absolut vertrauenswürdige Datenquelle Src . Daten können aufgrund fehlerhafter Websites, betrügerischer Dienstleister oder ehrlicher Fehler harmlos oder böswillig beschädigt werden. Wenn Src ist nicht vertrauenswürdig, auch wenn ORAKEL funktioniert genau wie ein TTP, wie oben beschrieben, entspricht jedoch nicht vollständig dem von uns gewünschten Sicherheitsbegriff. Bei einer fehlerhaften Quelle Src , Die oben definierte Integritätseigenschaft bedeutet nicht mehr die Antwort eines Orakels ein ist richtig. Wenn der wahre Preis von Intel 40 US-Dollar beträgt und https://www.FountOfKnowledge.com Dann wird es beispielsweise als $ 50 falsch gemeldet ORAKEL sendet den falschen Wert a = $ 50 bis USER-SC. Dieses Problem ist bei Verwendung einer einzelnen Quelle unvermeidbar Src . ORAKEL hat einfach keine Möglichkeit zu wissen, ob die Antworten Src bietet zu seinen Abfragen sind korrekt. Ein größeres Problem ist natürlich die Tatsache, dass unser TTP für ORAKEL ist nur eine Abstraktion. Kein Dienstleister ist bedingungslos vertrauenswürdig. Selbst die Besten können fehlerhaft oder gehackt sein. Es gibt also keine Möglichkeit für einen Benutzer oder einen intelligenten Vertrag, die absolute Sicherheit eines Dienstes zu haben ORAKEL wird seine Anweisungen treu ausführen. ChainLink begründet seine Sicherheitsprotokolle mit dieser idealen Funktionalität ORAKEL. Unser Ziel bei ChainLink ist es, ein reales System mit zu erreichen Eigenschaften so nah wie möglich an denen von ORAKEL unter realistischen Vertrauensannahmen. Wir erklären jetzt wie. Der Einfachheit halber bezeichnen wir nun mit CHAINLINK-SC Der gesamte Satz von ChainLink-Verträgen, dh die vollständige On-Chain-Funktionalität (nicht nur die Benutzeroberfläche) 10
Verträge anfordern). Wir abstrahieren dabei die mehreren Einzelverträge, die tatsächlich in der Systemarchitektur verwendet werden. 4 ChainLink-Dezentralisierungsansatz Wir schlagen drei grundlegende komplementäre Ansätze vor, um fehlerhafte Knoten zu vermeiden: (1) Verteilung von Datenquellen; (2) Verteilung von Orakeln; und (3) Verwendung vertrauenswürdiger Hardware. Wir diskutieren die ersten beiden Ansätze, die beinhalten Dezentralisierung, in diesem Abschnitt. In Abschnitt 6 diskutieren wir unsere langfristige Strategie für vertrauenswürdige Hardware, einen anderen und komplementären Ansatz. 4.1 Quellen verteilen Ein einfacher Weg, um mit einer fehlerhaften Einzelquelle umzugehen Src ist es, Daten von zu erhalten mehrere Quellen, dh verteilen Sie die Datenquelle. Ein vertrauenswürdiger ORAKEL kann eine Sammlung abfragen von Quellen Src 1 , Src 2 ,. . . , Src k , Antworten erhalten ein 1, ein 2 ,. . . , ein k, und aggregieren sie in eine einzige Antwort A = agg ( ein 1, ein 2 ,. . . , ein k). ORAKEL Dies kann auf verschiedene Arten geschehen. Eine davon ist beispielsweise die Mehrheitsentscheidung. Wenn die meisten Quellen die identischer Wert ein, die Funktion agg kehrt zurück ein; Andernfalls wird ein Fehler zurückgegeben. In diesem Fall vorausgesetzt, dass eine Mehrheit (> k / 2) Quellen funktionieren korrekt, ORAKEL gibt immer einen korrekten Wert zurück EIN. Viele alternative Funktionen agg kann die Robustheit gegenüber fehlerhaften Daten sicherstellen oder Schwankungen der Datenwerte im Laufe der Zeit (z. B. Aktienkurse) behandeln. Beispielsweise, agg Möglicherweise werden Ausreißer verworfen (z. B. der größte und der kleinste Wert) ein ich) und geben Sie den Mittelwert der verbleibenden aus. Natürlich können Fehler über Datenquellen hinweg auf eine Weise korreliert werden, die schwächer wird die durch Aggregation gegebenen Zusicherungen. Wenn Website Src 1 = EchoEcho.com erhält seine Daten von Src 2 = TheHorsesMouth.com, ein Fehler bei Src 2 wird immer einen Fehler bei implizieren Src 1 . Es können auch subtilere Korrelationen zwischen Datenquellen auftreten. Chainlink schlägt auch vor Forschung zur Kartierung und Berichterstattung der Unabhängigkeit von Datenquellen auf leicht verdauliche Weise zu betreiben, damit Orakel und Benutzer unerwünschte Korrelationen vermeiden können. 4.2 Orakel verteilen So wie Quellen verteilt werden können, ist unser idealer Service ORAKEL selbst kann als verteiltes System angenähert werden. Dies bedeutet, dass anstelle eines einzigen monolithischen Orakels Knoten Ö , wir können stattdessen eine Sammlung von haben n verschiedene Orakelknoten { Ö 1 , Ö 2 ,. . . , Ö n }. Jedes Orakel Ö ich kontaktiert seinen eigenen Satz von Datenquellen, die möglicherweise oder möglicherweise nicht 11
Figur 3: Anfragen werden sowohl auf Orakel als auch auf Datenquellen verteilt. Diese Abbildung zeigt ein Beispiel für eine solche Verteilung auf zwei Ebenen. Überlappung mit denen anderer Orakel. Ö ich aggregiert Antworten aus seinen Datenquellen und gibt eine eigene Antwort aus EIN ich zu einer Abfrage Anf. Einige dieser Orakel sind möglicherweise fehlerhaft. Also klar die Antworten aller Orakel EIN 1, EIN 2 ,. . . , EIN n müssen auf vertrauenswürdige Weise zu einem einzigen maßgeblichen Wert zusammengefasst werden EIN. Aber angesichts der Möglichkeit fehlerhafter Orakel, wo und wie wird dies geschehen Aggregation in ChainLink? Erste Lösung: In-Contract-Aggregation. Unsere ursprünglich vorgeschlagene Lösung in ChainLink wird eine einfache sein In-Contract-Aggregation. CHAINLINK-SC - - Dies wiederum bezeichnet den Teil von ChainLink in der Kette - aggregiert selbst die Orakelantworten. (Alternative, CHAINLINK-SC kann einen anderen Aggregationsvertrag nennen, aber der konzeptionellen Einfachheit halber nehmen wir an, dass die beiden Komponenten einen einzigen Vertrag bilden.) Mit anderen Worten, CHAINLINK-SC wird berechnen A = Agg ( EIN 1, EIN 2 ,. . . , EIN n) für eine Funktion Agg ( ähnlich zu agg, wie oben beschrieben) und senden Sie das Ergebnis EIN zu USER-SC. Dieser Ansatz ist praktisch für kleine n, und hat mehrere unterschiedliche Vorteile: • • Konzeptionelle Einfachheit: Trotz der Tatsache, dass das Orakel verteilt ist, eine einzige Einheit, CHAINLINK-SC, führt die Aggregation durch Ausführen durch Agg. • • Vertrauenswürdigkeit: Wie CHAINLINK-SC Der Code kann öffentlich eingesehen und sein korrektes Verhalten überprüft werden. (( CHAINLINK-SC wird ein relativ kleiner, einfacher Code sein.) Zusätzlich CHAINLINK-SC Die Ausführung ist vollständig sichtbar. 12
Kette. So Benutzer, dh Schöpfer von USER-SC, kann ein hohes Maß an Vertrauen erreichen im CHAINLINK-SC. • • Flexibilität: CHAINLINK-SC kann die meisten gewünschten Aggregationsfunktionen implementieren Agg - die Mehrheitsfunktion, Mittelwertbildung usw. So einfach es ist, dieser Ansatz stellt eine neuartige und interessante technische Herausforderung dar. nämlich das Problem von freeloading. Ein betrügerisches Orakel Ö z kann die Reaktion beobachten EIN ich eines anderen Orakels Ö ich und kopiere es. Auf diese Weise Orakel Ö z Vermeidet die Kosten für die Abfrage von Datenquellen, die Gebühren pro Abfrage erheben können. Freeloading schwächt die Sicherheit Indem Sie die Vielfalt der Datenquellenabfragen untergraben und Orakel davon abhalten, schnell zu reagieren: Langsam zu reagieren und frei zu laden, ist eine billigere Strategie. Wir schlagen eine bekannte Lösung für dieses Problem vor, nämlich die Verwendung eines Festschreibungs- / Offenlegungsschemas. In einer ersten Runde senden Orakel CHAINLINK-SC kryptografische Verpflichtungen zu ihren Antworten. Nach dem CHAINLINK-SC hat ein Quorum von Antworten erhalten, es leitet eine zweite Runde ein, in der Orakel ihre Antworten enthüllen. Algorithmus 1 zeigt ein einfaches sequentielles Protokoll, das die gegebene Verfügbarkeit garantiert 3 f + 1 Knoten. Es verwendet ein Festschreibungs- / Offenlegungsschema, um das freie Laden zu verhindern. Oracle-Antworten werden freigegeben und sind daher nur einem potenziellen Freeloader ausgesetzt nach dem Alle Verpflichtungen wurden eingegangen, wodurch der Freeloader vom Kopieren der Antworten anderer Orakel ausgeschlossen wurde. On-Chain-Protokolle können Blockzeiten nutzen, um synchrone Protokolldesigns zu unterstützen. In ChainLink erhalten Oracle-Knoten jedoch Daten von Quellen, die möglicherweise sehr unterschiedliche Antwortzeiten aufweisen, und die Aufhebungszeiten für Knoten können variieren aufgrund von: zB Verwendung unterschiedlicher Gaspreise in Ethereum. Um die schnellstmögliche Reaktionsfähigkeit des Protokolls zu gewährleisten, hat Alg. 1 ist als asynchrones Protokoll ausgelegt. Hier, Verpflichten r ( EIN) bezeichnet eine Wertverpflichtung EIN mit Zeuge r, während SID bezeichnet den Satz gültiger Sitzungs-IDs. Das Protokoll geht von authentifizierten Kanälen aus unter allen Spielern. Es ist leicht zu sehen, dass Alg. 1 wird erfolgreich beendet. Gegeben 3 f + 1 Knoten insgesamt höchstens f sind also zumindest fehlerhaft 2 f + 1 sendet Zusagen in Schritt 4. Von diesen Zusagen höchstens f kommen also zumindest von fehlerhaften Knoten f + 1 kommen von ehrlichen Knoten. Alle derartigen Verpflichtungen werden schließlich aufgehoben. Außerdem ist das leicht zu erkennen EIN wird in Alg.1 korrekt sein. Des f + 1 Aufhebungen auf den Einzelwert EIN, Mindestens einer muss von einem ehrlichen Knoten kommen. In-Contract-Aggregation über Alg. 1 wird kurzfristig der Hauptansatz sein, der von ChainLink unterstützt wird. Die vorgeschlagene anfängliche Implementierung wird eine komplexere, gleichzeitige Variante des Algorithmus beinhalten. Unser längerfristiger Vorschlag spiegelt sich in dem etwas komplizierteren Protokoll wider OCA ( O ff -Kettenaggregation), angegeben in den Algorithmen 2 und 3 in Anhang A. OCA ist ein O-Ketten-Aggregationsprotokoll, das 13
Algorithmus 1 InChainAgg ({ Ö ich } ni = 1) ( Code für CHAINLINK-SC) 1: Warte bis Anf wird empfangen von USER-SC. 2: sid ← $ SID 3: Übertragung ( Anfrage, sid). 4: Warten Sie, bis es eingestellt ist C. von 2 f + 1 Mitteilungen ( verpflichten, c i = Verpflichten r ich (( EIN ich), sid) von verschieden Ö ich empfangen werden. 5: Übertragung ( engagiert sein, sid). 6: Warten Sie, bis es eingestellt ist D. von f + 1 eindeutige gültige Aufhebungen ( aufheben, ( r ich, EIN ich), sid) werden wo für einige empfangen EIN, alle EIN i = EIN. 7: Senden ( Antworten, EIN, sid) zu USER-SC. Minimiert die Transaktionskosten in der Kette. Dieses Protokoll umfasst auch die Zahlung an Orakelknoten und stellt sicher, dass keine Zahlungen an Freeloader erfolgen. Mittelfristige Strategie: O-Ketten-Aggregation. In-Contract-Aggregation hat Ein wesentlicher Nachteil: Kosten. Es entstehen die Kosten für die Übertragung und Verarbeitung von Kette Auf) Orakelnachrichten (begeht und enthüllt für EIN 1, EIN 2 ,. . . , EIN n). In zulässigen Blockchains kann dieser Overhead akzeptabel sein. In erlaubnislosen Blockchains mit on- Ketten-Transaktionsgebühren wie Ethereum, wenn n groß ist, können die Kosten unerschwinglich sein. Ein kostengünstigerer Ansatz besteht darin, Orakelantworten über die Kette zu aggregieren und eine einzelne Nachricht an zu senden CHAINLINK-SC EIN. Wir schlagen die Anwendung dieses Ansatzes vor o ff -Kettenaggregation, mittel- bis langfristig. Das Problem, einen Konsenswert zu erreichen EIN Angesichts potenziell fehlerhafter Knoten ist das Problem des Konsenses, das Blockchains selbst untermauert, sehr ähnlich. Bei einer vorgegebenen Menge von Orakeln könnte man in Betracht ziehen, einen klassischen BFT-Konsensalgorithmus (Byzantine Fault Tolerant) zur Berechnung zu verwenden EIN. Klassische BFT-Protokolle sollen jedoch sicherstellen, dass am Ende eines Protokollaufrufs alle ehrlichen Knoten denselben Wert speichern, z. B. in einer Blockchain, dass alle Knoten denselben neuen Block speichern. In unserer Orakeleinstellung ist das Ziel etwas anders. Das wollen wir sicherstellen CHAINLINK-SC ( und dann USER-SC) erhält eine aggregierte Antwort A = Agg ( EIN 1, EIN 2 ,. . . , EIN n) ohne am Konsensprotokoll teilzunehmen und ohne Antworten von mehreren erhalten zu müssen Orakel. Darüber hinaus muss das Problem des freien Ladens noch angegangen werden. Das ChainLink-System schlägt die Verwendung eines einfachen Protokolls mit Schwellensignaturen vor. Solche Signaturen können mit einer Reihe von Signaturschemata realisiert werden, sind jedoch mit Schnorr-Signaturen besonders einfach zu implementieren [4]. Bei diesem Ansatz haben Orakel einen kollektiven öffentlichen Schlüssel pk und einen entsprechenden privaten Schlüssel sk das wird unter geteilt Ö 1 , Ö 2 ,. . . , Ö n in einem ( t, n) - Schwellenwert [3]. Eine solche gemeinsame Nutzung bedeutet, dass jeder Knoten Ö ich hat ein eindeutiges privates / öffentliches Schlüsselpaar ( sk ich, pk ich). Ö ich können 14
Figur 4: Sig sk [ EIN] kann durch jedes n / 2 + 1 der Orakel erreicht werden. Generieren Sie eine Teilsignatur σ i = Sig sk ich [ EIN ich] das kann in Bezug auf überprüft werden pk ich. Das Hauptmerkmal dieses Setups ist, dass Teilsignaturen denselben Wert haben EIN können über einen beliebigen Satz von aggregiert werden t Orakel, um eine einzige gültige zu ergeben kollektiv Unterschrift Σ = Sig sk [ EIN] auf eine Antwort EIN. Kein Satz von t - - 1 Orakel können jedoch eine gültige Signatur für jeden Wert erzeugen. Die einzelne Unterschrift Σ verkörpert also implizit das Partielle Unterschriften von mindestens t Orakel. Schwellensignaturen können durch Vermieten naiv realisiert werden Σ bestehen explizit aus einer Menge von t gültige, unabhängige Signaturen von einzelnen Knoten. Schwellenwertsignaturen haben ähnliche Sicherheitseigenschaften wie dieser naive Ansatz. Sie bieten jedoch eine signifikante Verbesserung der Onchain-Leistung: Sie reduzieren die Größe und die Kosten der Überprüfung Σ um einen Faktor von t. Mit diesem Setup scheint es, dass Orakel nur Teilsignaturen erzeugen und senden können, bis t solche Teilsignaturen ermöglichen die Berechnung von Σ. Wiederum tritt jedoch das Problem des freien Ladens auf. Wir müssen daher dafür sorgen, dass Orakel wirklich Erhalten Sie Daten von den angegebenen Quellen, anstatt zu betrügen und zu kopieren EIN ich von einem anderen Orakel. Unsere Lösung beinhaltet einen Finanzmechanismus: Ein Unternehmen ANBIETER (als intelligenter Vertrag realisierbar) belohnt nur Orakel, die Originaldaten für ihre Teilsignaturen bezogen haben. In einer verteilten Umgebung erweist es sich als schwierig, festzustellen, welche Orakel zur Zahlung berechtigt sind. Orakel können miteinander kommunizieren und wir haben keine einzige maßgebliche Einheit mehr ( CHAINLINK-SC) Antworten erhalten und sind daher un- fünfzehn
in der Lage, berechtigte Zahlungsempfänger direkt unter den teilnehmenden Orakeln zu identifizieren. Folglich, ANBIETER muss von den Orakeln selbst Beweise für Fehlverhalten erhalten, von denen einige möglicherweise nicht vertrauenswürdig sind. Wir schlagen die Verwendung konsensähnlicher Mechanismen in unserer Lösung für ChainLink vor, um dies sicherzustellen ANBIETER zahlt keine freeloading Orakel. Das von uns für ChainLink vorgeschlagene O-Ketten-Aggregationssystem mit den dazugehörigen sicherheitssicheren Skizzen finden Sie in Anhang A. Es verwendet ein verteiltes Protokoll, das auf Schwellenwertsignaturen basiert und Widerstand gegen das freie Laden durch bietet f f fehlerhafte Orakel. Zu diesem Zweck schlagen wir die Verwendung von vier Schlüsseln vor Sicherheitsdienste: ein Validierungssystem, ein Reputationssystem, ein Zertifizierungsservice, und ein Vertrags-Upgrade-Service. Alle diese Dienste können zunächst von einem Unternehmen oder einer Gruppe ausgeführt werden, die am Start des ChainLink-Netzwerks interessiert sind, sind jedoch dafür ausgelegt Arbeiten Sie streng nach der ChainLink-Philosophie des dezentralen Designs. Die von ChainLink vorgeschlagenen Sicherheitsdienste können die Teilnahme von Orakelknoten nicht blockieren oder Orakelantworten ändern. Die ersten drei Dienste bieten nur Bewertungen oder Anleitungen für Benutzer, während der Vertrags-Upgrade-Dienst für Benutzer völlig optional ist. Darüber hinaus sollen diese Dienste unabhängige Anbieter unterstützen, deren Teilnahme gefördert werden sollte, damit Benutzer schließlich mehrere Sicherheitsdienste zur Auswahl haben. 5.1 Validierungssystem Das ChainLink-Validierungssystem überwacht das Orakelverhalten in der Kette und bietet eine objektive Leistungsmetrik, die den Benutzer bei der Auswahl von Orakeln unterstützen kann. Es wird versuchen, Orakel zu überwachen, um: 16
• • Verfügbarkeit: Das Validierungssystem sollte Fehler eines Orakels aufzeichnen, um rechtzeitig auf Anfragen zu antworten. Es werden laufende Verfügbarkeitsstatistiken erstellt. • • Richtigkeit: Das Validierungssystem sollte offensichtliche fehlerhafte Antworten eines Orakels aufzeichnen, gemessen an Abweichungen von den Antworten von Kollegen. 3 In unserem anfänglichen On-Chain-Aggregationssystem in ChainLink ist eine solche Überwachung unkompliziert, da alle Orakelaktivitäten für sichtbar sind CHAINLINK-SC. Denken Sie jedoch daran, dass in dem für ChainLink vorgesehenen O-Chain-Aggregationssystem die Orakel selbst die Aggregation durchführen. Folglich, CHAINLINK-SC hat keinen direkten Einblick in Orakelantworten und kann die Verfügbarkeit und Korrektheit selbst nicht überwachen. Glücklicherweise signieren Orakel ihre Antworten digital und generieren so als Nebeneffekt nicht widerlegbare Beweise für ihre Antworten. Unser vorgeschlagener Ansatz wird daher darin bestehen, den Validierungsdienst als einen intelligenten Vertrag zu realisieren, der Orakel für die Vorlage von Beweisen für abweichende Antworten belohnt. Mit anderen Worten, Orakel würden dazu angeregt, scheinbar fehlerhaftes Verhalten zu melden. Die Überwachung der Verfügbarkeit ist etwas schwieriger, da Orakel ihre Fehler bei der Reaktion natürlich nicht unterschreiben. Stattdessen würde eine vorgeschlagene Protokollverbesserung erfordern, dass Orakel Bescheinigungen über den Satz von Antworten, die sie von anderen Orakeln erhalten haben, digital signieren. Der Validierungsvertrag würde dann die Einreichung von Bestätigungssätzen akzeptieren (und erneut belohnen), die zeigen, dass ein Orakel mit schlechter Leistung gegenüber seinen Kollegen eine konsequente Nichtbeantwortung aufweist. Sowohl im On-Chain- als auch im Off-Chain-Fall werden Verfügbarkeits- und Korrektheitsstatistiken für Orakel angezeigt an der Kette. Benutzer / Entwickler können sie somit in Echtzeit über ein geeignetes Front-End anzeigen, z. B. ein Dapp in Ethereum oder eine gleichwertige Anwendung für eine autorisierte Blockchain. 5.2 Reputationssystem Das für ChainLink vorgeschlagene Reputationssystem würde Benutzerbewertungen von Oracle-Anbietern und -Knoten aufzeichnen und veröffentlichen und den Benutzern die Möglichkeit bieten, die Oracle-Leistung ganzheitlich zu bewerten. Validator System-Berichte sind wahrscheinlich ein wichtiger Faktor bei der Bestimmung des Rufs von Orakeln und bei der Vertrauensstellung dieser Reputationen. Faktoren jenseits der On-Chain-Historie können jedoch wichtige Informationen über den Orakelknoten liefern 3 "Abweichung" muss datenabhängig definiert werden. Bei einfachen booleschen Antworten - zum Beispiel, ob ein Flug pünktlich ankam - bedeutet Abweichung einfach eine Antwort, die der der Mehrheit entgegengesetzt ist. Für beispielsweise die Temperatur einer Stadt, die zwischen Sensoren und Quellen rechtmäßig variieren kann, kann eine Abweichung eine signifikante numerische Abweichung bedeuten. Natürlich kann aus verschiedenen Gründen, z. B. aufgrund defekter Sensoren, sogar ein gut funktionierendes Orakel in einem Bruchteil der Zeit von der Mehrheitsantwort abweichen. 17
Sicherheitsprofile. Dies kann die Vertrautheit der Benutzer mit den Marken, Betriebseinheiten und Architekturen von Orakeln einschließen. Wir stellen uns vor, dass das ChainLink-Reputationssystem eine grundlegende On-Chain-Komponente enthält, in der die Bewertungen der Benutzer für andere intelligente Verträge verfügbar sind. Darüber hinaus sollten Reputationsmetriken leicht zugänglich sein, wenn größere Datenmengen effizient verarbeitet und flexibler gewichtet werden können. Für einen bestimmten Orakeloperator wird zunächst vorgeschlagen, dass das Reputationssystem die folgenden Metriken unterstützt, sowohl hinsichtlich der Granularität bestimmter Zuweisungstypen (siehe Abschnitt 2) als auch allgemein für alle von einem Knoten unterstützten Typen: • • Gesamtzahl der zugewiesenen Anfragen: Die Gesamtzahl der früheren Anfragen, denen ein Orakel zugestimmt hat, sowohl erfüllt als auch nicht erfüllt. • • Gesamtzahl der abgeschlossenen Anfragen: Die Gesamtzahl der früheren Anfragen, die ein Orakel erfüllt hat. Dies kann über die Anzahl der Anforderungen gemittelt werden, die zur Berechnung der Abschlussrate zugewiesen wurden. • • Gesamtzahl der akzeptierten Anfragen: Die Gesamtzahl der Anfragen, die bei der Berechnung von Verträgen im Vergleich zu Peer-Antworten als akzeptabel eingestuft wurden. Dies kann über die insgesamt zugewiesenen oder insgesamt abgeschlossenen Anforderungen gemittelt werden, um einen Einblick in die Genauigkeitsraten zu erhalten. • • Durchschnittliche Antwortzeit: Während es notwendig sein kann, Orakelantworten Zeit zur Bestätigung zu geben, wird die Aktualität ihrer Antworten hilfreich sein, um die zukünftige Aktualität zu bestimmen. Die durchschnittliche Antwortzeit wird basierend auf abgeschlossenen Anforderungen berechnet. • • Höhe der Strafzahlungen: Wenn Strafzahlungen gesperrt würden, um die Leistung eines Knotenbetreibers sicherzustellen, wäre das Ergebnis eine finanzielle Metrik für die Verpflichtung eines Orakelanbieters, sich nicht auf einen „Exit-Scam“ -Angriff einzulassen, bei dem der Anbieter das Geld der Benutzer nimmt und keine Dienste bereitstellt. Diese Metrik würde sowohl eine zeitliche als auch eine finanzielle Dimension umfassen. Hoch angesehene Dienste werden in jedem Markt stark dazu angeregt, sich korrekt zu verhalten und eine hohe Verfügbarkeit und Leistung sicherzustellen. Negatives Benutzerfeedback stellt ein erhebliches Risiko für den Markenwert dar, ebenso wie die mit Fehlverhalten verbundenen Strafen. Infolgedessen erwarten wir einen positiven Kreislauf, in dem gut funktionierende Orakel einen guten Ruf entwickeln und ein guter Ruf Anreize für eine anhaltend hohe Leistung schafft. 18
5.3 Zertifizierungsservice Während unsere Validierungs- und Reputationssysteme eine breite Palette fehlerhafter Verhaltensweisen von Orakeln behandeln sollen und in den allermeisten Fällen als Mittel zur Gewährleistung der Systemintegrität vorgeschlagen werden, kann ChainLink auch einen zusätzlichen Mechanismus enthalten, der als a bezeichnet wird Zertifizierungsservice. Ihr Ziel ist es, seltene, aber katastrophale Ereignisse zu verhindern und / oder zu beheben, insbesondere Am Stück Betrug in Form von Sybil und Spiegelung von Angriffen, die wir jetzt erklären. Sybil und Spiegelungsangriffe. Sowohl unsere einfachen als auch unsere vertraglichen Aggregationsprotokolle versuchen, das freie Laden im Sinne unehrlicher Knoten zu verhindern, die die Antworten ehrlicher Knoten kopieren. Aber keiner schützt davor Sybil greift an [ 9]. An solchen Angriffen ist ein Gegner beteiligt, der mehrere scheinbar unabhängige Orakel kontrolliert. Dieser Gegner kann versuchen, den Orakelpool zu dominieren, was mehr als verursacht f Orakel, um am Aggregationsprotokoll teilzunehmen und bereitzustellen falsche Daten zu strategischen Zeiten, z. B. um große Transaktionen in hochwertigen Verträgen zu beeinflussen. Quorums von betrügerischen Orakeln können auch nicht nur unter der Kontrolle eines einzelnen Gegners entstehen, sondern auch durch Absprachen zwischen mehreren Gegnern. Angriffe oder Fehler mit> f Orakel sind insofern besonders schädlich, als sie allein aufgrund des Verhaltens in der Kette nicht nachweisbar sind. Um die Betriebskosten zu senken, kann ein Sybil-Angreifer außerdem ein genanntes Verhalten anwenden Spiegeln, in dem es Orakel veranlasst, individuelle Antworten auf der Grundlage von Daten zu senden, die von a erhalten wurden einzelne Datenquellenabfrage. Mit anderen Worten, Orakel, die sich schlecht benehmen, können Daten außerhalb der Kette gemeinsam nutzen, geben jedoch vor, Daten unabhängig voneinander zu beschaffen. Das Spiegeln kommt einem Gegner zugute, unabhängig davon, ob er falsche Daten sendet oder nicht. Es stellt eine viel weniger schwerwiegende Sicherheitsbedrohung dar als Datenfälschung, beeinträchtigt jedoch die Sicherheit geringfügig, da die Fehlerkorrektur aufgrund diversifizierter Abfragen für eine bestimmte Quelle beseitigt wird Src . Zum Beispiel wenn https://www.datasource.com Gibt fehlerhafte Daten aus, beispielsweise aufgrund eines sporadisch ausgelösten Fehlers. Mehrere Abfrager erhalten möglicherweise immer noch ein korrektes Mehrheitsergebnis. Sybil-Angriffe, die im Allgemeinen zu falschen Daten, Spiegelung und Absprachen führen, können durch die Verwendung vertrauenswürdiger Hardware in unserer langfristigen Strategie beseitigt werden (siehe Abschnitt 6). Design des Zertifizierungsdienstes. Der ChainLink-Zertifizierungsdienst möchte eine allgemeine Integritäts- und Verfügbarkeitssicherung bieten und kurz- bis mittelfristig Spiegelungen und Absprachen von Orakelquoren erkennen und verhindern. Der Zertifizierungsdienst würde ausstellen Vermerke von hochwertigen Orakelanbietern. Wir betonen erneut, wie oben erwähnt, dass der Dienst Anbieter nur zum Nutzen der Benutzer bewertet. Es ist nicht dazu gedacht, die Teilnahme oder Nichtteilnahme von Orakelknoten am System zu diktieren. Der Zertifizierungsdienst unterstützt Vermerke, die auf verschiedenen Funktionen der Oracle-Bereitstellung und des Oracle-Verhaltens basieren. Es würde die Validierungssystemstatistik überwachen 19
auf Orakeln und führen Sie eine Post-hoc-Stichprobenprüfung von Antworten in der Kette durch - insbesondere bei Transaktionen mit hohem Wert - und vergleichen Sie diese mit Antworten, die direkt aus seriösen Datenquellen stammen. Angesichts der ausreichenden Nachfrage nach Daten eines Orakelanbieters erwarten wir einen ausreichenden wirtschaftlichen Anreiz, um Prüfungen von Orakelanbietern außerhalb der Kette zu rechtfertigen und die Einhaltung relevanter Sicherheitsstandards zu bestätigen, wie z. B. relevante Kontrollen in der Cloud Controls Matrix der Cloud Security Alliance (CSA) [ 26] sowie nützliche Sicherheitsinformationen, mit denen sie die Quelle und den Bytecode von Orakeln für ihre intelligenten Verträge ordnungsgemäß prüfen. Zusätzlich zu den Reputationsmetriken, automatisierten On-Chain- und automatisierten O-Chain-Systemen zur Betrugserkennung ist der Zertifizierungsdienst geplant, um Sybil-Angriffe und andere Missstände zu identifizieren, die automatisierte On-Chain-Systeme nicht können. Wenn zum Beispiel alle Knoten übereinstimmen, dass der Mond aus grünem Käse besteht, sind sie es kann verursachen USER-SC diese falsche Tatsache aufzunehmen. MONDKOMPONENTEN = {GRÜNER KÄSE} wird jedoch in der Blockchain aufgezeichnet und in einer Post-hoc-Überprüfung sichtbar. 5.4 Vertrags-Upgrade-Service Wie die jüngsten Smart Contract Hacks gezeigt haben, ist das Codieren von kugelsicheren Smart Contracts eine äußerst herausfordernde Aufgabe [1] [20] [22]. Und selbst wenn ein intelligenter Vertrag korrekt programmiert wurde, können Umweltveränderungen oder Fehler immer noch zu Sicherheitslücken führen, z. B. [2]. Aus diesem Grund schlagen wir einen Vertrags-Upgrade-Service vor. Wir betonen, dass die Nutzung dieses Dienstes völlig optional ist und von den Benutzern kontrolliert wird. Wenn kurzfristig Schwachstellen entdeckt werden, stellt der Vertrags-Upgrade-Service einfach einen neuen Satz unterstützender Orakelverträge in ChainLink zur Verfügung. Neu erstellte anfordernde Smart-Verträge können dann auf die neuen Oracle-Verträge migriert werden. Leider würden vorhandene mit dem alten, potenziell anfälligen Satz stecken bleiben. Langfristig also CHAINLINK-SC würde eine Flagge unterstützen ( MIGFLAG) in Orakelanrufen von anfordernden Verträgen, die angeben, ob ein Anruf an einen neuen weitergeleitet werden soll oder nicht CHAINLINK-SC sollte man verfügbar werden. Standardmäßig (dh wenn das Flag fehlt) auf falsch, MIGFLAG Dies würde es ermöglichen, Verträge anzufordern, von der automatischen Weiterleitung und damit von der Migration auf die neue Version von zu profitieren CHAINLINK-SC. Um die Weiterleitung zu aktivieren, veranlasst ein Benutzer seinen anfragenden Vertrag, ChainLink-Anfragen mit zu stellen MIGFLAG = wahr. (( Benutzer können ihre intelligenten Verträge so gestalten, dass sie diese Flagge ändern, wenn sie von einem autorisierten Vertragsadministrator eine entsprechende Anweisung in der Kette erhalten.) Die Migration von Benutzern zu neuen Orakelverträgen fungiert als eine Art „Notluke“, die von Blockchain-Forschern (siehe z. B. [23]) seit langem als Mechanismus zur Behebung von Fehlern und zur Behebung von Hacks befürwortet wird, ohne auf so umständliche Ansätze wie zurückzugreifen 20
Sie können auch lesen