Máquina de oráculo: Conectando la cadena de bloques con el mundo real.
En la tecnología de cadena de bloques, la máquina de oráculo desempeña un papel fundamental en la infraestructura. Es un sistema capaz de proporcionar información externa a los contratos inteligentes en la cadena, actuando como un middleware entre la cadena de bloques y el mundo exterior. La función principal de la máquina de oráculo es proporcionar los datos externos necesarios para los contratos inteligentes en la cadena de bloques.
Por ejemplo, supongamos que hemos creado un contrato inteligente en la red de Ethereum que necesita obtener datos del volumen de transacciones de petróleo crudo para un día determinado. Dado que el contrato inteligente en sí no puede obtener directamente estos datos del mundo real fuera de la cadena, es necesario utilizar una Máquina de oráculo para hacerlo. En este caso, el contrato inteligente escribirá los datos requeridos del volumen de transacciones de petróleo crudo 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, llamará a los métodos relevantes del contrato y subirá la información del volumen de transacciones de petróleo crudo para la fecha específica al contrato inteligente.
Chainlink: líder en la Máquina de oráculo de Cadena de bloques
En el campo de las máquinas de oráculo, Chainlink es sin duda el proyecto con la mayor cuota de mercado. Como una solución de oráculo descentralizada, el objetivo de Chainlink es proporcionar datos generados en el mundo real a la cadena de bloques de la manera más segura posible. Basado en los principios básicos de las máquinas de oráculo, Chainlink ha construido un ecosistema que forma un ciclo virtuoso a través de incentivos económicos alrededor del token LINK.
La activación de la máquina de oráculo de Chainlink necesita ser realizada mediante la transferencia del token LINK. LINK es un token de contrato ERC677 basado en la red de Ethereum. La funcionalidad de la máquina de oráculo completada con el token LINK ERC677 pertenece al modo de solicitud/respuesta.
transferAndCall en el token ERC677
El estándar ERC677 fue propuesto por Chainlink para adaptarse a los escenarios de servicio de oráculo. Se basa en el estándar ERC20 y añade el método transferAndCall, combinando el pago y la solicitud de servicio en uno, satisfaciendo así las necesidades del escenario de negocio de oráculos.
Cuando un usuario realiza una transferencia utilizando transferAndCall, además de la transferencia ERC20 convencional, también se verificará si la dirección de recepción es una dirección de contrato. Si es así, se llamará al método onTokenTransfer de esa dirección. Es importante señalar que, antes de solicitar servicios de la máquina de oráculo, el usuario debe confirmar la fiabilidad de esa máquina de oráculo, ya que el servicio de oráculo requiere un pago por adelantado.
proceso de solicitud de oráculo en la 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 primero realiza una serie de verificaciones de seguridad. Esto incluye verificar si la transferencia es un token LINK, comprobar si la longitud de los datos excede el límite, validar si los datos contienen el selector de función correcto, etc.
Después de pasar la verificación de seguridad, el contrato generará un requestId único y establecerá el tiempo de expiración de la solicitud. Finalmente, el contrato emitirá un evento OracleRequest, el cual contiene los datos detallados de la solicitud.
Mecanismo de respuesta de nodos fuera de la cadena
Los nodos fuera de la cadena, al recibir el evento OracleRequest,解析出请求的具体信息, a través de la API de red, obtienen los datos necesarios. Luego, el nodo llamará al método fulfillOracleRequest para enviar los datos a la cadena.
Este método realizará una serie de validaciones, incluyendo verificar si el llamador está autorizado, validar la efectividad de la solicitud, etc. Una vez que la validación sea exitosa, el contrato registrará la cantidad de tokens que se pueden extraer y eliminará el requestId del mapa de compromisos. Finalmente, el contrato llamará a la función de devolución de llamada del contrato del solicitante, devolviendo los datos al consumidor.
Aplicación práctica 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, pueden usar directamente la interfaz de Price Feed proporcionada por Chainlink. Cada par de negociación tiene un Price Feed separado ( también conocido como Aggregator ), que en realidad es un contrato AggregatorProxy.
Estas interfaces suelen ofrecer los siguientes métodos de consulta:
decimals(): devuelve la cantidad de decimales de los datos de precios
description(): Devuelve el nombre del par de operaciones
version(): Identificador del tipo de Aggregator al que apunta el Proxy
getRoundData(_roundId): Obtener datos de precio de una ronda específica
latestRoundData(): Obtener los últimos datos de precios
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 es el precio más reciente.
Cabe destacar que la mayoría de los precios de los tokens leídos por las aplicaciones están denominados en USD. En este caso, la precisión generalmente se unifica en 8 decimales, lo que simplifica el problema del manejo de la precisión entre diferentes tokens.
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.
5 me gusta
Recompensa
5
7
Compartir
Comentar
0/400
nft_widow
· hace14h
Máquina de oráculo increíble 这不就能横着走了!
Ver originalesResponder0
CountdownToBroke
· hace14h
solo un pasajero en la cadena
Ver originalesResponder0
BlockchainBouncer
· hace14h
¡Gaga, otra vez explicando el mecanismo de la Máquina de oráculo!
Ver originalesResponder0
StakeTillRetire
· hace14h
La Máquina de oráculo es realmente genial. Mis contratos inteligentes no pueden estar sin ella.
Ver originalesResponder0
FUD_Whisperer
· hace15h
Ya ni siquiera puedo permitirme comer arroz de contrato.
Ver originalesResponder0
HalfPositionRunner
· hace15h
Estos datos de la fritura dependen de la Máquina de oráculo para ser salvados.
Ver originalesResponder0
ImpermanentPhilosopher
· hace15h
Tsk, otra vez la Máquina de oráculo en la misma cantinela.
Cómo la máquina de oráculo se convierte en un puente de datos entre la cadena de bloques y el mundo real
Máquina de oráculo: Conectando la cadena de bloques con el mundo real.
En la tecnología de cadena de bloques, la máquina de oráculo desempeña un papel fundamental en la infraestructura. Es un sistema capaz de proporcionar información externa a los contratos inteligentes en la cadena, actuando como un middleware entre la cadena de bloques y el mundo exterior. La función principal de la máquina de oráculo es proporcionar los datos externos necesarios para los contratos inteligentes en la cadena de bloques.
Por ejemplo, supongamos que hemos creado un contrato inteligente en la red de Ethereum que necesita obtener datos del volumen de transacciones de petróleo crudo para un día determinado. Dado que el contrato inteligente en sí no puede obtener directamente estos datos del mundo real fuera de la cadena, es necesario utilizar una Máquina de oráculo para hacerlo. En este caso, el contrato inteligente escribirá los datos requeridos del volumen de transacciones de petróleo crudo 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, llamará a los métodos relevantes del contrato y subirá la información del volumen de transacciones de petróleo crudo para la fecha específica al contrato inteligente.
Chainlink: líder en la Máquina de oráculo de Cadena de bloques
En el campo de las máquinas de oráculo, Chainlink es sin duda el proyecto con la mayor cuota de mercado. Como una solución de oráculo descentralizada, el objetivo de Chainlink es proporcionar datos generados en el mundo real a la cadena de bloques de la manera más segura posible. Basado en los principios básicos de las máquinas de oráculo, Chainlink ha construido un ecosistema que forma un ciclo virtuoso a través de incentivos económicos alrededor del token LINK.
La activación de la máquina de oráculo de Chainlink necesita ser realizada mediante la transferencia del token LINK. LINK es un token de contrato ERC677 basado en la red de Ethereum. La funcionalidad de la máquina de oráculo completada con el token LINK ERC677 pertenece al modo de solicitud/respuesta.
transferAndCall en el token ERC677
El estándar ERC677 fue propuesto por Chainlink para adaptarse a los escenarios de servicio de oráculo. Se basa en el estándar ERC20 y añade el método transferAndCall, combinando el pago y la solicitud de servicio en uno, satisfaciendo así las necesidades del escenario de negocio de oráculos.
Cuando un usuario realiza una transferencia utilizando transferAndCall, además de la transferencia ERC20 convencional, también se verificará si la dirección de recepción es una dirección de contrato. Si es así, se llamará al método onTokenTransfer de esa dirección. Es importante señalar que, antes de solicitar servicios de la máquina de oráculo, el usuario debe confirmar la fiabilidad de esa máquina de oráculo, ya que el servicio de oráculo requiere un pago por adelantado.
proceso de solicitud de oráculo en la 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 primero realiza una serie de verificaciones de seguridad. Esto incluye verificar si la transferencia es un token LINK, comprobar si la longitud de los datos excede el límite, validar si los datos contienen el selector de función correcto, etc.
Después de pasar la verificación de seguridad, el contrato generará un requestId único y establecerá el tiempo de expiración de la solicitud. Finalmente, el contrato emitirá un evento OracleRequest, el cual contiene los datos detallados de la solicitud.
Mecanismo de respuesta de nodos fuera de la cadena
Los nodos fuera de la cadena, al recibir el evento OracleRequest,解析出请求的具体信息, a través de la API de red, obtienen los datos necesarios. Luego, el nodo llamará al método fulfillOracleRequest para enviar los datos a la cadena.
Este método realizará una serie de validaciones, incluyendo verificar si el llamador está autorizado, validar la efectividad de la solicitud, etc. Una vez que la validación sea exitosa, el contrato registrará la cantidad de tokens que se pueden extraer y eliminará el requestId del mapa de compromisos. Finalmente, el contrato llamará a la función de devolución de llamada del contrato del solicitante, devolviendo los datos al consumidor.
Aplicación práctica 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, pueden usar directamente la interfaz de Price Feed proporcionada por Chainlink. Cada par de negociación tiene un Price Feed separado ( también conocido como Aggregator ), que en realidad es un contrato AggregatorProxy.
Estas interfaces suelen ofrecer los siguientes métodos de consulta:
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 es el precio más reciente.
Cabe destacar que la mayoría de los precios de los tokens leídos por las aplicaciones están denominados en USD. En este caso, la precisión generalmente se unifica en 8 decimales, lo que simplifica el problema del manejo de la precisión entre diferentes tokens.