Análise da tecnologia Máquina Oracle Chainlink: a ponte que conecta Blockchain ao mundo real

robot
Geração do resumo em andamento

Análise Técnica da Máquina Oracle: O Caso do Chainlink

No ecossistema blockchain, a Máquina Oracle desempenha um papel crucial como infraestrutura, fornecendo informações externas para contratos inteligentes na cadeia. Como uma ponte entre contratos inteligentes e o mundo exterior à blockchain, a principal função da Máquina Oracle é fornecer dados para contratos inteligentes.

Por exemplo, suponha que criamos um contrato inteligente na rede Ethereum que precisa obter dados sobre o volume de transações de petróleo de um determinado dia. Como o contrato inteligente em si não pode acessar diretamente esses dados do mundo real fora da cadeia, é necessário utilizar uma Máquina Oracle para isso. Nessa situação, o contrato inteligente registrará o volume de transações de petróleo da data desejada no log de eventos. Em seguida, um processo fora da cadeia será iniciado para monitorar e assinar esse log de eventos. Quando o pedido em transação for detectado, esse processo fará a chamada de métodos relacionados do contrato, submetendo uma transação na cadeia, e enviará as informações do volume de transações de petróleo da data especificada para o contrato inteligente.

Máquina Oracle详解系列之 Chainlink(上)

Visão Geral do Chainlink

No campo das máquinas Oracle de blockchain, a Chainlink detém a maior quota de mercado. A Chainlink é um projeto de máquina Oracle descentralizada, cujo principal objetivo é fornecer dados do mundo real à blockchain de forma segura e confiável. Com base nos princípios básicos das máquinas Oracle, a Chainlink estabeleceu um ecossistema de ciclo virtuoso em torno do token LINK através de incentivos econômicos. As máquinas Oracle da Chainlink precisam ser acionadas pela transferência de tokens LINK, que são contratos ERC677 na rede Ethereum. As funcionalidades da máquina Oracle completadas com o token LINK ERC677 pertencem ao modo de solicitação/resposta.

Máquina Oracle detalhada série Chainlink (parte 1)

Mecanismo transferAndCall do token ERC677

Ao projetar a estrutura da Máquina Oracle, a Chainlink considera principalmente como os usuários podem pagar as taxas aos oráculos que fornecem serviços. Como os tokens ERC20 padrão não atendem à necessidade de pagamento após a prestação de serviços, a Chainlink propôs o padrão ERC677 adequado para cenários de serviços de oráculos.

O ERC677 adiciona o método transferAndCall à standard ERC20. Este método combina pagamento e solicitações de serviço, satisfazendo as necessidades do cenário de negócios da Máquina Oracle. Quando um usuário realiza uma transferência transferAndCall, além da transferência ERC20, também será verificado se o endereço de recebimento é um endereço de contrato; se for, o método onTokenTransfer desse endereço será chamado.

É importante notar que, antes de solicitar os serviços da Máquina Oracle, os utilizadores precisam primeiro de determinar se a Máquina Oracle é confiável, pois a Máquina Oracle exige o pagamento antecipado antes de prestar os serviços.

Máquina Oracle详解系列之 Chainlink(上)

Processamento de pedidos de oráculo na cadeia

Quando os consumidores da Máquina Oracle utilizam o método transferAndCall para pagar taxas e solicitar serviços, o método onTokenTransfer no contrato da Máquina Oracle realiza primeiro uma série de verificações de segurança. Essas verificações incluem validar se a transferência é do token LINK, determinar se o comprimento dos dados excede o limite, verificar se o seletor da função está correto, entre outros.

Após a aprovação de todas as verificações de segurança, o contrato chamará o método oracleRequest do contrato oracle através de deleGatecall. Este método gerará um requestId único, definirá um tempo de expiração e armazenará as informações relevantes no mapeamento commitments. Finalmente, emitirá um evento OracleRequest, que conterá os dados da solicitação, utilizando o formato de codificação CBOR (Concise Binary Object Representation).

Máquina Oracle详解系列之 Chainlink(上)

Resposta do nó off-chain

Após o nó off-chain ouvir o evento OracleRequest, ele irá analisar as informações específicas do pedido e, através da API de rede, obter os dados necessários. Em seguida, o nó chamará o método fulfillOracleRequest do contrato oracle, enviando os dados para a blockchain.

O método fulfillOracleRequest primeiro realizará uma série de verificações, incluindo a validação das permissões do chamador, a verificação da validade do pedido, entre outros. Após a verificação, ele registrará o montante retirável, removerá esse pedido do mapeamento commitments e chamará a função de retorno do contrato do solicitante.

Máquina Oracle详解系列之 Chainlink(上)

Exemplo de Máquina Oracle de Preços

Como exemplo do método requestEthereumPrice no contrato TestnetConsumer fornecido pela Chainlink, esse método implementa a funcionalidade de obter o preço de negociação ETH/USD de uma API específica. Ele emite uma solicitação chamando o método sendChainlinkRequestTo, acionando o método onTokenTransfer do contrato oracle.

Após obter as informações de solicitação, o nó off-chain chamará a API para obter os dados de preço e, em seguida, submeterá os dados na blockchain através do método fulfillOracleRequest. Por fim, os dados serão retornados ao contrato consumidor por meio de uma função de callback.

Para os desenvolvedores, se apenas precisarem usar os preços de pares de moedas existentes, podem utilizar diretamente o Price Feed fornecido pelo Chainlink (ou seja, AggregatorProxy). Cada par de negociação tem um Price Feed separado, que oferece vários métodos de consulta, incluindo obter a precisão do preço, descrição do par de negociação, dados de preço mais recentes, entre outros.

Na maioria dos cenários de aplicação, o contrato pode precisar apenas ler o preço mais recente, ou seja, chamar o método latestRoundData. Normalmente, a precisão do preço dos pares de negociação cotados em USD é unificada em 8 dígitos, o que simplifica o problema de tratamento da precisão de diferentes tokens.

Máquina Oracle详解系列之 Chainlink(上)

LINK2.79%
Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
  • Recompensa
  • 4
  • Repostar
  • Compartilhar
Comentário
0/400
SerumSquirtervip
· 07-23 08:30
Os dados de preços realmente não são baratos
Ver originalResponder0
ShitcoinConnoisseurvip
· 07-21 00:45
link é o meu verdadeiro amor, certo?
Ver originalResponder0
MercilessHalalvip
· 07-21 00:30
link必subir 等着fazer dinheiro
Ver originalResponder0
DeFiDoctorvip
· 07-21 00:27
A ameaça de vírus de dados externos é grande, recomenda-se que os nós façam exames regulares.
Ver originalResponder0
Faça trade de criptomoedas em qualquer lugar e a qualquer hora
qrCode
Escaneie o código para baixar o app da Gate
Comunidade
Português (Brasil)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)