¿Cómo construir su propio Oracle usando contratos inteligentes de Ethereum? Inteligencia de datos PlatoBlockchain. Búsqueda vertical. Ai.

¿Cómo construir su propio Oracle usando contratos inteligentes de Ethereum?

Tiempo de lectura: 5 minutos

Ethereum es la primera cadena de bloques en heredar las cualidades de crear dapps, intercambiar criptoactivos en la cadena de bloques, etc.

Tiene su lenguaje de programación para escribir contratos inteligentes e implementarlos en la máquina virtual Ethereum para infundir descentralización en la realización de actividades. 

Los contratos inteligentes ejecutan las líneas de códigos predefinidas y cumplen la tarea prevista. Pero, ¿qué sucede si queremos que los contratos inteligentes funcionen en función de los resultados del suceso en tiempo real?

Para lograr esto, debemos comprender el concepto de los oráculos de la cadena de bloques a través de los cuales los contratos inteligentes pueden recibir información del mundo real. 

¿Qué es un oráculo en criptografía y cómo crear un oráculo en el contrato Ethereum Smart? Hablaremos de esto en detalle en la siguiente sección. 

Temas clave del blog

  • ¿Qué es un oráculo criptográfico y cómo funcionan los oráculos?
  • Diferentes tipos de oráculos.
  • El flujo de datos de los oráculos a los contratos inteligentes de Ethereum
  • Cómo codificar los oráculos de Ethereum
  • Problemas con el oráculo criptográfico

¿Qué es un oráculo y por qué es necesario?

Oráculos son entidades que actúan como puente conectando la cadena de bloques con sistemas externos. En otras palabras, Oracle proporciona los datos de eventos fuera de la cadena al contrato inteligente para realizar una acción basada en la entrada.

Por ejemplo, en los eventos de apuestas, los usuarios pueden apostar por los jugadores que creen que ganarán el partido. Según lo que suceda en tiempo real, las recompensas se distribuyen a los usuarios que apuestan por el ganador. 

Los oráculos de blockchain ayudan a complementar los datos sobre el ganador de los contratos inteligentes. El flujo de datos en Oracle es bidireccional y se puede utilizar para traducir cualquier dato en tiempo real, desde informes meteorológicos hasta el estado del mercado de valores y contratos inteligentes. 

Cada nodo en la cadena de bloques de Ethereum posee información sobre las transacciones, que deberían ser uniformes. Por lo tanto, obtener datos de las API podría generar discrepancias. Por el contrario, Oracle carga los datos en la cadena de bloques, que aparece inmutablemente igual en todos los nodos.

Oráculos de Blockchain
Oráculos de Blockchain

¿Cómo acceder a los datos de Oracle?

Los contratos inteligentes utilizan el ciclo de solicitud y respuesta para obtener información del nodo de Oracle. El oráculo implementado con HTTP GET recibirá la solicitud del contrato inteligente y la función de devolución de llamada puede recuperar los datos solicitados del oráculo. 

De esta manera, los datos son recopilados por el contrato inteligente del oráculo. Cada oráculo está configurado para proporcionar información específica y puede buscar servicios de terceros para adquirir los datos que busca. 

Estos son algunos de los servicios de Oracle

  • Eslabón de la cadena
  • Demostrable
  • witnet
  • Paralink, etc.

Clasificación de los oráculos

Los oráculos se clasifican en varios tipos según la obtención, validación y transferencia de datos. 

Oráculos de entrada: El tipo más ampliamente reconocido donde los datos se obtienen fuera de la cadena de los acontecimientos en tiempo real. por ej. Los precios de las acciones se obtienen fuera de la cadena para desencadenar acciones en contratos inteligentes en función de las condiciones del mercado financiero.

Oráculos de salida: Lo contrario de los oráculos de entrada donde los contratos inteligentes provocan que el oráculo ejecute la acción. por ej. Envíe señales al proveedor de almacenamiento para almacenar los datos o inicie redes bancarias para realizar pagos.

Oráculos de cadena cruzada: Los oráculos de cadena cruzada facilitan tanto la lectura como la escritura de datos en diferentes cadenas de bloques. También permite activar eventos en una cadena de bloques y hacerlos operativos en otra. 

Oracles habilitados para computación: Los oráculos habilitados para computación hacen uso de la computación fuera de la cadena para proporcionar servicios. Especialmente cuando la cadena no es confiable debido a restricciones técnicas o financieras, se usa este tipo de oráculo.

Obtención de datos de oráculos

Paso 1: el contrato inteligente envía una consulta al oráculo.

Paso 2: la consulta se dirige al soporte de datos, que busca los datos de la fuente de datos

Paso 3: Los datos se derivan de la fuente y se envían al oráculo.

Paso 4: Oracle envía la respuesta al contrato inteligente según lo solicitado. 

Creación de contratos inteligentes de Oracle en Ethereum: estructura del código

Encontraremos cómo funciona Oracle para determinar el precio actual de Bitcoin en USD utilizando un servicio de Oracle llamado 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 de oráculo

Los problemas de Oracle son fundamentalmente el conflicto entre los contratos inteligentes sin confianza y los oráculos de terceros confiables, considerando la seguridad y la autenticidad de los datos de terceros.

Los contratos inteligentes se basan en oráculos para tomar decisiones con respecto a su ejecución, lo que les otorga un inmenso poder sobre su funcionamiento. De hecho, se cuestiona la naturaleza descentralizada de los contratos inteligentes. 

Sin embargo, los servicios de Oracle como ChainLink y Oraclize funcionan como soluciones descentralizadas que obtienen datos basados ​​en métodos novedosos y autenticados. Así, los datos obtenidos son a través de medios descentralizados.  

Conclusión

La conectividad de la cadena de bloques con el mundo real es aceptablemente significativa para dar un salto hacia el mundo descentralizado. Oracles ofrece la solución para una interfaz confiable de contratos inteligentes con datos en tiempo real. 

Sin embargo, para lograr la sostenibilidad, los servicios de Oracle realizan avances para inculcar la seguridad y la corrección de los datos obtenidos fuera de la cadena. 

Quiere seguir siendo más relevante para seguridad web3?

Seguir QuillAuditorias para muchos artículos actualizados sobre Web3.

23 Vistas

El puesto ¿Cómo construir su propio Oracle usando contratos inteligentes de Ethereum? apareció por primera vez en Blog.quillhash.

Sello de tiempo:

Mas de hachís