Lektion 1

Einführung in die Ethereum-Oracles (Ethereum-Oracles)

Willkommen zu diesem Kurs. Wenn Sie diese Reise beginnen, um die Welt der Ethereum-Orakel zu erkunden, werden Sie lernen, wie Blockchain-Netzwerke mit der Außenwelt kommunizieren. Die Orakel sind wie eine Brücke, die die Gewissheit von Smart Contracts mit der ständig wechselnden Realität der realen Welt verbindet. Das Ziel dieses Kurses ist es, die Feinheiten hinter den Orakeln zu entschlüsseln und sie leichter verständlich und zugänglich zu machen.

Was ist die Bedeutung von Orakeln (Orakeln)?

Das dezentralisierte Netzwerk von Ethereum und seine Smart Contracts sind vollständig von der realen Welt isoliert. Diese Isolation gewährleistet Konsistenz, Sicherheit und Integrität. Allerdings stellt dies auch eine Einschränkung dar: Diese Smart Contracts können nicht eigenständig auf externe Daten zugreifen oder diese validieren. Was also, wenn die Ausführung eines Vertrags vom aktuellen Goldpreis, den Wetterbedingungen in einer bestimmten Stadt oder Wahlergebnissen abhängt?

Orakel füllen diese Lücke. Als Boten sammeln, validieren und liefern sie Informationen aus der realen Welt an Smart Contracts, wodurch sich die Möglichkeiten für dezentrale Anwendungen erweitern.

Stellen Sie sich die folgende Situation vor:

Solidity//Ein Mock-Smart-Vertrag folgt externem Datenvertrag GoldPriceBet { Oracle OracleInstance;//Eine Oracle-Instanz Echtzeit-Goldinstanzadresse bettor; uint256 wagerAmount; Funktion placeGoldPriceBet (uint PredictedPrice) extern zahlbar {        bettor = msg.sender;        wagerAmount = msg.value;        // Hier würden wir normalerweise das Orakel aufrufen, um den aktuellen Goldpreis abzurufen    }}

Code-Kommentare:

  • OracleOracleInstance;Dies ist ein Platzhalter für unserGoldPriceBetVertrag, um mit dem Oracle-Vertrag zu interagieren, um den aktuellen Goldpreis zu erhalten.
  • Das Die Funktion placeGoldPriceBet ermöglicht es Benutzern, Wetten abzugeben, um den Preis vorherzusagen von Gold. Im Idealfall werden nach dem Platzieren einer Wette die Orakel angerufen, um den Goldpreis in Echtzeit zu ermitteln und die Ergebnisse zu ermitteln.

Vielfältige Orakel-Ökosysteme

Im Großen und Ganzen lassen sich Orakel in zwei Hauptkategorien einteilen:

Zentralisierte Orakel

Zentralisierte Orakel, die von einer einzelnen Einheit oder Organisation betrieben werden, sind effizient und können Daten schnell abrufen. Ihre Achillesferse ist jedoch das Vertrauen. Die Ausführung von Smart Contracts hängt von der Integrität dieser zentralisierten Instanz ab. Manipulierte oder fehlerhafte Daten können zu unerwarteten Ergebnissen führen.

Dezentralisierte Orakel

Um die Unzulänglichkeiten zentralisierter Systeme zu mitiGate.io, sind dezentrale Orakel entstanden. Hier liefert ein Netzwerk aus mehreren Orakeln Daten. Ein Smart Contract kann eine Aggregationsmethode verwenden, z. B. einen Durchschnitt oder Median, um einen Wert zu ermitteln. Durch die Dezentralisierung von Datenquellen verringern diese Orakel das Risiko, das mit menschlicher Manipulation oder Single Points of Failure verbunden ist.

Solidity//Ein anschaulicher Smart Contract, der ein flexibles Oracle-Framework nutzt Vertrags-CommodityPriceFeed { Dezentralisierter Oracle [] OracleArray;//Ein Array von dezentralisierten Oracles Funktion deriveAveragePrice () extern anzeigen returns (uint256) { uint256 kumulativer Wert = 0; für (uint i = 0; i < oracleArray.length; i++) {            kumulativer Wert += oracleArray[i].fetchPrice();        } return kumulativer Wert/ oracleArray.length;    }}

