Come costruire il tuo Oracle utilizzando gli Smart Contracts di Ethereum? Intelligenza dei dati PlatoBlockchain. Ricerca verticale. Ai.

Come costruire il tuo Oracle utilizzando gli Smart Contract di Ethereum?

Tempo per leggere: 5 verbale

Ethereum è la prima blockchain in assoluto ad ereditare le qualità della creazione di dapp, del trading di criptovalute sulla blockchain e così via.

Ha il suo linguaggio di programmazione per scrivere contratti intelligenti e implementarli sulla macchina virtuale Ethereum per infondere decentralizzazione nello svolgimento delle attività. 

I contratti intelligenti eseguono le righe di codici predefinite e soddisfano l'attività prevista. Ma cosa succede se vogliamo far funzionare i contratti intelligenti in base ai risultati dell'accadere in tempo reale?

Per raggiungere questo obiettivo, dobbiamo comprendere il concetto di oracoli blockchain attraverso i quali gli smart contract possono ricevere input dal mondo reale. 

Che cos'è un oracolo in crittografia e come creare un oracolo nel contratto Ethereum Smart? Ne discuteremo in dettaglio nella sezione seguente. 

Argomenti chiave del blog

  • Che cos'è un oracolo crittografico e come funzionano gli oracoli
  • Diversi tipi di oracoli
  • Il flusso di dati dagli oracoli agli smart contract di Ethereum
  • Come codificare gli oracoli di Ethereum
  • Problemi con l'oracolo crittografico

Che cos'è un oracolo e perché è necessario?

Oracoli sono entità che fungono da ponte che collega la blockchain con i sistemi esterni. In altre parole, gli oracoli forniscono i dati degli eventi fuori catena al contratto intelligente per eseguire un'azione basata sull'input.

Ad esempio, negli eventi di scommesse, gli utenti possono scommettere sui giocatori che pensano vinceranno la partita. In base all'avvenimento in tempo reale, i premi vengono distribuiti agli utenti che scommettono sul vincitore. 

Gli oracoli blockchain aiutano a integrare i dati sul vincitore negli smart contract. Il flusso di dati su Oracle è bidirezionale e può essere utilizzato per tradurre qualsiasi dato in tempo reale dai bollettini meteorologici allo stato del mercato azionario in contratti intelligenti. 

Ogni nodo nella blockchain di Ethereum possiede informazioni sulle transazioni, che dovrebbero essere uniformi. Pertanto, il recupero dei dati dalle API potrebbe causare discrepanze. Al contrario, oracle carica i dati sulla blockchain, che appare immutabilmente uguale su tutti i nodi.

Oracoli Blockchain
Oracoli Blockchain

Come accedere ai dati da Oracle?

Gli smart contract utilizzano il ciclo di richiesta e risposta per ottenere informazioni dal nodo Oracle. L'oracolo implementato con un HTTP GET riceverà la richiesta dallo smart contract e la funzione di callback può recuperare i dati richiesti dall'oracolo. 

In questo modo i dati vengono raccolti dallo smart contract dall'oracolo. Ogni oracolo è configurato per fornire informazioni specifiche e puoi cercare servizi di terze parti per acquisire i dati che cerchi. 

Ecco alcuni dei servizi dell'oracolo

  • chainlink
  • dimostrabile
  • witnet
  • Paralink e così via.

Classificazione degli oracoli

Gli oracoli sono classificati in vari tipi a seconda del recupero, della convalida e del trasferimento dei dati. 

Oracoli di input: Il tipo più ampiamente riconosciuto in cui i dati vengono prelevati fuori catena dagli eventi in tempo reale. Per es. I feed dei prezzi sulle azioni sono ottenuti da off-chain per attivare l'azione sui contratti intelligenti in base alle condizioni del mercato finanziario.

Oracoli di output: Il viceversa degli oracoli di input in cui gli smart contract provocano l'oracolo a eseguire l'azione. Per es. Invia segnali al provider di archiviazione per archiviare i dati o avviare reti bancarie per effettuare pagamenti.

Oracoli a catena incrociata: Gli oracoli a catena incrociata facilitano sia la lettura che la scrittura di dati su diversi blockchain. Consente inoltre di attivare eventi in una blockchain e renderli operativi su un'altra. 

Oracoli abilitati al calcolo: Gli oracoli abilitati al calcolo utilizzano il calcolo fuori catena per fornire servizi. Soprattutto quando la catena non è affidabile a causa di vincoli tecnici o finanziari, viene utilizzato questo tipo di oracolo.

Recupero dei dati dagli oracoli

Passaggio 1: lo smart contract invia una query all'oracolo.

Passaggio 2: la query viene indirizzata al supporto dati, che ricerca i dati dall'origine dati

Passaggio 3: i dati vengono derivati ​​dalla fonte e inviati all'oracolo.

Passaggio 4: Oracle invia la risposta allo smart contract come richiesto. 

Creazione di Oracle in Ethereum Smart Contract – Struttura del codice

Scopriremo come funziona Oracle nel determinare il prezzo attuale di Bitcoin in USD utilizzando un servizio Oracle chiamato 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" ); } } 

Problemi di Oracle

I problemi di Oracle sono fondamentalmente il conflitto tra contratti intelligenti senza fiducia e oracoli di terze parti affidabili, considerando la sicurezza e l'autenticità dei dati di terze parti.

I contratti intelligenti si basano sugli oracoli per prendere decisioni sulla loro esecuzione, conferendo loro un potere immenso sul loro funzionamento. Di fatto, la natura decentralizzata degli smart contract è messa in discussione. 

Tuttavia, i servizi Oracle come ChainLink e Oraclize funzionano come soluzioni decentralizzate che derivano dati sulla base di metodi nuovi e autenticati. Pertanto, i dati ottenuti sono attraverso mezzi decentralizzati.  

Conclusione

La connettività della blockchain con il mondo reale è accettabile per un balzo in avanti verso il mondo decentralizzato. Oracle offre la soluzione per un'interfaccia affidabile di contratti intelligenti con dati in tempo reale. 

Tuttavia, per portare avanti la sostenibilità, i servizi Oracle fanno progressi per infondere la sicurezza e la correttezza dei dati ottenuti fuori catena. 

Vuoi rimanere più pertinente a Sicurezza Web3?

Segui QuillAudit per molti di questi articoli aggiornati su Web3.

23 Visualizzazioni

Il post Come costruire il tuo Oracle utilizzando gli Smart Contract di Ethereum? apparve prima Blog.quillhash.

Timestamp:

Di più da quillhash