Como construir seu próprio oráculo usando contratos inteligentes Ethereum? Inteligência de dados PlatoBlockchain. Pesquisa vertical. Ai.

Como construir seu próprio Oracle usando contratos inteligentes Ethereum?

Tempo de leitura: 5 minutos

O Ethereum é o primeiro blockchain a herdar as qualidades de criar dapps, negociar ativos criptográficos no blockchain e assim por diante.

Ele tem sua linguagem de programação para escrever contratos inteligentes e implementá-los na máquina virtual Ethereum para infundir a descentralização na execução das atividades. 

Os contratos inteligentes executam as linhas de códigos pré-definidas e cumprem a tarefa pretendida. Mas e se quisermos que os contratos inteligentes funcionem com base nos resultados dos acontecimentos em tempo real?

Para conseguir isso, precisamos entender o conceito de oráculos blockchain através dos quais os contratos inteligentes podem receber entradas do mundo real. 

O que é um oráculo em criptografia e como criar um oráculo no contrato Ethereum Smart? Discutiremos isso em detalhes na seção a seguir. 

Principais tópicos do blog

  • O que é um oráculo de criptografia e como funcionam os oráculos
  • Diferentes tipos de oráculos
  • O fluxo de dados de oráculos para contratos inteligentes Ethereum
  • Como codificar oráculos Ethereum
  • Problemas com o oráculo de criptografia

O que é um oráculo e por que é necessário?

Oráculos são entidades que atuam como uma ponte conectando o blockchain com sistemas externos. Em outras palavras, os oráculos fornecem os dados de eventos fora da cadeia ao contrato inteligente para executar uma ação com base na entrada.

Por exemplo, em eventos de apostas, os usuários podem apostar nos jogadores que acham que vencerão a partida. Com base no acontecimento em tempo real, as recompensas são distribuídas aos usuários que apostam no vencedor. 

Os oráculos Blockchain ajudam a complementar os dados sobre o vencedor dos contratos inteligentes. O fluxo de dados no oracle é bidirecional e pode ser usado para traduzir quaisquer dados em tempo real de boletins meteorológicos para status do mercado de ações e contratos inteligentes. 

Cada nó na blockchain Ethereum possui informações sobre as transações, que devem ser uniformes. Portanto, buscar dados de APIs pode resultar em discrepâncias. Em contraste, a Oracle carrega os dados no blockchain, que imutavelmente aparecem iguais em todos os nós.

Oráculos de Blockchain
Oráculos de Blockchain

Como acessar dados do Oracle?

Contratos inteligentes usam o ciclo de solicitação e resposta para obter informações do nó oracle. O oráculo implementado com um HTTP GET receberá a solicitação do contrato inteligente e a função de retorno de chamada poderá recuperar os dados solicitados do oráculo. 

Dessa forma, os dados são coletados pelo contrato inteligente do oráculo. Cada oráculo é configurado para fornecer informações específicas, e você pode buscar serviços de terceiros para adquirir os dados que procura. 

Aqui estão alguns dos serviços da oráculo

  • Elo de corrente
  • Demonstrável
  • witnet
  • Paralink e assim por diante.

Classificação dos Oráculos

Os oráculos são categorizados em vários tipos, dependendo da busca, validação e transferência dos dados. 

Oráculos de entrada: O tipo mais amplamente reconhecido em que os dados são buscados fora da cadeia dos acontecimentos em tempo real. Por ex. Os feeds de preços de ações são obtidos fora da cadeia para desencadear ações em contratos inteligentes com base nas condições do mercado financeiro.

Oráculos de saída: O vice-versa de oráculos de entrada onde os contratos inteligentes provocam o oráculo a executar a ação. Por ex. Envie sinais para o provedor de armazenamento para armazenar os dados ou iniciar redes bancárias para efetuar pagamentos.

Oráculos de cadeia cruzada: Os oráculos de cadeia cruzada facilitam a leitura e a gravação de dados em diferentes blockchains. Também possibilita acionar eventos em um blockchain e torná-los operacionais em outro. 

Oráculos habilitados para computação: Os oráculos habilitados para computação fazem uso de computação fora da cadeia para fornecer serviços. Especialmente quando o on-chain não é confiável devido a restrições técnicas ou financeiras, esse tipo de oráculo é usado.

Busca de dados de Oracles

Etapa 1: o contrato inteligente envia uma consulta ao oráculo.

Passo 2: A consulta é direcionada ao portador de dados, que busca os dados da fonte de dados

Etapa 3: Os dados são derivados da fonte e são alimentados no oráculo.

Etapa 4: a Oracle envia a resposta ao contrato inteligente conforme solicitado. 

Criando Oracle In Ethereum Smart Contract – Estrutura de Código

Descobriremos como a oracle funciona para determinar o preço atual do Bitcoin em USD usando um serviço oracle chamado 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" ); } } 

Problemas do Oracle

Os problemas da Oracle são fundamentalmente o conflito entre contratos inteligentes sem confiança e oráculos confiáveis ​​de terceiros, considerando a segurança e a autenticidade dos dados de terceiros.

Contratos inteligentes dependem de oráculos para tomar decisões sobre sua execução, dando-lhes imenso poder sobre seu funcionamento. De fato, a natureza descentralizada dos contratos inteligentes é questionada. 

No entanto, serviços Oracle como ChainLink e Oraclize funcionam como soluções descentralizadas que derivam dados com base em métodos novos e autenticados. Assim, os dados obtidos são por meio descentralizado.  

Conclusão

A conectividade do blockchain com o mundo real é aceitavelmente significativa para um salto em direção ao mundo descentralizado. As Oracles estão oferecendo a solução para uma interface confiável de contratos inteligentes com dados em tempo real. 

No entanto, para trazer sustentabilidade, avanços são feitos pelos serviços oracle para incutir a segurança e a exatidão dos dados obtidos fora da cadeia. 

Quer se manter mais relevante para Segurança Web3?

Siga-nos QuillAuditorias para muitos desses artigos atualizados sobre a Web3.

23 Visualizações

O posto Como construir seu próprio Oracle usando contratos inteligentes Ethereum? apareceu pela primeira vez em Blog.quilhash.

Carimbo de hora:

Mais de Quilhash