
Blockchain-Orakel lösen das Problem der Bereitstellung von Informationen aus der Außenwelt in die Blockchain. Aber es ist wichtig zu wissen, welchen wir vertrauen können.
Im über den Start des Katalogs wir haben über die Bedeutung von Orakeln für die Blockchain geschrieben.
Dezentralisierte Anwendungen haben keinen Zugang zu Daten außerhalb der Blockchain. Daher werden kleine Programme – Orakel – erstellt, die Zugang zu den erforderlichen Daten aus der Außenwelt erhalten und diese in die Blockchain schreiben.
Je nach Art der Datenquelle können Orakel in drei Kategorien unterteilt werden: Software-, Hardware- und Menschenorakel.
Software-Orakel erhalten und verarbeiten Daten aus dem Internet – wie Temperatur, Preise von Waren, Verspätungen von Zügen und Flugzeugen. Die Informationen stammen aus Online-Quellen, wie APIs, und das Orakel extrahiert sie und platziert sie in der Blockchain. Lesen Sie, wie man ein einfaches Software-Orakel erstellt .
Hardware-Orakel überwachen Objekte der realen Welt mithilfe von Geräten und Sensoren. Beispielsweise nimmt eine Kamera, die auf das Überqueren einer Linie kalibriert ist, Autos auf, die in einen bestimmten Bereich fahren. Das Orakel dokumentiert das Überqueren der Linie in der Blockchain, und basierend auf diesen Daten kann das Skript der dezentralisierten Anwendung beispielsweise ein Bußgeld verhängen und Token vom Konto des Fahrzeughalters abbuchen.
Menschenorakel verwenden von Menschen eingegebene Daten. Sie gelten als die fortschrittlichsten aufgrund der unabhängigen Sichtweise auf das Ergebnis eines Ereignisses.
Kürzlich haben wir ein Tool bereitgestellt, das es ermöglicht, Daten von Orakeln gemäß einer vorgegebenen Spezifikation in die Blockchain zu schreiben. Es funktioniert extrem einfach: Man muss lediglich eine , indem man die Spezifikation ausfüllt. Danach können Datentransaktionen gemäß dieser Spezifikation über die Schnittstelle Waves Oracles veröffentlicht werden. Lesen Sie mehr über das Tool in .

Solche standardisierten Werkzeuge und Schnittstellen erleichtern das Leben sowohl für Entwickler als auch für Benutzer von Blockchain-Diensten. Unser Tool ist besonders nützlich für Menschenorakel und kann beispielsweise zur Aufzeichnung von Zertifikaten oder Urheberrechten an bestimmten Objekten verwendet werden.
Doch bei der Verwendung von Oracle stellt sich die Frage des Vertrauens in die von ihnen bereitgestellten Informationen. Ist die Quelle zuverlässig? Werden die Daten rechtzeitig erhalten? Darüber hinaus besteht das Risiko, dass das Oracle die Benutzer täuscht, um seinen eigenen Vorteil zu erlangen, indem es absichtlich falsche Informationen bereitstellt.
Nehmen wir als Beispiel ein Oracle, das Informationen über Sportereignisse für eine dezentrale Wettbörse bereitstellt.
Das Ereignis ist der Hauptkampf des UFC 242-Turniers: Khabib Nurmagomedov gegen Dustin Poirier. Nach Schätzung der Buchmacher ist Nurmagomedov der klare Favorit des Kampfes. Man konnte auf seinen Sieg mit einer Quote von 1,24 setzen, was einer Wahrscheinlichkeit von 76% entspricht. Die Quote für einen Sieg von Poirier betrug 4,26 (22%), während die Buchmacher die Wahrscheinlichkeit eines Unentschiedens mit einer Quote von 51,0 (2%) bewerteten.

