Lesson 1

Introduction aux Oracles Ethereum (Oracles Ethereum)

Bienvenue dans ce cours. En commençant ce voyage pour explorer le monde des oracles Ethereum, vous apprendrez comment les réseaux blockchain communiquent avec le monde extérieur. Les oracles sont comme un pont qui relie la certitude des contrats intelligents à la réalité toujours changeante du monde réel. L'objectif de ce cours est de décrypter les subtilités des oracles et de les rendre plus faciles à comprendre et à aborder.

Quelle est la signification des Oracles (Oracles)?

Le réseau décentralisé d'Ethereum et ses contrats intelligents sont complètement isolés du monde réel. Cet isolement garantit la cohérence, la sécurité et l'intégrité. Cependant, cela pose également une limite : ces contrats intelligents ne peuvent pas accéder ni valider des données externes par eux-mêmes. Alors, que se passe-t-il si l'exécution d'un contrat dépend du prix actuel de l'or, des conditions météorologiques dans une ville particulière ou des résultats d'une élection ?

Les oracles comblent ce vide. En tant que messagers, ils collectent, valident et transmettent des informations du monde réel aux contrats intelligents, élargissant ainsi la gamme de possibilités pour les applications décentralisées.

Imaginez la situation suivante :

Solidité//Un contrat intelligent fictif suit le contrat de données externe GoldPriceBet { Oracle OracleInstance;//Une instance Oracle instance adresse de l'instance d'or en temps réel parieur; uint256 montant de mise; Fonction placeGoldPriceBet (uint PrixPrédit) externe payable {        parieur = msg.sender;        montant de mise = msg.value;        // Ici, nous invoquerions généralement l'oracle pour récupérer le prix actuel de l'or    }}

Commentaires de code :

  • OracleInstance d’oracle ;Il s'agit d'un espace réservé pour notreGoldPriceBetcontrat pour interagir avec pour obtenir le prix actuel de l'or (Oracle) contrat.
  • Le La fonction placeGoldPriceBet permet aux utilisateurs de placer des paris pour prédire le prixd'or. Idéalement, après avoir placé un pari, les oracles seraient appelés pour obtenir le prix de l'or en temps réel et déterminer les résultats.

Écosystèmes d'Oracles Divers

De manière générale, les oracles se divisent en deux catégories principales:

Oracles centralisés

Opérés par une seule entité ou organisation, les oracles centralisés sont efficaces et peuvent obtenir rapidement des données. Leur talon d'Achille, cependant, est la confiance. L'exécution de contrats intelligents dépend de l'intégrité de cette entité centralisée. Des données manipulées ou erronées peuvent entraîner des résultats inattendus.

Oracles décentralisés

Afin de mitiGate.io les lacunes des systèmes centralisés, des oracles décentralisés ont émergé. Ici, un réseau de plusieurs oracles fournit des données. Un smart contract peut utiliser une méthode d'agrégation, telle qu'une moyenne ou une médiane, pour arriver à une valeur. En décentralisant les sources de données, ces oracles réduisent le risque associé à la manipulation humaine ou aux points de défaillance uniques.

Solidity//Un contrat intelligent illustratif tirant parti d'un cadre Oracle flexiblecontrat CommodityPriceFeed { Oracle décentralisé [] OracleArray;//Un tableau d'oracles décentralisés function deriveAveragePrice () external view returns (uint256) { uint256 valeurCumulative = 0; for (uint i = 0; i < oracleArray.length; i++) {            valeurCumulative += oracleArray[i].fetchPrice();        } return valeurCumulative/ oracleArray.length;    }}

Commentaires de code :

  • DecentralizedOracle [] OracleArray; c'est un tableau qui stocke de multiples instances d'oracles décentralisés.
  • Le calculer le prix moyenLa fonction calcule le prix moyen obtenu de tous les oracles dans OracleArray. Elle passe en revue chacun des oracles, obtient le prix, puis le divise par le nombre d'oracles pour obtenir la moyenne.

Applications d'oracles du monde réel

