Introducción a los Oráculos en Blockchain
En el ámbito de la blockchain, un oráculo es un sistema que permite proporcionar información externa a los contratos inteligentes en la cadena. Actuando como un middleware que conecta los contratos inteligentes con el mundo exterior, el oráculo desempeña un papel fundamental en la infraestructura de la tecnología blockchain.
Función Principal de un Oráculo
Su función principal es suministrar datos necesarios para la ejecución de los contratos inteligentes. Por ejemplo, si diseñamos un contrato inteligente en la red Ethereum y este requiere acceder a datos sobre el volumen de comercio de petróleo crudo en una fecha específica, el contrato no puede obtener esta información del mundo real por sí mismo, ya que está aislado de la cadena. Aquí es donde entra en juego el oráculo.
En este escenario, el contrato inteligente registrará el volumen de comercio de petróleo crudo para la fecha solicitada en un evento. Posteriormente, se iniciará un proceso externo a la cadena que monitorizará este registro de eventos. Cuando se identifica una solicitud en una transacción, el proceso transferirá la información del volumen de comercio de petróleo crudo a la cadena mediante la presentación de una transacción y la invocación del método correspondiente del contrato.
Chainlink: El Oráculo de Mayor Cuota de Mercado
En la actualidad, Chainlink es el oráculo con mayor cuota de mercado en la blockchain. Chainlink es un proyecto de oráculo descentralizado que ofrece datos del mundo real a la blockchain de manera segura. Ha establecido un ecosistema de ciclo virtuoso en torno a su token LINK, a través de incentivos económicos que se basan en un principio básico de funcionamiento de los oráculos.
Para activarlo, se requiere una transferencia de tokens LINK, que es un contrato ERC-677 en la red Ethereum. La funcionalidad del oráculo basada en el token LINK ERC-677 se rige bajo un modelo de solicitud/respuesta utilizando el método transferAndCall. El oráculo representa, en esencia, el proveedor del servicio.
Modelo de Solicitud/Respuesta y el Estándar ERC-677
Cuando Chainlink diseñó su marco de oráculo, una de sus prioridades fue cómo los usuarios podrían pagar por este servicio. Sin embargo, dado que el estándar ERC-20 de los tokens homogéneos no cumple con el requisito de ofrecimiento de servicios tras el pago, Chainlink propuso un estándar más adecuado para los escenarios de servicio de oráculos: el ERC-677.
Como se observa, el ERC-677 en realidad solo añade un método transferAndCall basado en el estándar ERC-20. Este método combina el pago y la solicitud de servicio en una única operación, cumpliendo así con las necesidades de este tipo de aplicaciones.
Proceso de Solicitud y Respuesta del Oráculo
Es importante señalar que antes de solicitar el servicio de un oráculo, es crucial verificar su fiabilidad, dado que el oráculo debe ser remunerado antes de ofrecer sus servicios. La clasificación de la confiabilidad del oráculo se realiza mediante la solicitud de oráculo en la cadena.
“Cuando el consumidor del oráculo utiliza el método transferAndCall para pagar la tarifa y solicitar el servicio de oráculos, la dirección de destino corresponde a la dirección del oráculo requerido.”
Ejemplo de Evento OracleRequest
A partir de un evento OracleRequest, podemos ver que el agregador de precios ETH/USD envió una solicitud de datos de precios al oráculo. Si el oráculo devuelve los datos solicitados, será posible conocer la dirección del contrato devuelto, el ID del método a invocar y el tiempo de expiración.
Función de Callback y Respuesta del Nodo
La respuesta a la solicitud debe ser lo más rápida posible, por lo que se aconseja utilizar el servicio de nodo ZAN para mejorar la velocidad de respuesta. La ID de la función de callback se verifica y, si todas las verificaciones pasan, se emite el evento ChainlinkFulfilled.
Este es el procedimiento completo del servicio de oráculo general. Un ejemplo del método “requestEthereumPrice” en el contrato “TestnetConsumer” que proporciona Chainlink, ilustra el proceso de respuesta a la solicitud de oráculo de precios.
Accediendo a Precios de Pares de Divisas
Como desarrollador, es posible acceder a los precios de los pares de divisas existentes sin necesidad de especificar manualmente estas URL. Cada par de trading tiene un feed de precios separado, también conocido como Agregador, lo que simplifica la consulta de precios.
Este artículo fue escrito por XiG del equipo ZAN.