Das Skript nimmt Wetten der Benutzer auf alle drei möglichen Ergebnisse an, bis es vom Oracle Informationen über das tatsächliche Ergebnis des Kampfes erhält. Dies ist das einzige Kriterium für die Verteilung der Gewinne.
Jetzt ist bekannt, dass Nurmagomedov gewonnen hat. Stellen wir uns jedoch vor, dass der unehrliche Eigentümer des Orakels, der einen Betrug im Voraus plant, auf das Ergebnis mit der günstigsten Quote — Unentschieden — wettet. Als der Wettpool ein großes Volumen erreicht, initiiert der Eigentümer des Orakels die Aufzeichnung falscher Informationen in der Blockchain über angeblich unentschieden ausgegangenen Kampf. Das Skript der dezentralen Börse hat keine Möglichkeit, die Zuverlässigkeit der erhaltenen Daten zu überprüfen und verteilt die Gewinne nur gemäß diesen Daten.
Wenn der potenzielle Gewinn aus einem solchen Betrug höher ist als die prognostizierten Einnahmen eines ehrlichen Orakels und das Risiko von Klagen gering, steigt die Wahrscheinlichkeit unehrlicher Handlungen des Eigentümers des Orakels erheblich.
Eine mögliche Lösung des Problems besteht darin, Daten von mehreren Orakeln anzufordern und die erhaltenen Werte zu einem Konsens zu bringen. Man kann mehrere Konsensarten unterscheiden:
- alle Orakel haben dieselbe Information bereitgestellt
- die Mehrheit der Orakel hat dieselbe Information bereitgestellt (2 von 3, 3 von 4 usw.)
- Anpassung der Daten der Orakel auf den Durchschnittswert (es sind Varianten möglich, bei denen vorher der höchste und der niedrigste Wert ausgeschlossen werden)
- Alle Orakel haben eine einheitliche Information mit einem vorher vereinbarten zulässigen Abweichungsbereich bereitgestellt (zum Beispiel können die Finanzkurse aus verschiedenen Quellen um 0,00001 abweichen, und es ist unmöglich, eine exakte Übereinstimmung zu erhalten)
- Wählen Sie nur die einzigartigen Werte aus den erhaltenen Daten aus
Kehren wir zu unserer dezentralisierten Wettbörse zurück. Bei Verwendung des Konsenses "3 von 4" könnte ein Orakel, das ein Unentschieden im Kampf meldet, die Ausführung des Skripts nicht beeinträchtigen, vorausgesetzt, die anderen drei Orakel geben zuverlässige Informationen an.
Aber ein unehrlicher Nutzer könnte drei der vier Orakel besitzen und dann die erforderliche Mehrheit sicherstellen.
Um die Integrität der Orakel zu gewährleisten, könnte ein Ranking oder ein Strafen-System für unzuverlässige Daten eingeführt werden. Man könnte auch den Weg des 'Zuckers' gehen und eine Belohnung für Zuverlässigkeit anbieten. Aber keine Maßnahmen können vollständig verhindern, dass beispielsweise das Ranking manipuliert wird oder eine unehrliche Mehrheit entsteht.
Should man also komplexe Dienstleistungen erfinden, oder reicht es, ein Konsens-Tool zu haben, das es ermöglicht, wie im Supermarkt beispielsweise fünf Orakel auszuwählen, die die benötigten Daten bereitstellen, den Konsens-Typ festzulegen und das Ergebnis zu erhalten?
Zum Beispiel benötigt eine dezentrale Anwendung Temperaturdaten in Grad Celsius. Im Orakel-Katalog finden wir vier Orakel, die solche Daten bereitstellen, legen den Konsens-Typ "Durchschnittswert" fest und stellen die Anfrage.
Angenommen, die Orakel haben Werte von 18, 17, 19 und 21 Grad ausgegeben. Eine Abweichung von drei Grad kann für die Ausführung des Skripts entscheidend sein. Der Dienst verarbeitet das Ergebnis und erhält den Durchschnittswert der Temperatur – 18,75 Grad. Diese Zahl erhält das Skript der dezentralisierten Anwendung und wird damit arbeiten.

Letztendlich liegt die Entscheidung beim Verbraucher: Vertrauen sie einem Orakel und verwenden seine Daten oder bauen sie den Konsens mehrerer Orakel, die nach eigenem Ermessen ausgewählt wurden.
In jedem Fall ist die Datenoracle ein ziemlich neues Feld. Es befindet sich in einem Stadium, in dem die Nutzer selbst bestimmen können, in welche Richtung es sich entwickeln sollte. Daher möchten wir Ihre Meinung hören. Benötigt man das oben beschriebene Werkzeug für Orakel? Wie sehen Sie die Zukunft der Datenorakel im Allgemeinen? Teilen Sie Ihre Meinung in den Kommentaren und in unserer offiziellen Gruppe in .
Quelle: habr.com
