Blockchain Oracles: Vinculando informações de terceiros fora da cadeia com smart contracts
Existem muitos projetos no espaço blockchain que exigem interação constante com fontes de informações externas. Para realizar a transmissão de informações entre diferentes partes, são necessários oracles. Simplificando, os oracles são serviços de terceiros que fornecem smart contracts com informações externas. Por exemplo, produtos físicos que poderiam ser conectados à Internet como um carro, uma casa, uma bicicleta alugada, etc. exigiriam o envio de informações para um smart contract em um blockchain específico. Digamos, por exemplo, que você tenha um contrato de aluguel de um automóvel e deseja conectar os pagamentos do contrato a um smart contract que implante seu histórico de pagamentos em um blockchain. Basta pensar na Internet das Coisas (IOT) e na tecnologia blockchain e você pode facilmente imaginar muitas situações em que os oracles poderiam ser usados ao alugar ou pagar pelo uso de vários dispositivos.
Amplie a ideia para APIs e você poderá ter muitos outros casos de uso para oracles. Por exemplo, diferentes partes podem concordar com o resultado de um evento futuro com as condições bloqueadas em um smart contract. Para executar o smart contract, será necessário usar uma API de terceiros. As informações da API não estão on-chain, portanto, será necessário um oracle para coletar essas informações e fornecer o resultado para que o smart contract possa ser executado.
Como você provavelmente pode inferir pelos exemplos acima, os oracles têm a capacidade de expandir exponencialmente os casos de uso da tecnologia blockchain. Sem a possibilidade de trocar informações além das estruturas em cadeia, as possibilidades de smart contracts seriam limitadas. Agora, quais são os oracles típicos?
1 – Trust Oracles: As informações são centralizadas ou descentralizadas?
2 – Source Oracles: As informações são originárias de hardware ou software?
3 – Direction of Information Oracles: As informações são recebidas ou enviadas?
Hardware & Software Oracles
Como os exemplos acima, alguns smart contracts podem exigir informações de fontes externas de hardware e software. Por exemplo, um processo da cadeia de suprimentos exigiria uma embalagem com um sensor (hardware) para alcançar um destino específico e enviar esse evento para um blockchain. Você também pode requerer que os smart contracts interajam com informações em um banco de dados centralizado (fora da cadeia). Todos esses são exemplos de diferentes tipos de oracles.
Centralized & Decentralized Oracles
Os smart contracts exigirão, em muitas situações, a interação com as informações fornecidas por um hub de dados centralizado. Blockchains privados poderiam interagir diretamente com smart contracts por meio da interoperabilidade e pontes, mas muitas empresas que usam estruturas de dados herdadas exigiriam um oracle para interagir com seus bancos de dados e APIs. Uma empresa que usa um banco de dados legado seria um exemplo de como os oracles centralizados seriam necessários para colocar essas informações em cadeia quando necessário. Blockchains públicos descentralizados têm diferentes empresas que fornecem serviços oracle.
Inbound & Outbound Oracles
Os inbound oracles transmitem informações de terceiros para um smart contract, enquanto os outbound oracles transmitem informações de um smart contract para terceiros. Usando o nosso exemplo no início deste post, você pode definir um endereço de pagamento em um blockchain para a locação de um automóvel. O smart contract verifica o cronograma de pagamento e desbloqueia o motor do automóvel, se não houver atrasos significativos (outbound oracle). Por outro lado, você pode exigir que um sensor ou dispositivo envie informações específicas para um blockchain para acionar um smart contract (inbound oracle).
Para executar adequadamente, os smart contracts precisam contar com as informações fornecidas pelos oracles, portanto, o nível de segurança de cada oracle é de suma importância. Se um oracle puder ser facilmente invadido ou comprometido, todos os smart contracts que interagem com ele estariam lidando com informações corrompidas. Isso é conhecido como Oracle problem e é um dos desafios de muitas das empresas no espaço de blockchain.
Como o IOV Labs está contribuindo para Oracles?
O RIF Gateways fornece um conjunto de protocolos de interoperabilidade projetados para permitir interações seguras e à prova de violações com o mundo externo. Ele propõe uma camada de interface que unifica o acesso a serviços oracle e integrações entre cadeias, fornecendo aos blockchains um protocolo independente de implementação para consumo interno e externo de dados. Foi desenvolvido para criar pontes entre cadeias de blocos e permitir que fornecedores e consumidores de dados se envolvam facilmente em transferências de dados seguras e padronizadas, suportando uma ampla variedade de modelos de consumo de dados, assinatura e pagamentos. Para informações adicionais, convidamos você a visitar o Informe e ficar atento, pois teremos notícias instigantes em um futuro próximo.