Code-Kommentare:

  • DecentralizedOracle [] OracleArray; dies ist ein Array, das mehrere Instanzen von dezentralen Orakeln speichert.
  • Die Durchschnittspreis ableitenDie Funktion berechnet den Durchschnittspreis, der aus allen Orakeln in OracleArray erhalten wird. Sie geht jedes der Orakel durch, ruft den Preis ab und teilt ihn dann durch die Anzahl der Orakel, um den Durchschnitt zu erhalten.

Anwendungen von Orakeln in der realen Welt

Die Einsatzmöglichkeiten von Orakeln sind sehr breit gefächert und vielfältig:

  • Finanzderivate: Finanzinstrumente wie Optionen erfordern Zugang zu realen Vermögenspreisen, um Verträge auszuführen.
  • Intelligente Versicherung: Stellen Sie sich einen Reiseversicherungs-Smart-Vertrag vor, der Benutzer automatisch entschädigt, wenn ein Flug verspätet ist. Diese Daten stammen von einem Luftfahrtanhänger.
  • Lieferkettenprüfung: Durch die Eingabe externer Daten in die Blockchain ist es möglich, Produkte in Echtzeit vom Herstellungsprozess bis zur Lieferung an den Kunden zu verfolgen.
  • Dezentrales Spielen: Blockchain-basierte Online-Spiele können Orakel verwenden, um Spielausgänge basierend auf realen Ereignissen zu beeinflussen, wie z. B. Sportergebnisse.
    Erfahren Sie mehr über Oracles: Was ist ein Oracle in der Blockchain?

Finanzderivate und Handelsplattformen

Finanzplattformen benötigen Echtzeitinformationen über Vermögenspreise, Zinssätze oder andere wirtschaftliche Indikatoren. Dezentralisierte Derivateplattformen verwenden Orakel, um sicherzustellen, dass Verträge wie Futures und Optionen auf der Grundlage genauer, manipulationssicherer Marktdaten abgewickelt werden.

//Ein Beispiel-Smart-Vertrag für eine bequeme Optionvertrag DecentralizedOption { Oracle PriceOracle; uint256 strikePrice = 1000;//Beispielwert Funktion exerciseOption () extern { uint256 currentPrice = priceOracle.fetchCurrentPrice ();        if (currentPrice strikePrice>) {            // Logik, um die Option auszuüben        }    }}

Code-Kommentare:

  • Das DezentralisierteOptionDer Vertrag interagiert mit den Orakeln, um den aktuellen Preis zu erhalten.
  • Wenn ein Benutzer eine Option ausübt, überprüft der Vertrag den aktuellen Preis mit einem vordefinierten Ausführungspreis, um das Ergebnis zu bestimmen.

Intelligente Versicherung

Orakel haben die Entwicklung dezentraler Versicherungsplattformen vorangetrieben, indem sie Daten wie Wetterbedingungen für die Ernteversicherung, Flugbedingungen für die Reiseversicherung oder seismische Aktivitäten für die Erdbebenversicherung bereitstellen.

