Comment créer votre propre Oracle à l'aide des contrats intelligents Ethereum ? Intelligence des données PlatoBlockchain. Recherche verticale. Aï.

Comment créer votre propre Oracle à l'aide des contrats intelligents Ethereum ?

Temps de lecture: 5 minutes

Ethereum est la toute première blockchain à hériter des qualités de création de dapps, d'échange d'actifs cryptographiques sur la blockchain, etc.

Il a son langage de programmation pour écrire des contrats intelligents et les implémenter sur la machine virtuelle Ethereum pour insuffler la décentralisation dans l'exécution des activités. 

Les contrats intelligents exécutent les lignes de codes prédéfinies et remplissent la tâche prévue. Mais que se passe-t-il si nous voulons faire fonctionner les contrats intelligents en fonction des résultats de l'événement en temps réel ?

Pour y parvenir, nous devons comprendre le concept des oracles blockchain à travers lesquels les contrats intelligents peuvent recevoir des entrées du monde réel. 

Qu'est-ce qu'un oracle en crypto, et comment créer un oracle dans le contrat Ethereum Smart ? Nous en discuterons en détail dans la section suivante. 

Sujets clés du blog

  • Qu'est-ce qu'un oracle crypto et comment fonctionnent les oracles
  • Différents types d'oracles
  • Le flux de données des oracles vers les contrats intelligents Ethereum
  • Comment coder les oracles Ethereum
  • Problèmes avec crypto oracle

Qu'est-ce qu'un oracle et pourquoi est-il nécessaire ?

Oracles sont des entités qui agissent comme un pont reliant la blockchain à des systèmes externes. En d'autres termes, les oracles fournissent les données d'événements hors chaîne au contrat intelligent pour effectuer une action basée sur l'entrée.

Par exemple, dans les événements de paris, les utilisateurs sont autorisés à parier sur les joueurs qui, selon eux, gagneront le match. Sur la base de l'événement en temps réel, les récompenses sont distribuées aux utilisateurs qui parient sur le gagnant. 

Les oracles de la blockchain aident à compléter les données sur le gagnant des contrats intelligents. Le flux de données sur oracle est bidirectionnel et peut être utilisé pour traduire toutes les données en temps réel des bulletins météorologiques à l'état du marché boursier en contrats intelligents. 

Chaque nœud de la blockchain Ethereum possède des informations sur les transactions, qui doivent être uniformes. Par conséquent, la récupération de données à partir d'API peut entraîner des divergences. En revanche, oracle charge les données sur la blockchain, qui apparaît immuablement la même sur tous les nœuds.

Oracles blockchain
Oracles blockchain

Comment accéder aux données d'Oracle ?

Les contrats intelligents utilisent le cycle demande-réponse pour obtenir des informations du nœud oracle. L'oracle implémenté avec un HTTP GET recevra la demande du contrat intelligent, et la fonction de rappel peut récupérer les données demandées de l'oracle. 

De cette manière, les données sont collectées par le contrat intelligent auprès de l'oracle. Chaque oracle est configuré pour fournir des informations spécifiques, et vous pouvez rechercher des services tiers pour acquérir les données que vous recherchez. 

Voici quelques-uns des services oracle

  • Maillon de chaîne
  • Prouvable
  • Witnet
  • Paralink et ainsi de suite.

Classification des oracles

Les oracles sont classés en différents types en fonction de la récupération, de la validation et du transfert des données. 

Oracles d'entrée : Le type le plus largement reconnu où les données sont récupérées hors chaîne à partir des événements en temps réel. Par ex. Les flux de prix sur les actions sont obtenus hors chaîne pour déclencher une action sur les contrats intelligents en fonction des conditions du marché financier.

Oracles de sortie : Le vice versa des oracles d'entrée où les contrats intelligents provoquent l'oracle pour exécuter l'action. Par ex. Envoyez des signaux au fournisseur de stockage pour stocker les données ou initier des réseaux bancaires pour effectuer des paiements.

Oracles inter-chaînes : Les oracles inter-chaînes facilitent à la fois la lecture et l'écriture de données sur différentes chaînes de blocs. Il permet également de déclencher des événements dans une blockchain et de les rendre opérationnels sur une autre. 

Oracles compatibles avec le calcul : Les oracles compatibles avec le calcul utilisent le calcul hors chaîne pour fournir des services. Surtout lorsque la chaîne en ligne n'est pas fiable en raison de contraintes techniques ou financières, ce type d'oracle est utilisé.

Récupération de données à partir d'oracles

Étape 1 : Le contrat intelligent envoie une requête à l'oracle.

Étape 2 : La requête est dirigée vers le support de données, qui recherche les données à partir de la source de données

Étape 3 : Les données sont dérivées de la source et transmises à l'oracle.

Étape 4 : Oracle envoie la réponse au contrat intelligent comme demandé. 

Création d'Oracle In Ethereum Smart Contract - Structure du code

Nous verrons comment Oracle fonctionne pour déterminer le prix actuel du Bitcoin en USD à l'aide d'un service Oracle appelé Provable. 

pragma solidity >= 0.5.0 < 0.6.0; //Declaring the Solidity version import "github.com/provable-things/ethereum-api/provableAPI.sol"; //Importing latest version of provable API contract BitcoinPrice is usingProvable { //Contract named BitcoinPrice, UsingProvable refers to the API uint public bitcoinPriceUSD; //bitcoinPriceUSD is the variable created to store the price, Provable query event that makes a constructor event LogNewBitcoinPrice(string price); event LogNewProvableQuery(string description); constructor() public { update(); } // callback function to call the smart contract after the output is received and transfers the result from callback function to the variable assigned function __callback( bytes32 _myid, string memory _result ) public { require(msg.sender == provable_cbAddress()); emit LogNewBitcoinPrice(_result); BitcoinPriceUSD = parseInt(_result, 2); // Let's save it as cents... } //passing output string and API string to fetch bitcoin price to our constructor function update() public payable { emit LogNewProvableQuery("Provable query was sent, standing by for the answer..."); provable_query("URL", "xml("https://min-api.cryptocompare.com/data/generateAvg?fsym=BTC&tsym=USD&e=Kraken" ); } } 

Problèmes Oracle

Les problèmes d'Oracle sont fondamentalement le conflit entre les contrats intelligents sans confiance et les oracles tiers de confiance, compte tenu de la sécurité et de l'authenticité des données provenant de tiers.

Les contrats intelligents reposent sur des oracles pour prendre des décisions concernant leur exécution, ce qui leur donne un pouvoir immense sur leur fonctionnement. En fait, la nature décentralisée des contrats intelligents est remise en question. 

Cependant, les services oracle comme ChainLink et Oraclize fonctionnent comme des solutions décentralisées qui dérivent des données basées sur des méthodes nouvelles et authentifiées. Ainsi, les données obtenues le sont par des moyens décentralisés.  

Conclusion

La connectivité de la blockchain avec le monde réel est suffisamment importante pour un bond en avant vers le monde décentralisé. Les oracles offrent la solution pour une interface fiable de contrats intelligents avec des données en temps réel. 

Cependant, pour assurer la durabilité, des progrès sont réalisés par les services oracle pour assurer la sécurité et l'exactitude des données obtenues hors chaîne. 

Vous voulez rester plus pertinent pour Sécurité Web3?

FOLLOW Audits de plume pour de nombreux articles à jour sur Web3.

23 Vues

Le poste Comment créer votre propre Oracle à l'aide des contrats intelligents Ethereum ? apparaît en premier sur Blog.quillhash.

Horodatage:

Plus de Quillhasch