Os oráculos da Blockchain resolvem o problema de fornecer informações do mundo exterior para a blockchain. Mas é importante sabermos em quem podemos confiar. No
artigo sobre o lançamento do catálogo
Waves Oracles , escrevemos sobre a importância dos oráculos para o blockchain.
Aplicativos descentralizados não têm acesso a dados fora do blockchain. Portanto, pequenos programas são criados - oráculos - que obtêm acesso aos dados necessários do mundo exterior e os gravam no blockchain.
Por tipo de fonte de dados, os oráculos podem ser divididos em três categorias: software, hardware e humano.
Os oráculos de software recebem e processam dados da Internet - como temperatura do ar, preços de commodities, atrasos de trens e aeronaves. As informações vêm de fontes online, como uma API, e o oracle as extrai e as coloca na blockchain. Leia
aqui como fazer um simples oráculo de software.
Oráculos de hardware rastreiam objetos do mundo real com dispositivos e sensores. Por exemplo, uma câmera de vídeo calibrada no cruzamento de uma linha captura carros entrando em uma área específica. O oracle registra o fato do cruzamento de linha no blockchain e, com base nesses dados, o script do aplicativo descentralizado pode, por exemplo, iniciar uma multa e descartar tokens da conta do proprietário do carro.
Oráculos humanos usam dados inseridos por humanos. Eles são considerados os mais progressivos devido a uma visão independente do resultado do evento.
Recentemente, fornecemos uma ferramenta que permite gravar dados do oracle em uma blockchain de acordo com uma determinada especificação. Funciona de maneira extremamente simples: você só precisa registrar o
cartão oracle preenchendo as especificações. Depois disso, você pode publicar transações de dados de acordo com esta especificação através da interface Waves Oracles. Leia mais sobre a ferramenta em
nossa documentação .

Essas ferramentas e interfaces padronizadas simplificam a vida dos desenvolvedores e usuários dos serviços na blockchain. Nossa ferramenta é útil especificamente para oráculos humanos e pode ser usada, por exemplo, para registrar certificados ou direitos autorais em qualquer objeto.
Porém, ao usar oráculos, surge a questão da confiança nas informações recebidas deles. A fonte é confiável? Os dados serão recebidos no prazo? Além disso, existe o risco de o oráculo enganar os usuários ao fornecer intencionalmente informações incorretas para obter seu próprio benefício.
Como exemplo, considere um oráculo que fornece informações sobre eventos esportivos para uma troca de apostas descentralizada.
O evento é a principal batalha do torneio UFC 242, Khabib Nurmagomedov contra Dustin Porrier. Segundo as casas de apostas, Nurmagomedov é um favorito claro da partida. Foi possível apostar em sua vitória com um coeficiente de 1,24, o que corresponde a uma probabilidade de 76%. As chances de vitória de Porrier foram de 4,26 (22%), e a probabilidade de um resultado do sorteio foi estimada pelas casas de apostas por um coeficiente de 51,0 (2%).

O script aceita apostas dos usuários nos três resultados possíveis até receber informações do oráculo sobre o resultado real da batalha. Este é o único critério para a distribuição dos ganhos.
Sabe-se agora que Nurmagomedov venceu. No entanto, imagine que o dono inescrupuloso do oráculo, planejando a fraude com antecedência, apostou no resultado com as probabilidades mais favoráveis - um empate. Quando o banco de apostas atinge um grande volume, o proprietário do oráculo inicia a gravação no blockchain de informações falsas sobre o suposto resultado da batalha. O script de uma troca descentralizada não tem a capacidade de verificar novamente a precisão dos dados recebidos e apenas distribui os ganhos de acordo com esses dados.
Se o lucro potencial desse tipo de fraude for maior que a receita prevista de um oráculo honesto, enquanto o risco de ir a tribunal for baixo, a probabilidade de ações desonestas do proprietário do oráculo aumenta significativamente.
Uma das soluções possíveis para o problema é solicitar dados de vários oráculos e levar os valores obtidos ao consenso. Vários tipos de consenso podem ser distinguidos:
- todos os oráculos forneceram informações uniformes
- a maioria dos oráculos fornece informações unificadas (2 de 3, 3 de 4, etc.)
- redução dos dados dos oráculos ao valor médio (são possíveis opções nas quais os valores máximo e mínimo são descartados anteriormente)
- todos os oráculos forneceram informações unificadas com um desvio permitido predeterminado (por exemplo, os valores de cotações financeiras de diferentes fontes podem diferir de 0,00001 e obter uma correspondência exata é uma tarefa impossível)
- selecione apenas valores exclusivos dos dados recebidos
Voltar à nossa troca de apostas descentralizada. Usando o consenso “3 de 4”, um oráculo que relatou um empate não foi capaz de influenciar a execução do script, desde que os outros três oráculos forneçam informações confiáveis.
Mas um usuário sem escrúpulos pode possuir três dos quatro oráculos e, em seguida, pode fornecer uma maioria decisiva.
Lutando pela honestidade dos oráculos, você pode inserir uma classificação para eles ou um sistema de multas por imprecisão dos dados. Você pode seguir o caminho da "cenoura" e oferecer uma recompensa pela confiabilidade. Mas nenhuma medida evitará completamente, por exemplo, um aumento de classificação ou uma maioria injusta.
Então vale a pena inventar serviços complexos ou basta ter uma ferramenta de consenso que permita, como em uma prateleira de supermercado, escolher, por exemplo, cinco oráculos que forneçam os dados necessários, definir o tipo de consenso e obter o resultado?
Por exemplo, um aplicativo descentralizado precisa de dados de temperatura em graus Celsius. No catálogo da Oracle, encontramos quatro oráculos que fornecem esses dados, definem o tipo de consenso como "valor médio" e fazem uma solicitação.
Suponha que os oráculos tenham dado valores: 18, 17, 19 e 21 graus. A diferença de três graus pode ser bastante crítica para o script. O serviço processa o resultado e recebe um valor médio de temperatura de 18,75 graus. O script do aplicativo descentralizado receberá esse número e funcionará com ele.

Por fim, a decisão permanece com o consumidor: confiar em um oráculo e usar seus dados ou construir um consenso de vários oráculos escolhidos a seu critério.
De qualquer forma, os oráculos de dados são uma área relativamente nova. É em um estágio em que os próprios usuários podem determinar em qual direção ele deve se desenvolver. Portanto, queremos ouvir sua opinião. A ferramenta acima precisa de oráculos? Como você vê o futuro dos oráculos de dados em princípio? Compartilhe sua opinião nos comentários e em nosso grupo oficial de
Telegram .