Análise profunda do Chainlink: como a Máquina Oracle conecta Blockchain ao mundo real

robot
Geração de resumo em curso

Máquina Oracle: contratos inteligentes e a ponte para o mundo real

No ecossistema blockchain, a Máquina Oracle desempenha um papel crucial. Ela atua como um sistema middleware, capaz de fornecer informações externas para contratos inteligentes na cadeia, ligando assim o mundo blockchain ao mundo real. A função central da Máquina Oracle é fornecer os dados externos necessários para os 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 em um determinado dia. Como o contrato inteligente em si não pode acessar diretamente esses dados do mundo real fora da cadeia, é necessário recorrer à Máquina Oracle para isso. Nesse caso, 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 de transação for detectado, esse processo fará uma transação na cadeia, chamando os métodos relevantes do contrato, para enviar as informações do volume de transações de petróleo da data especificada para o contrato inteligente.

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

Chainlink: solução de Máquina Oracle mainstream

No atual mercado de blockchain, a Chainlink é o projeto de Máquina Oracle com a maior quota de mercado. Como um sistema de Máquina Oracle descentralizado, a Chainlink visa fornecer dados gerados no mundo real para a blockchain da forma mais segura possível. Com base nos princípios básicos da Máquina Oracle, a Chainlink construiu um ecossistema impulsionado por incentivos econômicos em torno do token LINK.

A ativação da Máquina Oracle Chainlink requer a transferência do token LINK. LINK é um contrato ERC677 na rede Ethereum, e as funções de Máquina Oracle baseadas no token LINK ERC677 pertencem ao modo de solicitação/resposta.

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

mecanismo transferAndCall do token ERC677

A Chainlink, ao projetar a estrutura da Máquina Oracle, considerou primeiro como os usuários pagariam as taxas de serviço à Máquina Oracle. Como o padrão de token ERC20 não atende à demanda de "serviço prestado após o pagamento", a Chainlink propôs o padrão ERC677, adequado para cenários de serviços da Máquina Oracle.

O ERC677 adiciona o método transferAndCall à base do padrão ERC20. Este método combina o pagamento e o pedido de serviço, atendendo às 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.

Vale a pena notar que, antes de solicitar serviços da Máquina Oracle, os usuários precisam primeiro determinar se a Máquina Oracle é confiável, pois a Máquina Oracle precisa cobrar uma taxa antes de fornecer os serviços.

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

processo de solicitação de Máquina Oracle 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 uma série de verificações de segurança. Isso inclui verificar se a transferência é um token LINK, checar se o comprimento dos dados excede o limite, validar se os dados contêm o seletor de função correto, entre outros.

Após a verificação, o contrato de Máquina Oracle gerará um requestId único e armazenará as informações relacionadas ao pedido no mapeamento commitments. Por fim, o contrato emitirá um evento OracleRequest, que conterá os dados detalhados do pedido.

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

mecanismo de resposta de nós off-chain

Depois que o nó off-chain escuta o evento OracleRequest, ele analisará as informações específicas do pedido e obterá os dados necessários através de chamadas API. Em seguida, o nó chamará o método fulfillOracleRequest no contrato Oracle, enviando os dados para a blockchain por meio do envio de uma transação.

Este método realizará uma série de validações, incluindo verificar se o chamador é um nó autorizado, validar a validade do ID da solicitação, entre outras. Após a validação, o contrato registrará a quantidade de tokens que podem ser retirados e removerá o ID da solicitação do mapeamento de compromissos.

Por fim, o contrato chamará a função de callback do contrato solicitante, retornando os dados para o contrato consumidor. Para a Máquina Oracle de preços, isso geralmente envolve a atualização dos dados de preço atuais.

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

Uso Simplificado da Máquina Oracle de Preços

Para os desenvolvedores, se apenas precisarem usar os dados de preços de pares de moedas existentes, sem necessidade de especificar a URL da API, podem usar diretamente o Price Feed fornecido pelo Chainlink. Cada par de negociação tem um Price Feed independente ( também conhecido como Aggregator ), que é, na verdade, um contrato AggregatorProxy.

Estes contratos normalmente oferecem os seguintes principais métodos de consulta:

  • decimals(): retorna o número de casas decimais dos dados de preço
  • description(): Retornar o nome do par de negociação
  • version(): Identificação do tipo de Aggregator apontado pelo Proxy
  • getRoundData(_roundId): Obter dados históricos de preços com base no ID da rodada
  • latestRoundData(): obter os dados de preço mais recentes

Na maioria dos cenários de aplicação, o contrato pode apenas precisar ler o preço mais recente, ou seja, chamar o método latestRoundData(). O parâmetro answer retornado por este método é o preço mais recente.

É importante notar que a maioria das aplicações lê o preço do token em USD. Neste caso, a precisão dos dados de preço é geralmente padronizada para 8 casas decimais, o que simplifica o problema de tratamento de precisão entre diferentes tokens.

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

Ver original
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
  • Recompensa
  • 8
  • Partilhar
Comentar
0/400
Anon32942vip
· 22h atrás
Máquina Oracle este eu entendo! Acumulei um pouco de link
Ver originalResponder0
CrossChainBreathervip
· 23h atrás
Máquina Oracle salvou minha pequena Carteira
Ver originalResponder0
rugdoc.ethvip
· 07-12 12:36
Máquina Oracle também não entendeu bem.
Ver originalResponder0
HackerWhoCaresvip
· 07-12 12:32
link é o futuro, ok
Ver originalResponder0
MetaverseHermitvip
· 07-12 12:23
linkbull哇bull哇
Ver originalResponder0
SchrodingerWalletvip
· 07-12 12:17
Máquina Oracle真香...Token稳了
Ver originalResponder0
GasWastervip
· 07-12 12:14
Mãe, a Máquina Oracle de hoje à noite está realmente deliciosa.
Ver originalResponder0
bridge_anxietyvip
· 07-12 12:07
O resultado é realmente agradável.
Ver originalResponder0
  • Pino
Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)