Guia Sobre os Or√°culos Blockchain
P√°gina Inicial
Artigos
Guia Sobre os Or√°culos Blockchain

Guia Sobre os Or√°culos Blockchain

Intermedi√°rio
Publicado em Jan 22, 2020Atualizado em Nov 28, 2023
7m
Conte√ļdo enviado pela comunidade - Autor: Vallery Mou


Conte√ļdo


O que é um oráculo blockchain?

Or√°culos blockchain s√£o servi√ßos de terceiros que fornecem informa√ß√Ķes externas aos contratos inteligentes. Eles atuam como pontes entre as blockchains e o mundo exterior.
Blockchains e contratos inteligentes n√£o podem acessar dados off-chain (dados que est√£o fora da rede). No entanto, para muitos acordos contratuais, √© fundamental ter informa√ß√Ķes relevantes do mundo exterior para a execu√ß√£o do acordo.

√Č aqui que os or√°culos blockchain entram em cena, pois fornecem uma conex√£o entre dados off-chain e on-chain. Os or√°culos s√£o vitais no ecossistema blockchain porque ampliam o escopo no qual os contratos inteligentes podem operar. Sem or√°culos de blockchain, os contratos inteligentes teriam um uso muito limitado, pois teriam acesso apenas aos dados de dentro de suas redes.¬†

√Č importante observar que um or√°culo blockchain n√£o √© a fonte de dados em si, mas a camada que consulta, verifica e autentica fontes de dados externas e retransmite essas informa√ß√Ķes. Os dados transmitidos pelos or√°culos podem ter v√°rias formas ‚Äď informa√ß√Ķes sobre pre√ßos, conclus√£o bem-sucedida de um pagamento ou medi√ß√£o de temperatura por um sensor.¬†

Para obter dados do mundo exterior, o contrato inteligente precisa ser solicitado e os recursos da rede precisam ser gastos. Alguns or√°culos tamb√©m t√™m a capacidade de n√£o apenas transmitir informa√ß√Ķes a contratos inteligentes, mas envi√°-las de volta √†s fontes externas.

Existem diversos tipos de or√°culos ‚Äď a maneira como um or√°culo blockchain opera √© totalmente dependente do seu objetivo. Este artigo ir√° analisar alguns desses projetos.


Exemplo de or√°culo blockchain

Suponha que Alice e Bob fa√ßam uma aposta sobre quem ser√° o vencedor das elei√ß√Ķes presidenciais nos EUA. Alice acredita que o candidato republicano vencer√°, enquanto Bob acredita que o democrata ser√° eleito. Eles concordam com os termos da aposta e bloqueiam seus fundos em um contrato inteligente, que ir√° liberar todos os fundos ao vencedor com base nos resultados da elei√ß√£o.

Como o contrato inteligente n√£o pode interagir com dados externos, ele depende de um or√°culo para fornecer as informa√ß√Ķes necess√°rias ‚Äď nesse caso, os resultados das elei√ß√Ķes presidenciais. Depois que as elei√ß√Ķes terminam, o or√°culo consulta uma API confi√°vel para descobrir qual candidato ganhou e retransmite essas informa√ß√Ķes ao contrato inteligente. O contrato envia os fundos para Alice ou Bob, dependendo do resultado.

Sem a retransmissão de dados do oráculo, não seria possível liquidar essa aposta de forma que nenhum participante pudesse trapacear. 


Quais os diferentes tipos de or√°culo blockchain?

Oráculos blockchain podem ser classificados dependendo de uma série de características: 

  • Fonte ‚Äď os dados s√£o origin√°rios de software ou hardware?
  • Dire√ß√£o das informa√ß√Ķes ‚Äď s√£o de entrada (inbound) ou sa√≠da (outbound)?
  • Confian√ßa ‚Äď √© centralizado ou descentralizado?

Um √ļnico or√°culo pode se enquadrar em v√°rias categorias. Por exemplo, um or√°culo que obt√©m informa√ß√Ķes de um site da empresa √© um or√°culo de tipo software, de entrada e centralizado.


Or√°culos de tipo software

Or√°culos de software interagem com fontes de informa√ß√£o online e as transmitem √† blockchain. Essas informa√ß√Ķes podem vir de bancos de dados online, servidores, sites ‚Äď essencialmente, qualquer fonte de dados da Web.

O fato de os or√°culos de software estarem conectados √† Internet n√£o apenas lhes permite fornecer informa√ß√Ķes a contratos inteligentes, mas tamb√©m transmitir essas informa√ß√Ķes em tempo real. Isso faz com que o or√°culo de software seja um dos tipos mais comuns de or√°culos blockchain.¬†

As informa√ß√Ķes fornecidas pelos or√°culos de software geralmente incluem taxas de c√Ęmbio, pre√ßos de ativos digitais ou informa√ß√Ķes de voos em tempo real.


Or√°culos de tipo hardware

Alguns contratos inteligentes precisam interagir com o mundo real. Os or√°culos de hardware s√£o projetados para obter informa√ß√Ķes do mundo f√≠sico e disponibiliz√°-las aos contratos inteligentes. Essas informa√ß√Ķes podem ser transmitidas a partir de sensores eletr√īnicos, scanners de c√≥digo de barras e outros dispositivos de leitura de informa√ß√Ķes.

Um or√°culo de hardware essencialmente ‚Äútraduz‚ÄĚ eventos do mundo real em valores digitais que podem ser interpretados por contratos inteligentes.

Um exemplo disso pode ser um sensor que verifica se um caminh√£o de transporte de mercadorias chegou ao local de carregamento. Em caso afirmativo, ele transmite as informa√ß√Ķes para um contrato inteligente que pode executar decis√Ķes com base nas informa√ß√Ķes enviadas.

