Por definição, a blockchain é um sistema altamente fechado. Os nós validam transações e dados nos blocos através de mecanismos de consenso. Todas as informações registadas na blockchain têm de ser verificadas de forma independente pelos nós da rede. Esta estrutura assegura a segurança e a consistência do sistema, mas também significa que a blockchain não pode aceder proativamente a redes externas.
Do ponto de vista técnico, os contratos inteligentes funcionam num ambiente de máquina virtual e apenas conseguem ler dados já existentes na cadeia, como saldos de contas, registos de transações ou o estado de outros contratos. Qualquer dado proveniente da internet ou do mundo real, se não for registado na blockchain, não pode ser acedido diretamente pelos contratos inteligentes.
Esta arquitetura é, na verdade, uma escolha de segurança. Se a blockchain permitisse que os contratos inteligentes acedessem livremente a fontes de dados externas, os nós não conseguiriam verificar a autenticidade desses dados e o mecanismo de consenso do sistema perderia o seu propósito. Por isso, a blockchain opta por limitar-se a um ambiente de dados verificável, mas fechado.
Ou seja, a blockchain garante a fiabilidade dos dados em cadeia, mas não consegue assegurar que os dados do mundo real entrem automaticamente na cadeia. Este é o primeiro grande dilema de dados que a blockchain enfrenta na camada de aplicação.
Quando os programadores iniciam o desenvolvimento de aplicações on-chain, os problemas desta estrutura fechada tornam-se evidentes. Muitas aplicações financeiras exigem dados em tempo real como gatilhos, como preços de ativos, taxas de juro ou índices de mercado. Contudo, os contratos inteligentes não conseguem aceder a servidores externos para obter informações via API, como acontece nas aplicações tradicionais.
Esta limitação cria vários desafios fundamentais:
Protocolos de negociação descentralizada ou plataformas de empréstimo necessitam de preços em tempo real para determinar condições de liquidação, mas a blockchain não armazena preços de mercado externos.
Protocolos de seguros podem precisar de determinar se um voo está atrasado ou se as condições meteorológicas cumprem determinados critérios — informações que existem em sistemas de dados do mundo real.
Alguns produtos financeiros precisam de ser executados em momentos específicos ou de acordo com condições de mercado, mas os nós da blockchain não monitorizam de forma proativa alterações do mundo real.
Assim, sem um mecanismo que permita trazer dados externos para a cadeia de forma segura, muitas aplicações Web3 não conseguem funcionar normalmente. Cenários inovadores como DeFi, mercados de previsões e seguros on-chain tornam-se difíceis de concretizar.
Os oracles surgiram precisamente para resolver este problema como infraestrutura fundamental. 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.
Os sistemas de oracles habitualmente desempenham várias funções essenciais:
No ecossistema Web3, os oracles já são uma infraestrutura crítica. Por exemplo, protocolos de empréstimo dependem de oracles de preços para acionar liquidações; protocolos de derivados necessitam de preços em tempo real para calcular retornos; sistemas de stablecoin exigem oracles para monitorizar o valor dos ativos de colateral.
Em suma, os oracles abrem uma janela de dados para a blockchain. Permitem que o ambiente fechado on-chain interaja com o mundo real, transformando a blockchain de um simples sistema de registo de transações numa plataforma capaz de suportar atividades económicas complexas.