Πώς να φτιάξετε το δικό σας Oracle χρησιμοποιώντας έξυπνα συμβόλαια Ethereum; Ευφυΐα Δεδομένων PlatoBlockchain. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Πώς να φτιάξετε το δικό σας Oracle χρησιμοποιώντας έξυπνα συμβόλαια Ethereum;

Ώρα ανάγνωσης: 5 πρακτικά

Το Ethereum είναι το πρώτο blockchain που κληρονόμησε τις ιδιότητες της δημιουργίας dapps, της εμπορίας περιουσιακών στοιχείων κρυπτογράφησης στο blockchain και ούτω καθεξής.

Έχει τη γλώσσα προγραμματισμού του για να γράφει έξυπνα συμβόλαια και να τα εφαρμόζει στην εικονική μηχανή Ethereum για να εμφυσήσει την αποκέντρωση στην εκτέλεση δραστηριοτήτων. 

Τα έξυπνα συμβόλαια εκτελούν τις προκαθορισμένες γραμμές κωδικών και εκπληρώνουν την επιδιωκόμενη εργασία. Τι γίνεται όμως αν θέλουμε να κάνουμε τα έξυπνα συμβόλαια να λειτουργούν με βάση τα αποτελέσματα των συμβάντων σε πραγματικό χρόνο;

Για να το πετύχουμε αυτό, πρέπει να κατανοήσουμε την έννοια των μαντείων blockchain μέσω των οποίων τα έξυπνα συμβόλαια μπορούν να λαμβάνουν εισροές από τον πραγματικό κόσμο. 

Τι είναι ένα μαντείο σε κρυπτογράφηση και πώς να δημιουργήσετε ένα μαντείο στο συμβόλαιο Ethereum Smart; Θα το συζητήσουμε λεπτομερώς στην επόμενη ενότητα. 

Βασικά θέματα του ιστολογίου

  • Τι είναι το crypto oracle και πώς λειτουργούν οι χρησμοί
  • Διαφορετικοί τύποι χρησμών
  • Η ροή δεδομένων από το oracles στα έξυπνα συμβόλαια Ethereum
  • Πώς να κωδικοποιήσετε τους χρησμούς Ethereum
  • Ζητήματα με το crypto oracle

Τι είναι το Oracle και γιατί χρειάζεται;

Οράκλες είναι οντότητες που λειτουργούν ως γέφυρα που συνδέει το blockchain με εξωτερικά συστήματα. Με άλλα λόγια, οι χρησμοί παρέχουν τα δεδομένα συμβάντων εκτός αλυσίδας στο έξυπνο συμβόλαιο για να εκτελέσει μια ενέργεια με βάση την είσοδο.

Για παράδειγμα, στα στοιχηματικά γεγονότα, οι χρήστες επιτρέπεται να στοιχηματίζουν στους παίκτες που πιστεύουν ότι θα κερδίσουν τον αγώνα. Με βάση τα γεγονότα σε πραγματικό χρόνο, οι ανταμοιβές διανέμονται στους χρήστες που στοιχηματίζουν στον νικητή. 

Οι χρησμοί blockchain συμβάλλουν στη συμπλήρωση δεδομένων σχετικά με τον νικητή στα έξυπνα συμβόλαια. Η ροή δεδομένων στο oracle είναι αμφίδρομη και μπορεί να χρησιμοποιηθεί για τη μετάφραση οποιωνδήποτε δεδομένων σε πραγματικό χρόνο από δελτία καιρού στην κατάσταση του χρηματιστηρίου σε έξυπνα συμβόλαια. 

Κάθε κόμβος στο blockchain Ethereum διαθέτει πληροφορίες σχετικά με τις συναλλαγές, οι οποίες θα πρέπει να είναι ομοιόμορφες. Επομένως, η ανάκτηση δεδομένων από API θα μπορούσε να οδηγήσει σε αποκλίσεις. Αντίθετα, η Oracle φορτώνει τα δεδομένα στο blockchain, το οποίο εμφανίζεται αμετάβλητα το ίδιο σε όλους τους κόμβους.

Blockchain Oracles
Blockchain Oracles

Πώς να αποκτήσετε πρόσβαση σε δεδομένα από την Oracle;

Τα έξυπνα συμβόλαια χρησιμοποιούν τον κύκλο αίτησης και απάντησης για να λάβουν πληροφορίες από τον κόμβο του μαντείου. Το oracle που υλοποιείται με ένα HTTP GET θα λάβει το αίτημα από το έξυπνο συμβόλαιο και η συνάρτηση επανάκλησης μπορεί να ανακτήσει τα ζητούμενα δεδομένα από το oracle. 

Με αυτόν τον τρόπο, τα δεδομένα συλλέγονται από το έξυπνο συμβόλαιο από το μαντείο. Κάθε μαντείο έχει ρυθμιστεί για να παρέχει συγκεκριμένες πληροφορίες και μπορείτε να αναζητήσετε υπηρεσίες τρίτων για να αποκτήσετε τα δεδομένα που αναζητάτε. 

Εδώ είναι μερικές από τις υπηρεσίες του μαντείου

  • ΚΡΙΚΟΣ ΑΛΥΣΙΔΑΣ
  • Ευαπόδεικτος
  • witnet
  • Paralink και ούτω καθεξής.

