Riise do oráculo

imagem

Os oráculos da Blockchain resolvem a questão de fornecer dados externos para a blockchain - mas ainda precisamos saber em quais deles podemos confiar.

Em nosso artigo sobre o lançamento do diretório Waves Oracles , discutimos a importância dos oráculos para o blockchain. Aplicativos descentralizados não podem acessar dados fora do blockchain. Esse problema é resolvido usando oráculos.

A questão em jogo é bastante direta. Se a execução de um dApp exigir dados externos, ele deverá ser armazenado na blockchain. Para isso, são criados pequenos programas chamados oráculos, que acessam dados relevantes do mundo exterior e os registram no blockchain.

Pelo tipo de fonte de dados externa, todos os oráculos poderiam ser divididos em três categorias: oráculos de software, oráculos de hardware e oráculos humanos.

Os oráculos de software obtêm dados da Internet, como temperatura, preços de bens e serviços ou atrasos nos vôos e trens. As informações são provenientes de fontes online, como APIs. Um oráculo extrai dados relevantes e os registra no blockchain. Você pode aprender como fazer um simples oráculo de software aqui .

Oráculos de hardware rastreiam objetos do mundo real usando dispositivos e sensores. Por exemplo, uma câmera de vídeo calibrada para cruzar linhas rastreia veículos que entram em uma determinada área. Um oracle registra o fato de entrar na área para o blockchain. Com base nos dados desse oráculo, o script de um dApp pode, por exemplo, emitir um ticket e deduzir tokens da conta do proprietário do veículo.

Oráculos humanos operam com dados inseridos por seres humanos e são considerados mais avançados porque oferecem uma visão independente do resultado de um evento.
Recentemente, introduzimos uma ferramenta que permite gravar dados no blockchain sob uma especificação definida.

A ferramenta é muito simples. Você registra um cartão oracle preenchendo a especificação e pode registrar transações de dados no blockchain sob essa especificação. Leia mais sobre a ferramenta em nossa documentação .

imagem

Ferramentas e interfaces padronizadas desse tipo facilitam a vida de desenvolvedores e usuários de serviços baseados em blockchain. Essa ferramenta é especialmente útil para oráculos humanos em áreas como registro de certificados ou direitos de autor para alguns objetos.

No entanto, os dados fornecidos pelos oráculos devem ser confiáveis. Usar apenas um oráculo pode causar problemas. É vital saber se você pode confiar na fonte e se os dados estão atualizados. Caso contrário, existe o risco de um oráculo enganar os usuários, fornecendo deliberadamente informações falsas para obter lucro.

Vamos considerar o exemplo de um oráculo que fornece informações do resultado de um evento esportivo para um mercado de previsão descentralizado.

O evento em questão é uma luta do UFC 242 entre Khabib Nurmagomedov e Dustin Poirier. Segundo as casas de apostas, Nurmagomedov era o favorito com chances de 1,24, correspondendo a uma probabilidade de 76% de vitória. Poirier recebeu odds de 4,26 (22%). As chances de empate foram de 51,0 (2%).

imagem

Um script aceita apostas nos três resultados até receber informações sobre o resultado real de um oráculo. Essa informação é o único gatilho para distribuir os ganhos.

Sabemos que Nurmagomedov venceu a luta. Mas vamos supor que um dono de oráculo desonesto planejou uma fraude e fez uma aposta substancial no resultado mais lucrativo, um empate. Depois que uma grande soma de apostas é acumulada, o proprietário desonesto da Oracle inicia o registro de informações falsas sobre um empate na blockchain. O script da troca descentralizada não consegue verificar a precisão dos dados e só pode aceitá-los. Posteriormente, o script distribui os ganhos entre os apostadores de acordo com os dados de resultado que recebeu.

Fraudes desse tipo poderiam ser altamente lucrativas para um criador de oráculos desonesto. Se o lucro previsto for maior que a receita prevista de um oráculo honesto e o risco de consequências legais for baixo, a chance de fraude poderá aumentar substancialmente.

Uma maneira de resolver isso é solicitando dados de vários oráculos e estabelecendo consenso sobre os resultados recebidos.

Pode haver vários tipos de consenso:

  • Todos os oráculos forneceram a mesma informação.
  • A maioria dos oráculos forneceu as mesmas informações (2 em 3, 3 em 4, etc.).
  • A mediana dos dados dos oráculos é calculada (os resultados máximos e mínimos podem ser descartados antes do cálculo da mediana).
  • Todos os oráculos forneceram as mesmas informações dentro de um desvio previamente acordado. Por exemplo, as taxas de câmbio de diferentes fontes podem diferir em 0,00001, e obter exatamente os mesmos dados seria impossível.
  • Somente resultados exclusivos são selecionados.

Vamos aplicar isso ao nosso exemplo. Se um tipo de consenso '3 em 4' for usado, informações falsas sobre resultados do Nurmagomedov vs. A luta de Poirier de um oráculo não teria impacto na execução do script. Seria executado com base em informações sobre a vitória de Nurmagomedov, com os ganhos distribuídos com base nesses dados.
No entanto, se uma pessoa desonesta possuísse 3 de 4 oráculos, ainda seria possível manipular os dados do resultado.

Para manter a integridade dos oráculos, vários conceitos para classificações ou multas por fornecer informações falsas, bem como incentivos para fornecer informações precisas, poderiam ser introduzidos. Mas nenhum deles estaria protegido contra aparelhamento de classificação ou maioria desonesta.

Então, realmente precisamos de conceitos mais complicados ou seria melhor simplesmente ter uma ferramenta de consenso que nos permita pegar cinco oráculos que fornecem dados relevantes - como se estivessem na prateleira de um supermercado - definissem o tipo de consenso e obtivessem um resultado?

Por exemplo, um aplicativo descentralizado precisa de dados de temperatura Celsius. Vamos encontrar quatro oráculos fornecendo esses dados no diretório oracle, definir o tipo de consenso como "mediana" e fazer uma solicitação.

Os oráculos fornecem valores de 18, 17, 19 e 21 graus. Há uma aparente discrepância nos dados e uma diferença de três graus pode ter um impacto na execução do script. O serviço processa os dados recebidos e obtém uma mediana de 18,75 graus, que é enviada ao script do dApp.

imagem

De qualquer forma, a decisão de confiar nos dados de um único oráculo ou construir um consenso a partir de vários oráculos depende do usuário.

No geral, os oráculos de dados são um novo campo. Atualmente, está em um estágio em que os usuários podem ter um impacto na direção em que serão desenvolvidos. Gostaríamos, portanto, de ouvir você. Diga-nos se você acha que uma ferramenta de consenso descrita acima é necessária e compartilhe suas idéias sobre as direções nas quais o campo do oráculo evolui.

Envie seus comentários nos comentários e em nosso grupo oficial de Telegram .

Source: https://habr.com/ru/post/pt471962/


All Articles