Por definição, a blockchain é um sistema altamente fechado. Os nós validam transações e dados em blocos por meio de mecanismos de consenso. Qualquer informação registrada na blockchain precisa ser verificada de forma independente pelos nós da rede. Essa estrutura garante a segurança e a consistência do sistema, mas também significa que a blockchain não pode acessar redes externas de maneira proativa.
Do ponto de vista técnico, contratos inteligentes funcionam em um ambiente de máquina virtual e só conseguem ler dados já existentes na cadeia, como saldos de contas, registros de transações ou o estado de outros contratos. Qualquer informação vinda da internet ou do mundo real, caso não esteja registrada na blockchain, não pode ser acessada diretamente pelos contratos inteligentes.
Essa arquitetura é, na verdade, uma escolha de segurança. Se a blockchain permitisse que contratos inteligentes acessassem livremente fontes de dados externas, os nós não conseguiriam verificar a autenticidade dessas informações, fazendo com que o mecanismo de consenso perdesse sua finalidade. Por isso, a blockchain opta por se limitar a um ambiente de dados verificáveis, porém fechado.
Em outras palavras, a blockchain pode garantir a confiabilidade dos dados registrados em cadeia, mas não assegura que informações do mundo real entrem automaticamente na cadeia. Esse é o primeiro dilema de dados que a blockchain enfrenta na camada de aplicação.
Quando desenvolvedores começam a construir aplicações on-chain, os problemas dessa estrutura fechada tornam-se evidentes. Muitas aplicações financeiras exigem dados em tempo real como gatilhos, como preços de ativos, taxas de juros ou índices de mercado. No entanto, contratos inteligentes não podem requisitar informações de servidores externos via APIs como fazem aplicações tradicionais.
Essa limitação traz diversos desafios principais:
Protocolos de negociação descentralizada ou plataformas de empréstimo precisam de preços em tempo real para determinar condições de liquidação, mas a própria blockchain não armazena preços de mercado externos.
Protocolos de seguros podem precisar determinar se um voo atrasou ou se as condições climáticas atendem a determinados critérios—essas informações existem em sistemas de dados do mundo real.
Alguns produtos financeiros necessitam de execução baseada em horários específicos ou condições de mercado, mas os nós da blockchain não monitoram proativamente alterações do mundo real.
Portanto, sem um mecanismo que traga dados externos para a cadeia de forma segura, muitas aplicações Web3 não conseguem operar normalmente. Cenários inovadores, como DeFi, mercados de previsão e seguros on-chain, tornam-se difíceis de implementar.
Os oracles foram criados justamente para resolver esse problema como infraestrutura essencial. A principal função de um oracle é trazer dados off-chain para a cadeia e fornecê-los aos contratos inteligentes de forma verificável e utilizável pela blockchain.
Sistemas de oracle normalmente desempenham funções essenciais:
No ecossistema Web3, os oracles já são infraestrutura crítica. Por exemplo, protocolos de empréstimo dependem de oracles de preço para acionar liquidações; protocolos de derivativos precisam de preços em tempo real para calcular retornos; sistemas de stablecoin exigem oracles para monitorar o valor de ativos colateralizados.
Pode-se dizer que os oracles abrem uma janela de dados para a blockchain. Eles permitem que o ambiente fechado on-chain interaja com o mundo real, transformando a blockchain de um simples sistema de registro de transações em uma plataforma capaz de executar atividades econômicas complexas.