Les oracles viennent à la rescousse

image

Les oracles de la blockchain résolvent le problème de la fourniture d'informations du monde extérieur à la blockchain. Mais il est important pour nous de savoir à qui nous pouvons faire confiance.

Dans l' article sur le lancement du catalogue Waves Oracles , nous avons écrit sur l'importance des oracles pour la blockchain.

Les applications décentralisées n'ont pas accès aux données en dehors de la blockchain. Par conséquent, de petits programmes sont créés - des oracles - qui accèdent aux données nécessaires du monde extérieur et les écrivent dans la blockchain.

Par type de source de données, les oracles peuvent être divisés en trois catégories: logiciels, matériels et humains.

Les logiciels oracles reçoivent et traitent les données d'Internet, telles que la température de l'air, les prix des produits de base, les retards des trains et des avions. Les informations proviennent de sources en ligne, telles qu'une API, et l'oracle les extrait et les place dans la blockchain. Lisez ici comment créer un oracle logiciel simple.

Les oracles matériels suivent des objets du monde réel avec des appareils et des capteurs. Par exemple, un caméscope calibré à l'intersection d'une ligne capture des voitures entrant dans une zone spécifique. L'oracle corrige le fait du franchissement de ligne dans la blockchain, et sur la base de ces données, le script d'application décentralisé peut, par exemple, initier une amende et radier des jetons du compte du propriétaire de la voiture.

Les oracles humains utilisent les données saisies par les humains. Ils sont considérés comme les plus progressistes en raison d'une vision indépendante du résultat de l'événement.

Récemment, nous avons fourni un outil qui vous permet d'écrire des données Oracle dans une chaîne de blocs selon une spécification donnée. Cela fonctionne extrêmement simplement: il vous suffit d'enregistrer la carte Oracle en remplissant les spécifications. Après cela, vous pouvez publier des transactions de données selon cette spécification via l'interface Waves Oracles. En savoir plus sur l'outil dans notre documentation .

image

Ces outils et interfaces normalisés simplifient la vie des développeurs et des utilisateurs de services sur la blockchain. Notre outil est utile spécifiquement pour les oracles humains et peut être utilisé, par exemple, pour enregistrer des certificats ou des droits d'auteur sur n'importe quel objet.

Mais lors de l'utilisation d'oracles, la question se pose de la confiance dans les informations reçues d'eux. La source est-elle fiable? Les données seront-elles reçues à temps? De plus, il y a un risque que l'oracle trompe les utilisateurs en fournissant intentionnellement des informations incorrectes pour obtenir son propre avantage.

Par exemple, considérons un oracle qui fournit des informations sur les événements sportifs pour un échange de paris décentralisé.

L'événement est la bataille principale du tournoi UFC 242, Khabib Nurmagomedov contre Dustin Porrier. Selon les bookmakers, Nurmagomedov est clairement un favori du match. Il était possible de parier sur sa victoire avec un coefficient de 1,24, ce qui correspond à une probabilité de 76%. Les chances de victoire de Porrier étaient de 4,26 (22%), et la probabilité d’un résultat nul a été estimée par les bookmakers par un coefficient de 51,0 (2%).

image

Le script accepte les paris des utilisateurs sur les trois résultats possibles jusqu'à ce qu'il reçoive de l'oracle des informations sur le résultat réel de la bataille. C'est le seul critère de répartition des gains.

On sait maintenant que Nurmagomedov a gagné. Cependant, imaginez que le propriétaire peu scrupuleux de l'oracle, en planifiant la fraude à l'avance, a fait un pari sur le résultat avec les cotes les plus favorables - un match nul. Lorsque la banque de paris a atteint un volume important, le propriétaire de l'oracle lance l'enregistrement dans la blockchain de fausses informations sur le résultat prétendument nul de la bataille. Le script de l'échange décentralisé n'a pas la possibilité de revérifier l'exactitude des données reçues et ne répartit les gains qu'en fonction de ces données.

Si le profit potentiel d'une telle tromperie est supérieur au revenu prévu d'un oracle honnête, alors que le risque d'aller en justice est faible, la probabilité d'actions malhonnêtes de la part du propriétaire de l'oracle augmente considérablement.

L'une des solutions possibles au problème consiste à demander des données à plusieurs oracles et à amener les valeurs obtenues à un consensus. On distingue plusieurs types de consensus:

  • tous les oracles ont fourni des informations uniformes
  • la plupart des oracles fournissent des informations unifiées (2 sur 3, 3 sur 4, etc.)
  • réduction des données oracles à la valeur moyenne (des options sont possibles dans lesquelles les valeurs maximale et minimale sont précédemment ignorées)
  • tous les oracles ont fourni des informations unifiées avec un écart admissible prédéterminé (par exemple, les valeurs des devis financiers provenant de différentes sources peuvent différer de 0,00001, et obtenir une correspondance exacte est une tâche impossible)
  • sélectionner uniquement des valeurs uniques parmi les données reçues

Revenons à notre échange de paris décentralisé. En utilisant le consensus «3 sur 4», un oracle signalant un tirage n'a pas pu influencer l'exécution du script, à condition que les trois autres oracles fournissent des informations fiables.
Mais un utilisateur sans scrupules peut posséder trois des quatre oracles, puis il peut fournir une majorité décisive.

Luttant pour l'honnêteté des oracles, vous pouvez entrer une note pour eux ou un système d'amendes pour inexactitude des données. Vous pouvez emprunter le chemin de la "carotte" et offrir une récompense pour sa fiabilité. Mais aucune mesure n'évitera complètement, par exemple, une augmentation de notation ou une majorité injuste.

Alors vaut-il la peine d'inventer des services complexes, ou est-ce suffisant d'avoir un outil de consensus qui permet, comme sur une étagère de supermarché, de choisir, par exemple, cinq oracles fournissant les données nécessaires, de fixer le type de consensus et d'obtenir le résultat?

Par exemple, une application décentralisée a besoin de données de température en degrés Celsius. Dans le catalogue Oracle, nous trouvons quatre oracles qui fournissent de telles données, définissent le type de consensus sur «valeur moyenne» et font une demande.

Supposons que les oracles donnent des valeurs: 18, 17, 19 et 21 degrés. La différence de trois degrés peut être assez critique pour le script. Le service traite le résultat et reçoit une valeur de température moyenne de 18,75 degrés. Le script d'application décentralisé recevra ce numéro et fonctionnera avec lui.

image

En fin de compte, la décision appartient au consommateur: faire confiance à un oracle et utiliser ses données, ou construire un consensus sur plusieurs oracles choisis à sa discrétion.

Dans tous les cas, les oracles de données sont un domaine assez nouveau. C'est à un stade où les utilisateurs eux-mêmes peuvent déterminer dans quelle direction il doit se développer. Par conséquent, nous voulons entendre votre avis. L'outil ci-dessus a-t-il besoin d'oracles? Comment voyez-vous en principe l'avenir des data oracles? Partagez votre opinion dans les commentaires et dans notre groupe officiel Telegram .

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


All Articles