Les applications potentielles des oracles sont très larges et diverses :

  • Dérivés financiers : Les instruments financiers tels que les options nécessitent l’accès aux prix réels des actifs pour exécuter des contrats.
  • Assurance intelligente : Imaginez un contrat d'assurance voyage intelligent qui compense automatiquement les utilisateurs en cas de retard de vol. Ces données proviennent d'une remorque d'aviation.
  • Vérification de la chaîne d'approvisionnement : En entrant des données externes dans la blockchain, il est possible de suivre les produits en temps réel de la fabrication à la livraison au client.
  • Jeux décentralisés : les jeux en ligne basés sur la blockchain peuvent utiliser des oracles pour influencer les résultats des jeux en fonction d’événements réels, tels que les résultats de matchs sportifs.
    En savoir plus sur les oracles : Qu'est-ce qu'un Oracle dans la Blockchain?

Dérivés financiers et plateformes de trading

Les plateformes financières nécessitent des informations en temps réel sur les prix des actifs, les taux d'intérêt ou d'autres indicateurs économiques. Les plateformes de produits dérivés décentralisés utilisent des oracles pour s'assurer que les contrats, tels que les contrats à terme et les options, sont réglés sur la base de données de marché précises et inviolables.

SoliditySolidityCopy code//Un exemple de contrat intelligent pour un contrat d’option pratiquecontract DecentralizedOption { Oracle PriceOracle ; uint256 strikePrice = 1000 ;//Exemple de fonction de valeur exerciseOption () external { uint256 currentPrice = priceOracle.fetchCurrentPrice () ;        if (currentPrice strikePrice>) { // Logique d’exercice de l’option } }}

Commentaires sur le code :

  • Le Option Décentraliséele contrat interagit avec les oracles pour obtenir le prix actuel.
  • Lorsqu'un utilisateur exerce une option, le contrat vérifie le prix actuel par rapport à un prix d'exécution prédéfini pour déterminer le résultat.

Assurance intelligente

Les oracles ont favorisé le développement de plates-formes d'assurance décentralisées, fournissant des données telles que les modèles météorologiques nécessaires pour l'assurance récolte, les conditions de vol nécessaires pour l'assurance voyage, ou l'activité sismique nécessaire pour l'assurance contre les tremblements de terre.

