Análisis profundo de Chainlink: cómo la máquina de oráculo conecta la cadena de bloques con el mundo real

robot
Generación de resúmenes en curso

Máquina de oráculo: contratos inteligentes y el puente con el mundo real

En el ecosistema blockchain, la Máquina de oráculo juega un papel crucial. Actúa como un sistema de middleware, capaz de proporcionar información externa a los contratos inteligentes en la cadena, conectando así el mundo blockchain con el mundo real. La función principal de la Máquina de oráculo es proporcionar los datos externos necesarios a los contratos inteligentes.

Por ejemplo, supongamos que hemos creado un contrato inteligente en la red de Ethereum que necesita obtener datos sobre el volumen de transacciones de petróleo crudo de un día específico. Dado que el contrato inteligente no puede acceder directamente a estos datos del mundo real fuera de la cadena, es necesario recurrir a la Máquina de oráculo para lograrlo. En este caso, el contrato inteligente registrará el volumen de transacciones de petróleo crudo de la fecha requerida en el registro de eventos. Luego, se iniciará un proceso fuera de la cadena para monitorear y suscribirse a este registro de eventos. Cuando se detecta una solicitud en la transacción, el proceso enviará una transacción en la cadena para llamar a los métodos relevantes del contrato y cargará la información del volumen de transacciones de petróleo crudo de la fecha especificada en el contrato inteligente.

Máquina de oráculo详解系列之 Chainlink(上)

Chainlink: solución de Máquina de oráculo líder

En el actual mercado de blockchain, Chainlink es el proyecto de oráculo más dominante. Como un sistema de oráculo descentralizado, Chainlink tiene como objetivo proporcionar datos generados en el mundo real a la blockchain de la manera más segura. Sobre la base de los principios fundamentales de los oráculos, Chainlink ha construido un ecosistema impulsado por incentivos económicos alrededor del token LINK.

La activación de la Máquina de oráculo de Chainlink requiere la transferencia de tokens LINK. LINK es un contrato ERC677 en la red de Ethereum, y las funciones de Máquina de oráculo basadas en el token LINK ERC677 pertenecen al modo de solicitud/respuesta.

Máquina de oráculo详解系列之 Chainlink(上)

mecanismo transferAndCall del token ERC677

Al diseñar el marco de la Máquina de oráculo, Chainlink considera primero cómo los usuarios pueden pagar las tarifas de servicio a la Máquina de oráculo. Dado que los tokens ERC20 estándar no pueden satisfacer la demanda de "proporcionar servicios después del pago", Chainlink propuso el estándar ERC677, adecuado para el escenario de servicios de Máquina de oráculo.

ERC677 añade el método transferAndCall sobre la base del estándar ERC20. Este método combina el pago y la solicitud de servicio, satisfaciendo las necesidades del escenario de negocio de la Máquina de oráculo. Cuando un usuario realiza una transferencia transferAndCall, además de la transferencia ERC20, también se verifica si la dirección de recepción es una dirección de contrato; si es así, se llama al método onTokenTransfer de esa dirección.

Cabe destacar que, antes de solicitar los servicios de la Máquina de oráculo, los usuarios deben determinar si dicha Máquina de oráculo es confiable, ya que la Máquina de oráculo debe cobrar una tarifa antes de proporcionar el servicio.

Máquina de oráculo详解系列之 Chainlink(上)

proceso de solicitud de oráculo en cadena

Cuando los consumidores de la Máquina de oráculo utilizan el método transferAndCall para pagar tarifas y solicitar servicios, el método onTokenTransfer en el contrato de la Máquina de oráculo realiza una serie de comprobaciones de seguridad. Esto incluye verificar que la transferencia sea un token LINK, comprobar que la longitud de los datos no supere el límite, validar que los datos contengan el selector de función correcto, entre otros.

Una vez que la verificación sea exitosa, el contrato de Máquina de oráculo generará un requestId único y almacenará la información relacionada con la solicitud en el mapeo de commitments. Finalmente, el contrato emitirá un evento OracleRequest que contendrá los datos detallados de la solicitud.

Máquina de oráculo详解系列之 Chainlink(上)

mecanismo de respuesta de nodos fuera de la cadena

Después de que el nodo fuera de la cadena escuche el evento OracleRequest, analizará la información específica de la solicitud y obtendrá los datos necesarios a través de una llamada API. Luego, el nodo llamará al método fulfillOracleRequest en el contrato de oráculo mediante la presentación de una transacción, enviando los datos a la cadena.

Este método llevará a cabo una serie de verificaciones, incluyendo comprobar si el llamador es un nodo autorizado, validar la validez del ID de solicitud, etc. Una vez que la verificación se complete, el contrato registrará la cantidad de tokens que se pueden retirar y eliminará el ID de solicitud del mapa de compromisos.

Finalmente, el contrato llamará a la función de retorno del contrato del solicitante, devolviendo los datos al contrato del consumidor. Para la Máquina de oráculo de precios, esto generalmente implica actualizar los datos del precio actual.

Máquina de oráculo详解系列之 Chainlink(上)

Uso simplificado de la Máquina de oráculo de precios

Para los desarrolladores, si solo necesitan utilizar los datos de precios de pares de monedas existentes, sin necesidad de especificar una URL de API, pueden utilizar directamente el Price Feed proporcionado por Chainlink. Cada par de negociación tiene un Price Feed independiente ( también conocido como Aggregator ), que en realidad es un contrato AggregatorProxy.

Estos contratos generalmente ofrecen los siguientes métodos de consulta principales:

  • decimals(): devuelve la cantidad de decimales de los datos de precio
  • description(): devuelve el nombre del par de negociación
  • version(): Identificador del tipo de Aggregator al que apunta el Proxy
  • getRoundData(_roundId): obtener datos históricos de precios según el ID de la ronda
  • latestRoundData(): obtener los datos de precios más recientes

En la mayoría de los escenarios de aplicación, el contrato puede necesitar solo leer el precio más reciente, es decir, llamar al método latestRoundData(). El parámetro answer devuelto por este método es el precio más reciente.

Es importante destacar que la mayoría de las aplicaciones que leen el precio de los tokens lo hacen en USD. En este caso, la precisión de los datos de precios generalmente se unifica a 8 decimales, lo que simplifica el problema del manejo de la precisión entre diferentes tokens.

Máquina de oráculo详解系列之 Chainlink(上)

LINK4.12%
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • 8
  • Compartir
Comentar
0/400
Anon32942vip
· 07-15 12:05
¡Entiendo lo de la Máquina de oráculo! He acumulado un poco de link.
Ver originalesResponder0
CrossChainBreathervip
· 07-15 11:26
La máquina de oráculo salvó mi billetera
Ver originalesResponder0
rugdoc.ethvip
· 07-12 12:36
La Máquina de oráculo tampoco lo ha entendido bien.
Ver originalesResponder0
HackerWhoCaresvip
· 07-12 12:32
link es el futuro, ¿verdad?
Ver originalesResponder0
MetaverseHermitvip
· 07-12 12:23
linkalcista哇alcista哇
Ver originalesResponder0
SchrodingerWalletvip
· 07-12 12:17
Máquina de oráculo es realmente buena... Token está estable
Ver originalesResponder0
GasWastervip
· 07-12 12:14
Mamá, la máquina de oráculo de esta noche huele realmente bien.
Ver originalesResponder0
bridge_anxietyvip
· 07-12 12:07
¡Resulta que es realmente delicioso!
Ver originalesResponder0
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)