Se quiser ler mais sobre assuntos relacionados, confira o artigo Casos de uso Blockchain: Cadeia de Suprimentos.


Oráculos de entrada e saída (inbound/outbound)

Or√°culos de entrada (inbound) transmitem informa√ß√Ķes de fontes externas aos contratos inteligentes, enquanto or√°culos de sa√≠da (outbound) enviam informa√ß√Ķes de contratos inteligentes para o mundo externo.¬†

Um exemplo de um or√°culo de entrada seria um que diz ao contrato inteligente qual √© a temperatura medida por um sensor. O mecanismo de smart lock (bloqueio inteligente) pode ser considerado um exemplo de or√°culo de sa√≠da. Se fundos forem depositados em um endere√ßo, o contrato inteligente envia essas informa√ß√Ķes atrav√©s de um or√°culo de sa√≠da para um mecanismo que executa o desbloqueio do smart lock.


Or√°culos centralizados e descentralizados

Um or√°culo centralizado √© controlado por uma √ļnica entidade e √© o √ļnico fornecedor de informa√ß√Ķes para o contrato inteligente. O uso de apenas uma fonte de informa√ß√£o pode ser arriscado ‚Äď a efic√°cia do contrato depende inteiramente da entidade que controla o or√°culo. Al√©m disso, qualquer interfer√™ncia de um agente malicioso ter√° impacto direto sobre o contrato inteligente. O principal problema com or√°culos centralizados √© a exist√™ncia de um ponto √ļnico de falha, o que torna os contratos menos resistentes a ataques.

Or√°culos descentralizados compartilham alguns dos mesmos objetivos de blockchains p√ļblicas ‚Äď evitando o risco da contraparte. Como n√£o confiam em uma √ļnica fonte, eles aumentam a confiabilidade das informa√ß√Ķes fornecidas aos contratos inteligentes. O contrato inteligente consulta v√°rios or√°culos para determinar a validade e a precis√£o dos dados ‚Äď √© por isso que or√°culos descentralizados tamb√©m podem ser chamados de or√°culos de consenso.

Alguns projetos de blockchain fornecem servi√ßos de or√°culo descentralizado para outras blockchains. Or√°culos descentralizados tamb√©m podem ser √ļteis na previs√£o de mercados, onde a validade de um determinado resultado pode ser verificada por consenso social.

Os oráculos descentralizados têm como objetivo alcançar a característica de trustlessness (quando não há necessidade de confiança), mas é importante observar que, assim como as redes blockchain, oráculos descentralizados não eliminam completamente a necessidade de confiança, e sim a distribui entre muitos participantes.


Oráculos específicos de contrato

Um or√°culo espec√≠fico de contrato √© aquele projetado para uso de um √ļnico contrato inteligente. Isso significa que se algu√©m deseja implementar v√°rios contratos inteligentes, ser√° necess√°rio o desenvolvimento de um n√ļmero correspondente de or√°culos espec√≠ficos de contrato.

Esse tipo de oráculo requer muito tempo e tem alto custo de manutenção. As empresas que desejam extrair dados de várias fontes podem considerar essa abordagem impraticável. Por outro lado, como oráculos específicos de contrato podem ser projetados do zero para atender casos de uso específicos, os desenvolvedores têm alta flexibilidade para adaptá-los de acordo com as necessidades de cada projeto.


Or√°culos humanos

√Äs vezes, indiv√≠duos com conhecimento especializado em um campo espec√≠fico tamb√©m podem servir como or√°culos. Eles podem pesquisar e verificar a autenticidade de informa√ß√Ķes de v√°rias fontes e traduzir essas informa√ß√Ķes em contratos inteligentes. Como os or√°culos humanos podem verificar sua identidade usando criptografia, a possibilidade de um usu√°rio falsificar sua identidade e fornecer dados corrompidos √© relativamente baixa.


O Problema do Or√°culo

Como os contratos inteligentes executam decis√Ķes com base nos dados fornecidos pelos or√°culos, eles s√£o essenciais para um ecossistema blockchain saud√°vel. O principal desafio ao projetar or√°culos √© que, se um or√°culo for comprometido, o contrato inteligente que depende dele tamb√©m estar√° comprometido. Isso √© conhecido como O Problema do Or√°culo.¬†

Como os or√°culos n√£o fazem parte do consenso principal da blockchain, infelizmente n√£o fazem parte dos mecanismos de seguran√ßa que as blockchains p√ļblicas podem oferecer. O conflito de confian√ßa entre or√°culos de terceiros e a execu√ß√£o sem necessidade de confian√ßa de contratos inteligentes continua sendo uma quest√£o n√£o resolvida.

Os ataques do tipo "man-in-the-middle" também podem ser uma ameaça, onde um agente mal-intencionado obtém acesso ao fluxo de dados entre os oráculos e o contrato, podendo modificá-los ou falsificá-los.  


Considera√ß√Ķes finais

Um mecanismo confi√°vel que facilita a comunica√ß√£o entre contratos inteligentes e o mundo externo √© vital para a ado√ß√£o global de blockchains. Sem os or√°culos blockchain, os contratos inteligentes dependeriam apenas de informa√ß√Ķes j√° existentes em suas redes, o que limitaria suas capacidades consideravelmente.

Oráculos descentralizados têm o potencial de introduzir mecanismos de segurança que podem eliminar muitos riscos sistêmicos do ecossistema blockchain. Os oráculos blockchain continuam sendo um dos componentes críticos a serem implementados de maneira segura, confiável e sem necessidade de confiança para o crescimento geral do ecossistema blockchain.