Les oracles viennent à la rescousse

Les oracles viennent à la rescousse

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

В article à propos du lancement du catalogue Oracles des vagues 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 enregistrent sur la blockchain.

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

Oracles logiciels recevoir et traiter des données provenant d'Internet, telles que la température de l'air, les prix des matières premières, les retards des trains et des avions. Les informations proviennent de sources en ligne telles que les API, et l'oracle les extrait et les place sur la blockchain. Découvrez comment créer un oracle logiciel simple ici.

Oracles matériels suivre des objets dans le monde réel à l’aide d’appareils et de capteurs. Par exemple, une caméra vidéo calibrée pour franchir une ligne enregistre les voitures entrant dans une certaine zone. L'oracle enregistre le fait de franchir une ligne dans la blockchain, et sur la base de ces données, le script d'application décentralisé peut, par exemple, initier l'émission d'une amende et le débit de tokens sur le compte du propriétaire de la voiture.

Oracles humains utiliser des données saisies par des humains. Ils sont considérés comme les plus progressistes en raison de leur vision indépendante de l'issue de l'événement.

Nous avons récemment fourni un outil qui permet d'écrire des données Oracle dans la blockchain selon une spécification donnée. Cela fonctionne extrêmement simplement : il vous suffit de vous inscrire carte oracleen remplissant le cahier des charges. Les transactions de données peuvent ensuite être publiées selon cette spécification via l'interface Waves Oracles. En savoir plus sur l'outil sur notre documentation.

Les oracles viennent à la rescousse

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

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

À titre d'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 le combat principal du tournoi UFC 242, Khabib Nurmagomedov contre Dustin Poirier. Selon les bookmakers, Nurmagomedov est clairement le favori du combat. Vous pourriez parier sur sa victoire avec une cote de 1,24, ce qui correspond à une probabilité de 76 %. Les chances de victoire de Poirier étaient de 4,26 (22 %) et les chances d'un match nul ont été estimées par les bookmakers à 51,0 (2 %).

Les oracles viennent à la rescousse

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

On sait désormais que Nurmagomedov a gagné. Cependant, imaginons que le propriétaire sans scrupules de l'oracle, planifiant la tromperie à l'avance, ait parié sur le résultat avec la cote la plus favorable - un match nul. Lorsque la banque de paris atteint un volume important, le propriétaire de l'oracle commence à enregistrer de fausses informations dans la blockchain sur le prétendu résultat nul de la bataille. Le script d'échange décentralisé n'a pas la capacité de revérifier l'exactitude des données reçues et ne distribue les gains qu'en fonction de ces données.

Si le profit potentiel de ce type de tromperie est supérieur aux revenus projetés d'un oracle honnête et que le risque de recours en justice est faible, la probabilité d'actions malhonnêtes de la part du propriétaire de l'oracle augmente considérablement.

Une solution possible au problème consiste à demander des données à plusieurs oracles et à amener les valeurs obtenues à un consensus. Il existe plusieurs types de consensus :

  • tous les oracles ont fourni les mêmes informations
  • la plupart des oracles fournissaient les mêmes informations (2 sur 3, 3 sur 4, etc.)
  • amener les données Oracle à la valeur moyenne (des options sont possibles dans lesquelles les valeurs maximales et minimales sont d'abord ignorées)
  • tous les oracles ont fourni des informations uniformes avec une tolérance préalablement convenue (par exemple, les cotations financières provenant de différentes sources peuvent différer de 0,00001, et obtenir une correspondance exacte est une tâche impossible)
  • sélectionner uniquement les valeurs uniques à partir des données reçues

Revenons à notre échange de paris décentralisé. En utilisant un consensus « 3 sur 4 », un oracle rapportant un match nul ne serait pas en mesure d'influencer l'exécution du script, à condition que les trois autres oracles fournissent des informations fiables.
Mais un utilisateur peu scrupuleux peut posséder trois des quatre oracles, et il pourra alors fournir une majorité décisive.

En luttant pour l'intégrité des oracles, vous pouvez introduire une notation pour eux ou un système d'amendes pour les données peu fiables. Vous pouvez également emprunter la route de la « carotte » et offrir une récompense pour l’authenticité. Mais aucune mesure n’évitera complètement, par exemple, l’inflation des notes ou une majorité injuste.

Alors vaut-il la peine d'inventer des services complexes, ou suffira-t-il d'avoir un outil de consensus qui permettra, comme dans un rayon de supermarché, de sélectionner, par exemple, cinq oracles qui fournissent les données nécessaires, de définir 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 d'oracles, nous trouvons quatre oracles qui fournissent de telles données, définissent le type de consensus sur « moyen » et font une demande.

Supposons que les oracles donnent les valeurs suivantes : 18, 17, 19 et 21 degrés. Une différence de trois degrés peut être très critique pour l’exécution du scénario. 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.

Les oracles viennent à la rescousse

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

Quoi qu’il en soit, les oracles de données constituent un domaine relativement nouveau. C’est au stade où les utilisateurs peuvent déterminer eux-mêmes dans quelle direction il doit évoluer. C'est pourquoi nous voulons connaître votre opinion. L'outil ci-dessus est-il nécessaire pour les oracles ? Comment voyez-vous l’avenir des oracles de données en général ? Partagez votre opinion dans les commentaires et dans notre groupe officiel en Telegram.

Source: habr.com

Ajouter un commentaire