
Os oráculos de blockchain resolvem o problema de entrega de informações do mundo exterior para o blockchain. Mas é importante sabermos em qual deles podemos confiar.
Em sobre o lançamento do catálogo falamos sobre a importância dos oráculos para o blockchain.
Aplicativos descentralizados não têm acesso a dados fora do blockchain. Por isso, são criados pequenos programas – oráculos – que acessam os dados necessários do mundo exterior e os registram no blockchain.
Por tipo de fonte de dados, os oráculos podem ser divididos em três categorias: programáticos, hardware e humanos.
Oráculos programáticos recebem e processam dados da internet – como temperatura do ar, preços de produtos, atrasos de trens e aviões. As informações vêm de fontes online, como APIs, e o oráculo as extrai e as coloca no blockchain. Saiba como criar um oráculo programático simples .
Oráculos de hardware monitoram objetos do mundo real com dispositivos e sensores. Por exemplo, uma câmera calibrada para cruzar uma linha registra carros que entram em uma área específica. O oráculo registra o fato da linha ter sido cruzada no blockchain, e com base nesses dados, um script do aplicativo descentralizado pode, por exemplo, iniciar a emissão de multas e debitar tokens da conta do proprietário do carro.
Oráculos humanos utilizam dados inseridos por humanos. Eles são considerados os mais progressivos devido à perspectiva independente sobre o resultado do evento.
Recentemente, fornecemos uma ferramenta que permite registrar dados do oráculo no blockchain de acordo com uma especificação definida. Ela funciona de maneira muito simples: basta registrar , preenchendo a especificação. Depois disso, é possível publicar transações de dados de acordo com essa especificação através da interface Waves Oracles. Leia mais sobre a ferramenta em .

Essas ferramentas e interfaces padronizadas facilitam a vida tanto para desenvolvedores quanto para usuários de serviços de blockchain. Nossa ferramenta é útil especificamente para oráculos humanos e pode ser utilizada, por exemplo, para registrar certificados ou direitos autorais sobre determinados objetos.
Mas ao usar oráculos, surge a questão da confiança nas informações obtidas deles. A fonte é confiável? Os dados serão recebidos a tempo? Além disso, há o risco de que o oráculo engane os usuários, fornecendo informações incorretas de forma intencional para obter ganhos pessoais.
Como exemplo, consideremos um oráculo que fornece informações sobre eventos esportivos para uma bolsa de apostas descentralizada.
O evento é a luta principal do torneio UFC 242, Khabib Nurmagomedov contra Dustin Poirier. De acordo com as casas de apostas, Nurmagomedov é o claro favorito para a luta. A aposta em sua vitória poderia ser feita com uma cotação de 1,24, o que corresponde a uma probabilidade de 76%. A cotação para a vitória de Poirier era de 4,26 (22%), enquanto a probabilidade de um empate era avaliada pelas casas de apostas com uma cotação de 51,0 (2%).

O script aceita as apostas dos usuários em todos os três possíveis resultados, até que receba do oráculo a informação sobre o resultado real da luta. Este é o único critério para a distribuição dos ganhos.
Agora se sabe que Nurmagomedov venceu. No entanto, vamos imaginar que um proprietário desonesto de um oráculo, planejando enganar, apostou na saída com a cotação mais vantajosa — o empate. Quando o montante das apostas atingiu um grande volume, o proprietário do oráculo inicia o registro em blockchain de uma informação falsa sobre um suposto resultado de empate da luta. O script da bolsa descentralizada não tem como verificar a veracidade dos dados recebidos e apenas distribui os ganhos de acordo com essas informações.
Se o lucro potencial de uma fraude desse tipo for maior do que a receita projetada de um oráculo honesto, e o risco de ação judicial for baixo, a probabilidade de ações desonestas por parte do proprietário do oráculo aumenta consideravelmente.
Uma das possíveis soluções para o problema é solicitar dados de vários oráculos e trazer os valores obtidos a um consenso. Pode-se destacar vários tipos de consenso:
- todos os oráculos forneceram informações idênticas
- a maioria dos oráculos forneceu informações idênticas (2 de 3, 3 de 4, etc.)
- a média dos dados dos oráculos (podendo haver variantes em que os valores máximo e mínimo sejam descartados previamente)
- todos os oráculos forneceram informações unificadas com uma margem de erro previamente acordada (por exemplo, os valores de cotações financeiras de diferentes fontes podem diferir em 0,00001, e obter uma correspondência exata é uma tarefa impossível)
- selecionar apenas valores únicos dos dados obtidos
Vamos voltar à nossa bolsa descentralizada de apostas. Ao usar o consenso "3 de 4", um oráculo que reportou um empate no resultado de uma luta não conseguiria influenciar a execução do script se três outros oráculos fornecerem informações precisas.
Mas um usuário mal-intencionado pode ter posse de três dos quatro oráculos, e assim ele conseguiria garantir a maioria decisiva.
Na busca pela integridade dos oráculos, poderíamos implementar uma classificação ou um sistema de penalidades por informações imprecisas. Poderíamos também seguir o caminho do "prêmio" e oferecer recompensas pela precisão. Mas nenhuma medida poderá eliminar completamente, por exemplo, a manipulação de classificações ou uma maioria desonesta.
Vale a pena inventar serviços complexos, ou será que basta ter uma ferramenta de consenso que permita, como em uma prateleira de supermercado, escolher, por exemplo, cinco oráculos que fornecem os dados necessários, definir o tipo de consenso e obter um resultado?
Por exemplo, um aplicativo descentralizado precisa de dados de temperatura em graus Celsius. No catálogo de oráculos, encontramos quatro oráculos que fornecem esses dados, definimos o tipo de consenso como "média" e fazemos a solicitação.
Suponha que os oráculos forneçam os valores: 18, 17, 19 e 21 graus. A diferença de três graus pode ser bastante crítica para a execução do script. O serviço processa o resultado e obtém a média da temperatura — 18,75 graus. Esse número será recebido pelo script do aplicativo descentralizado e será utilizado.

Em última análise, a decisão cabe ao consumidor: confiar em um oráculo e usar seus dados, ou construir um consenso de vários oráculos escolhidos conforme sua preferência.
De qualquer forma, os oráculos de dados são um campo bastante novo. Eles estão em um estágio onde os próprios usuários podem determinar para onde devem evoluir. Por isso, queremos ouvir sua opinião. É necessário o instrumento descrito acima para oráculos? Como você vê o futuro dos oráculos de dados em geral? Compartilhe sua opinião nos comentários e em nosso grupo oficial em .
Fonte: habr.com