Soliditycontract FlightDelayInsurance { Oracle FlightStatusOracle ; function claimInsurance (string flightNumber) external { string status = flightstatusOracle.getFlightStatus (flightNumber) ;        if (strcmp (status, " Delayed ») == 0) { // Logique pour indemniser l’assuré } }}

Commentaires de code :

  • Assurance de retard de volLes contrats utilisent des oracles pour obtenir le statut des vols.
  • En fonction du statut du vol, elle indemnisera l’assuré en cas de retard du vol.

Vérification de la chaîne d'approvisionnement

Pour des solutions de chaîne d'approvisionnement décentralisées, les oracles peuvent fournir des données vérifiables à chaque étape, de l'approvisionnement en matières premières à la livraison du produit, pour garantir l'authenticité du produit et l'approvisionnement éthique.

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

Commentaires de code :

  • Ce contrat utilise des oracles pour obtenir l'emplacement des produits à n'importe quel stade de la chaîne d'approvisionnement.
  • Il peut être utilisé pour suivre les produits et vérifier leur origine et leur itinéraire.

Jeux décentralisés

Les jeux qui intègrent des événements du monde réel, tels que les résultats d'événements sportifs ou les mouvements du marché boursier, peuvent être construits de manière décentralisée en utilisant des oracles pour obtenir les données nécessaires.

SolidityContract SportsBet { Oracle SportsResultOracle ; Function placeBet (string teamName) external payable { // Logique de placement d’un pari } function resolveBet () external { string winningTeam = sportsResultOracle.getMatchResult() ;        Logique pour récompenser les gagnants en fonction du résultat }}

Commentaires de code:

  • SportsBet Permet aux utilisateurs de placer des paris sur les résultats d’événements sportifs.
  • Il interagit ensuite avec les oracles pour obtenir les résultats des matchs et résoudre les paris en conséquence.
    Nous avons maintenant une exploration préliminaire du monde des oracles Ethereum. Dans les cours suivants, nous plongerons dans les subtilités de l'intégration des oracles avec les contrats intelligents. Si le contenu vous rend très excité, gardez votre enthousiasme pour l'apprentissage. Parce que le monde des données décentralisées nous appelle!
Disclaimer
* Crypto investment involves significant risks. Please proceed with caution. The course is not intended as investment advice.
* The course is created by the author who has joined Gate Learn. Any opinion shared by the author does not represent Gate Learn.
Catalog
Lesson 1

Introduction aux Oracles Ethereum (Oracles Ethereum)

Bienvenue dans ce cours. En commençant ce voyage pour explorer le monde des oracles Ethereum, vous apprendrez comment les réseaux blockchain communiquent avec le monde extérieur. Les oracles sont comme un pont qui relie la certitude des contrats intelligents à la réalité toujours changeante du monde réel. L'objectif de ce cours est de décrypter les subtilités des oracles et de les rendre plus faciles à comprendre et à aborder.

Quelle est la signification des Oracles (Oracles)?

Le réseau décentralisé d'Ethereum et ses contrats intelligents sont complètement isolés du monde réel. Cet isolement garantit la cohérence, la sécurité et l'intégrité. Cependant, cela pose également une limite : ces contrats intelligents ne peuvent pas accéder ni valider des données externes par eux-mêmes. Alors, que se passe-t-il si l'exécution d'un contrat dépend du prix actuel de l'or, des conditions météorologiques dans une ville particulière ou des résultats d'une élection ?

Les oracles comblent ce vide. En tant que messagers, ils collectent, valident et transmettent des informations du monde réel aux contrats intelligents, élargissant ainsi la gamme de possibilités pour les applications décentralisées.

Imaginez la situation suivante :

Solidité//Un contrat intelligent fictif suit le contrat de données externe GoldPriceBet { Oracle OracleInstance;//Une instance Oracle instance adresse de l'instance d'or en temps réel parieur; uint256 montant de mise; Fonction placeGoldPriceBet (uint PrixPrédit) externe payable {        parieur = msg.sender;        montant de mise = msg.value;        // Ici, nous invoquerions généralement l'oracle pour récupérer le prix actuel de l'or    }}

Commentaires de code :

  • OracleInstance d’oracle ;Il s'agit d'un espace réservé pour notreGoldPriceBetcontrat pour interagir avec pour obtenir le prix actuel de l'or (Oracle) contrat.
  • Le La fonction placeGoldPriceBet permet aux utilisateurs de placer des paris pour prédire le prixd'or. Idéalement, après avoir placé un pari, les oracles seraient appelés pour obtenir le prix de l'or en temps réel et déterminer les résultats.

Écosystèmes d'Oracles Divers

De manière générale, les oracles se divisent en deux catégories principales:

Oracles centralisés

Opérés par une seule entité ou organisation, les oracles centralisés sont efficaces et peuvent obtenir rapidement des données. Leur talon d'Achille, cependant, est la confiance. L'exécution de contrats intelligents dépend de l'intégrité de cette entité centralisée. Des données manipulées ou erronées peuvent entraîner des résultats inattendus.

Oracles décentralisés

Afin de mitiGate.io les lacunes des systèmes centralisés, des oracles décentralisés ont émergé. Ici, un réseau de plusieurs oracles fournit des données. Un smart contract peut utiliser une méthode d'agrégation, telle qu'une moyenne ou une médiane, pour arriver à une valeur. En décentralisant les sources de données, ces oracles réduisent le risque associé à la manipulation humaine ou aux points de défaillance uniques.

Solidity//Un contrat intelligent illustratif tirant parti d'un cadre Oracle flexiblecontrat CommodityPriceFeed { Oracle décentralisé [] OracleArray;//Un tableau d'oracles décentralisés function deriveAveragePrice () external view returns (uint256) { uint256 valeurCumulative = 0; for (uint i = 0; i < oracleArray.length; i++) {            valeurCumulative += oracleArray[i].fetchPrice();        } return valeurCumulative/ oracleArray.length;    }}

Commentaires de code :

  • DecentralizedOracle [] OracleArray; c'est un tableau qui stocke de multiples instances d'oracles décentralisés.
  • Le calculer le prix moyenLa fonction calcule le prix moyen obtenu de tous les oracles dans OracleArray. Elle passe en revue chacun des oracles, obtient le prix, puis le divise par le nombre d'oracles pour obtenir la moyenne.

Applications d'oracles du monde réel

Les applications potentielles des oracles sont très larges et diverses :

  • Dérivés financiers : Les instruments financiers tels que les options nécessitent l’accès aux prix réels des actifs pour exécuter des contrats.
  • Assurance intelligente : Imaginez un contrat d'assurance voyage intelligent qui compense automatiquement les utilisateurs en cas de retard de vol. Ces données proviennent d'une remorque d'aviation.
  • Vérification de la chaîne d'approvisionnement : En entrant des données externes dans la blockchain, il est possible de suivre les produits en temps réel de la fabrication à la livraison au client.
  • Jeux décentralisés : les jeux en ligne basés sur la blockchain peuvent utiliser des oracles pour influencer les résultats des jeux en fonction d’événements réels, tels que les résultats de matchs sportifs.
    En savoir plus sur les oracles : Qu'est-ce qu'un Oracle dans la Blockchain?

Dérivés financiers et plateformes de trading

Les plateformes financières nécessitent des informations en temps réel sur les prix des actifs, les taux d'intérêt ou d'autres indicateurs économiques. Les plateformes de produits dérivés décentralisés utilisent des oracles pour s'assurer que les contrats, tels que les contrats à terme et les options, sont réglés sur la base de données de marché précises et inviolables.

SoliditySolidityCopy code//Un exemple de contrat intelligent pour un contrat d’option pratiquecontract DecentralizedOption { Oracle PriceOracle ; uint256 strikePrice = 1000 ;//Exemple de fonction de valeur exerciseOption () external { uint256 currentPrice = priceOracle.fetchCurrentPrice () ;        if (currentPrice strikePrice>) { // Logique d’exercice de l’option } }}

Commentaires sur le code :

  • Le Option Décentraliséele contrat interagit avec les oracles pour obtenir le prix actuel.
  • Lorsqu'un utilisateur exerce une option, le contrat vérifie le prix actuel par rapport à un prix d'exécution prédéfini pour déterminer le résultat.

Assurance intelligente

Les oracles ont favorisé le développement de plates-formes d'assurance décentralisées, fournissant des données telles que les modèles météorologiques nécessaires pour l'assurance récolte, les conditions de vol nécessaires pour l'assurance voyage, ou l'activité sismique nécessaire pour l'assurance contre les tremblements de terre.

Soliditycontract FlightDelayInsurance { Oracle FlightStatusOracle ; function claimInsurance (string flightNumber) external { string status = flightstatusOracle.getFlightStatus (flightNumber) ;        if (strcmp (status, " Delayed ») == 0) { // Logique pour indemniser l’assuré } }}

Commentaires de code :

  • Assurance de retard de volLes contrats utilisent des oracles pour obtenir le statut des vols.
  • En fonction du statut du vol, elle indemnisera l’assuré en cas de retard du vol.

Vérification de la chaîne d'approvisionnement

Pour des solutions de chaîne d'approvisionnement décentralisées, les oracles peuvent fournir des données vérifiables à chaque étape, de l'approvisionnement en matières premières à la livraison du produit, pour garantir l'authenticité du produit et l'approvisionnement éthique.

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

Commentaires de code :

  • Ce contrat utilise des oracles pour obtenir l'emplacement des produits à n'importe quel stade de la chaîne d'approvisionnement.
  • Il peut être utilisé pour suivre les produits et vérifier leur origine et leur itinéraire.

Jeux décentralisés

Les jeux qui intègrent des événements du monde réel, tels que les résultats d'événements sportifs ou les mouvements du marché boursier, peuvent être construits de manière décentralisée en utilisant des oracles pour obtenir les données nécessaires.

SolidityContract SportsBet { Oracle SportsResultOracle ; Function placeBet (string teamName) external payable { // Logique de placement d’un pari } function resolveBet () external { string winningTeam = sportsResultOracle.getMatchResult() ;        Logique pour récompenser les gagnants en fonction du résultat }}

Commentaires de code:

  • SportsBet Permet aux utilisateurs de placer des paris sur les résultats d’événements sportifs.
  • Il interagit ensuite avec les oracles pour obtenir les résultats des matchs et résoudre les paris en conséquence.
    Nous avons maintenant une exploration préliminaire du monde des oracles Ethereum. Dans les cours suivants, nous plongerons dans les subtilités de l'intégration des oracles avec les contrats intelligents. Si le contenu vous rend très excité, gardez votre enthousiasme pour l'apprentissage. Parce que le monde des données décentralisées nous appelle!
Disclaimer
* Crypto investment involves significant risks. Please proceed with caution. The course is not intended as investment advice.
* The course is created by the author who has joined Gate Learn. Any opinion shared by the author does not represent Gate Learn.