Solidity-Vertrag Flugverspätungsversicherung { Orakel FlightStatusOracle; Funktion Versicherungsanspruch (Zeichenfolge Flugnummer) extern { Zeichenfolge Status = flightstatusOracle.getFlightStatus (Flugnummer);        if (strcmp (Status, " Verspätet") == 0) {            // Logik zur Entschädigung des Versicherten        }    }}

Code-Kommentare:

  • FlugverzögerungsversicherungVerträge verwenden Orakel, um den Flugstatus zu erhalten.
  • Je nach Flugstatus entschädigt es den Versicherten, wenn der Flug verspätet ist.

Lieferkettenverifikation

Für dezentrale Supply-Chain-Lösungen können Orakel in jeder Phase, von der Rohstoffbeschaffung bis zur Produktlieferung, überprüfbare Daten liefern, um die Authentizität der Produkte und die ethische Beschaffung sicherzustellen.

Soliditycontract supplyChainTracker { Oracle LocationOracle; address ProductOwner; function verifyProductLocation (address ProductID) external view returns (string memory) {        return locationOracle.fetchProductLocation(productID);    }}

Code-Kommentare:

  • Dieser Vertrag verwendet Orakel, um den Standort von Produkten in jeder Phase der Lieferkette zu erhalten.
  • Es kann verwendet werden, um Produkte zu verfolgen und ihre Herkunft und Route zu überprüfen.

Dezentrales Gaming

Spiele, die reale Ereignisse integrieren, wie z. B. die Ergebnisse von Sportveranstaltungen oder Börsenbewegungen, können auf dezentrale Weise gebaut werden, indem Orakel verwendet werden, um die erforderlichen Daten zu erhalten.

SolidityContract SportsBet { Oracle SportsResultOracle; Funktion placeBet (string teamName) extern bezahlbar {        // Logik für die Platzierung einer Wette    } Funktion resolveBet () extern {        string winningTeam = sportsResultOracle.getMatchResult();        // Logik zur Belohnung von Gewinnern basierend auf dem Ergebnis    }}

Code-Kommentare:

  • SportsBetermöglicht es Benutzern, Wetten auf die Ergebnisse von Sportereignissen zu platzieren.
  • Es interagiert dann mit den Orakeln, um Spiel Ergebnisse zu erhalten und Wetten entsprechend zu lösen.
    Jetzt haben wir eine vorläufige Erkundung der Welt der Ethereum-Orakel. In den folgenden Kursen werden wir uns mit den Feinheiten der Integration von Orakeln in Smart Contracts befassen. Wenn Sie sich durch den Inhalt sehr aufgeregt fühlen, halten Sie Ihre Begeisterung für das Lernen aufrecht. Denn die Welt der dezentralen Daten lockt uns!
Haftungsausschluss
* Kryptoinvestitionen sind mit erheblichen Risiken verbunden. Bitte lassen Sie Vorsicht walten. Der Kurs ist nicht als Anlageberatung gedacht.
* Der Kurs wird von dem Autor erstellt, der Gate Learn beigetreten ist. Vom Autor geteilte Meinungen spiegeln nicht zwangsläufig die Meinung von Gate Learn wider.
Katalog
Lektion 1

Einführung in die Ethereum-Oracles (Ethereum-Oracles)

Willkommen zu diesem Kurs. Wenn Sie diese Reise beginnen, um die Welt der Ethereum-Orakel zu erkunden, werden Sie lernen, wie Blockchain-Netzwerke mit der Außenwelt kommunizieren. Die Orakel sind wie eine Brücke, die die Gewissheit von Smart Contracts mit der ständig wechselnden Realität der realen Welt verbindet. Das Ziel dieses Kurses ist es, die Feinheiten hinter den Orakeln zu entschlüsseln und sie leichter verständlich und zugänglich zu machen.

Was ist die Bedeutung von Orakeln (Orakeln)?

Das dezentralisierte Netzwerk von Ethereum und seine Smart Contracts sind vollständig von der realen Welt isoliert. Diese Isolation gewährleistet Konsistenz, Sicherheit und Integrität. Allerdings stellt dies auch eine Einschränkung dar: Diese Smart Contracts können nicht eigenständig auf externe Daten zugreifen oder diese validieren. Was also, wenn die Ausführung eines Vertrags vom aktuellen Goldpreis, den Wetterbedingungen in einer bestimmten Stadt oder Wahlergebnissen abhängt?

Orakel füllen diese Lücke. Als Boten sammeln, validieren und liefern sie Informationen aus der realen Welt an Smart Contracts, wodurch sich die Möglichkeiten für dezentrale Anwendungen erweitern.

Stellen Sie sich die folgende Situation vor:

Solidity//Ein Mock-Smart-Vertrag folgt externem Datenvertrag GoldPriceBet { Oracle OracleInstance;//Eine Oracle-Instanz Echtzeit-Goldinstanzadresse bettor; uint256 wagerAmount; Funktion placeGoldPriceBet (uint PredictedPrice) extern zahlbar {        bettor = msg.sender;        wagerAmount = msg.value;        // Hier würden wir normalerweise das Orakel aufrufen, um den aktuellen Goldpreis abzurufen    }}

Code-Kommentare:

  • OracleOracleInstance;Dies ist ein Platzhalter für unserGoldPriceBetVertrag, um mit dem Oracle-Vertrag zu interagieren, um den aktuellen Goldpreis zu erhalten.
  • Das Die Funktion placeGoldPriceBet ermöglicht es Benutzern, Wetten abzugeben, um den Preis vorherzusagen von Gold. Im Idealfall werden nach dem Platzieren einer Wette die Orakel angerufen, um den Goldpreis in Echtzeit zu ermitteln und die Ergebnisse zu ermitteln.

Vielfältige Orakel-Ökosysteme

Im Großen und Ganzen lassen sich Orakel in zwei Hauptkategorien einteilen:

Zentralisierte Orakel

Zentralisierte Orakel, die von einer einzelnen Einheit oder Organisation betrieben werden, sind effizient und können Daten schnell abrufen. Ihre Achillesferse ist jedoch das Vertrauen. Die Ausführung von Smart Contracts hängt von der Integrität dieser zentralisierten Instanz ab. Manipulierte oder fehlerhafte Daten können zu unerwarteten Ergebnissen führen.

Dezentralisierte Orakel

Um die Unzulänglichkeiten zentralisierter Systeme zu mitiGate.io, sind dezentrale Orakel entstanden. Hier liefert ein Netzwerk aus mehreren Orakeln Daten. Ein Smart Contract kann eine Aggregationsmethode verwenden, z. B. einen Durchschnitt oder Median, um einen Wert zu ermitteln. Durch die Dezentralisierung von Datenquellen verringern diese Orakel das Risiko, das mit menschlicher Manipulation oder Single Points of Failure verbunden ist.

Solidity//Ein anschaulicher Smart Contract, der ein flexibles Oracle-Framework nutzt Vertrags-CommodityPriceFeed { Dezentralisierter Oracle [] OracleArray;//Ein Array von dezentralisierten Oracles Funktion deriveAveragePrice () extern anzeigen returns (uint256) { uint256 kumulativer Wert = 0; für (uint i = 0; i < oracleArray.length; i++) {            kumulativer Wert += oracleArray[i].fetchPrice();        } return kumulativer Wert/ oracleArray.length;    }}

Code-Kommentare:

  • DecentralizedOracle [] OracleArray; dies ist ein Array, das mehrere Instanzen von dezentralen Orakeln speichert.
  • Die Durchschnittspreis ableitenDie Funktion berechnet den Durchschnittspreis, der aus allen Orakeln in OracleArray erhalten wird. Sie geht jedes der Orakel durch, ruft den Preis ab und teilt ihn dann durch die Anzahl der Orakel, um den Durchschnitt zu erhalten.

Anwendungen von Orakeln in der realen Welt

Die Einsatzmöglichkeiten von Orakeln sind sehr breit gefächert und vielfältig:

  • Finanzderivate: Finanzinstrumente wie Optionen erfordern Zugang zu realen Vermögenspreisen, um Verträge auszuführen.
  • Intelligente Versicherung: Stellen Sie sich einen Reiseversicherungs-Smart-Vertrag vor, der Benutzer automatisch entschädigt, wenn ein Flug verspätet ist. Diese Daten stammen von einem Luftfahrtanhänger.
  • Lieferkettenprüfung: Durch die Eingabe externer Daten in die Blockchain ist es möglich, Produkte in Echtzeit vom Herstellungsprozess bis zur Lieferung an den Kunden zu verfolgen.
  • Dezentrales Spielen: Blockchain-basierte Online-Spiele können Orakel verwenden, um Spielausgänge basierend auf realen Ereignissen zu beeinflussen, wie z. B. Sportergebnisse.
    Erfahren Sie mehr über Oracles: Was ist ein Oracle in der Blockchain?

Finanzderivate und Handelsplattformen

Finanzplattformen benötigen Echtzeitinformationen über Vermögenspreise, Zinssätze oder andere wirtschaftliche Indikatoren. Dezentralisierte Derivateplattformen verwenden Orakel, um sicherzustellen, dass Verträge wie Futures und Optionen auf der Grundlage genauer, manipulationssicherer Marktdaten abgewickelt werden.

//Ein Beispiel-Smart-Vertrag für eine bequeme Optionvertrag DecentralizedOption { Oracle PriceOracle; uint256 strikePrice = 1000;//Beispielwert Funktion exerciseOption () extern { uint256 currentPrice = priceOracle.fetchCurrentPrice ();        if (currentPrice strikePrice>) {            // Logik, um die Option auszuüben        }    }}

Code-Kommentare:

  • Das DezentralisierteOptionDer Vertrag interagiert mit den Orakeln, um den aktuellen Preis zu erhalten.
  • Wenn ein Benutzer eine Option ausübt, überprüft der Vertrag den aktuellen Preis mit einem vordefinierten Ausführungspreis, um das Ergebnis zu bestimmen.

Intelligente Versicherung

Orakel haben die Entwicklung dezentraler Versicherungsplattformen vorangetrieben, indem sie Daten wie Wetterbedingungen für die Ernteversicherung, Flugbedingungen für die Reiseversicherung oder seismische Aktivitäten für die Erdbebenversicherung bereitstellen.

Solidity-Vertrag Flugverspätungsversicherung { Orakel FlightStatusOracle; Funktion Versicherungsanspruch (Zeichenfolge Flugnummer) extern { Zeichenfolge Status = flightstatusOracle.getFlightStatus (Flugnummer);        if (strcmp (Status, " Verspätet") == 0) {            // Logik zur Entschädigung des Versicherten        }    }}

Code-Kommentare:

  • FlugverzögerungsversicherungVerträge verwenden Orakel, um den Flugstatus zu erhalten.
  • Je nach Flugstatus entschädigt es den Versicherten, wenn der Flug verspätet ist.

Lieferkettenverifikation

Für dezentrale Supply-Chain-Lösungen können Orakel in jeder Phase, von der Rohstoffbeschaffung bis zur Produktlieferung, überprüfbare Daten liefern, um die Authentizität der Produkte und die ethische Beschaffung sicherzustellen.

Soliditycontract supplyChainTracker { Oracle LocationOracle; address ProductOwner; function verifyProductLocation (address ProductID) external view returns (string memory) {        return locationOracle.fetchProductLocation(productID);    }}

Code-Kommentare:

  • Dieser Vertrag verwendet Orakel, um den Standort von Produkten in jeder Phase der Lieferkette zu erhalten.
  • Es kann verwendet werden, um Produkte zu verfolgen und ihre Herkunft und Route zu überprüfen.

Dezentrales Gaming

Spiele, die reale Ereignisse integrieren, wie z. B. die Ergebnisse von Sportveranstaltungen oder Börsenbewegungen, können auf dezentrale Weise gebaut werden, indem Orakel verwendet werden, um die erforderlichen Daten zu erhalten.

SolidityContract SportsBet { Oracle SportsResultOracle; Funktion placeBet (string teamName) extern bezahlbar {        // Logik für die Platzierung einer Wette    } Funktion resolveBet () extern {        string winningTeam = sportsResultOracle.getMatchResult();        // Logik zur Belohnung von Gewinnern basierend auf dem Ergebnis    }}

Code-Kommentare:

  • SportsBetermöglicht es Benutzern, Wetten auf die Ergebnisse von Sportereignissen zu platzieren.
  • Es interagiert dann mit den Orakeln, um Spiel Ergebnisse zu erhalten und Wetten entsprechend zu lösen.
    Jetzt haben wir eine vorläufige Erkundung der Welt der Ethereum-Orakel. In den folgenden Kursen werden wir uns mit den Feinheiten der Integration von Orakeln in Smart Contracts befassen. Wenn Sie sich durch den Inhalt sehr aufgeregt fühlen, halten Sie Ihre Begeisterung für das Lernen aufrecht. Denn die Welt der dezentralen Daten lockt uns!
Haftungsausschluss
* Kryptoinvestitionen sind mit erheblichen Risiken verbunden. Bitte lassen Sie Vorsicht walten. Der Kurs ist nicht als Anlageberatung gedacht.
* Der Kurs wird von dem Autor erstellt, der Gate Learn beigetreten ist. Vom Autor geteilte Meinungen spiegeln nicht zwangsläufig die Meinung von Gate Learn wider.