Ταξινόμηση των Μαντείων

Τα Oracles κατηγοριοποιούνται σε διάφορους τύπους ανάλογα με την ανάκτηση, την επικύρωση και τη μεταφορά των δεδομένων. 

Μαντεία εισαγωγής: Ο πιο ευρέως αναγνωρισμένος τύπος όπου τα δεδομένα λαμβάνονται εκτός αλυσίδας από τα συμβάντα σε πραγματικό χρόνο. Για π.χ. Οι τροφοδοσίες τιμών των μετοχών λαμβάνονται εκτός αλυσίδας για την ενεργοποίηση δράσης σε έξυπνα συμβόλαια με βάση τις συνθήκες της χρηματοπιστωτικής αγοράς.

Μαντεία εξόδου: Το αντίστροφο των χρησμών εισόδου όπου τα έξυπνα συμβόλαια προκαλούν το μαντείο να εκτελέσει τη δράση. Για π.χ. Στείλτε σήματα στον πάροχο αποθήκευσης για αποθήκευση των δεδομένων ή εκκίνηση τραπεζικών δικτύων για την πραγματοποίηση πληρωμών.

Μαντεία διασταυρούμενων αλυσίδων: Οι χρησμοί πολλαπλών αλυσίδων διευκολύνουν τόσο την ανάγνωση όσο και την εγγραφή δεδομένων σε διαφορετικές αλυσίδες μπλοκ. Καθιστά επίσης δυνατή την ενεργοποίηση γεγονότων σε ένα blockchain και τη λειτουργία τους σε μια άλλη. 

Μαντεία με δυνατότητα υπολογισμού: Οι χρησμοί με δυνατότητα υπολογισμού χρησιμοποιούν υπολογισμούς εκτός αλυσίδας για την παροχή υπηρεσιών. Ειδικά όταν το on-chain δεν είναι αξιόπιστο λόγω τεχνικών ή οικονομικών περιορισμών, χρησιμοποιείται αυτός ο τύπος χρησμού.

Ανάκτηση δεδομένων από το Oracles

Βήμα 1: Το έξυπνο συμβόλαιο στέλνει ένα ερώτημα στο μαντείο.

Βήμα 2: Το ερώτημα κατευθύνεται στον φορέα δεδομένων, ο οποίος αναζητά τα δεδομένα από την πηγή δεδομένων

Βήμα 3: Τα δεδομένα προέρχονται από την πηγή και τροφοδοτούνται στο μαντείο.

Βήμα 4: Η Oracle στέλνει την απάντηση στο έξυπνο συμβόλαιο όπως ζητήθηκε. 

Δημιουργία Oracle στο Ethereum Smart Contract – Δομή κώδικα

Θα βρούμε πώς λειτουργεί η oracle στον προσδιορισμό της τρέχουσας τιμής του Bitcoin σε USD χρησιμοποιώντας μια υπηρεσία μαντείου που ονομάζεται 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" ); } } 

Προβλήματα Oracle

Τα προβλήματα της Oracle είναι ουσιαστικά η σύγκρουση μεταξύ έξυπνων συμβάσεων που δεν έχουν εμπιστοσύνη και αξιόπιστων χρησμών τρίτων, λαμβάνοντας υπόψη την ασφάλεια και την αυθεντικότητα των δεδομένων από τρίτα μέρη.

Τα έξυπνα συμβόλαια βασίζονται σε χρησμούς για τη λήψη αποφάσεων σχετικά με την εκτέλεσή τους, δίνοντάς τους τεράστια δύναμη στη λειτουργία τους. Στην πραγματικότητα, η αποκεντρωμένη φύση των έξυπνων συμβάσεων τίθεται υπό αμφισβήτηση. 

Ωστόσο, οι υπηρεσίες Oracle, όπως το ChainLink και το Oraclize, λειτουργούν ως αποκεντρωμένες λύσεις που αντλούν δεδομένα βασισμένα σε νέες και επαληθευμένες μεθόδους. Έτσι, τα δεδομένα που λαμβάνονται προέρχονται από αποκεντρωμένα μέσα.  

Συμπέρασμα

Η συνδεσιμότητα του blockchain με τον πραγματικό κόσμο είναι αποδεκτά σημαντική για ένα άλμα προς τα εμπρός προς τον αποκεντρωμένο κόσμο. Η Oracles προσφέρει τη λύση για μια αξιόπιστη διεπαφή έξυπνων συμβολαίων με δεδομένα σε πραγματικό χρόνο. 

Ωστόσο, για την προώθηση της βιωσιμότητας, οι υπηρεσίες Oracle πραγματοποιούν προόδους για να ενσταλάξουν την ασφάλεια και την ορθότητα των δεδομένων που λαμβάνονται εκτός αλυσίδας. 

Θέλετε να παραμείνετε πιο σχετικοί με Ασφάλεια Web3?

Ακολουθώ QuillAudits για πολλές τέτοιες ενημερωμένες εγγραφές σχετικά με το Web3.

23 Προβολές

Ο ορθοστάτης Πώς να φτιάξετε το δικό σας Oracle χρησιμοποιώντας έξυπνα συμβόλαια Ethereum; εμφανίστηκε για πρώτη φορά σε Blog.quillhash.

Σφραγίδα ώρας:

Περισσότερα από Quillhash