Chainlink Engineers : comment les oracles connectent Web2 et Web3

Dans le cas d'un marché relativement atone, la demande de machines oracle affiche une tendance à la croissance exponentielle.

Parlant : Frank, ingénieur des relations avec les développeurs, Chainlink Labs

Organisation : aididiaojp.eth, Foresight News

Je suis Frank, ingénieur des relations avec les développeurs chez Chainlink Labs. Mon travail principal est de permettre à davantage de développeurs ou de constructeurs passionnés par cette industrie d'en savoir plus sur les machines oracle. Sur la base des contrats intelligents de notre infrastructure actuelle, nous pouvons le considérer comme un contrat intelligent hybride. Les contrats intelligents peuvent être mieux intégrés avec diverses données dans le monde Web2, y compris les services informatiques, puis sur la base de cette architecture, les choses que les contrats intelligents sur la chaîne peuvent faire sont considérablement étendues.

Dans le partage d'aujourd'hui, je présenterai d'abord le concept de machine oracle, puis, sur la base du concept de machine oracle, je présenterai brièvement le réseau de machines oracle décentralisé et certains services que nous pouvons fournir, notamment les services de données et les services informatiques.

Qu'est-ce qu'un oracle ?

Du Web 1 au Web 2 en passant par le Web 3, l'état du réseau et des données change constamment. Au début, Web1 était un service de site Web dont les données ne pouvaient être lues que de manière statique. Lorsqu'il est passé au stade Web2, les données sont devenues lisibles, inscriptibles et participables. De nombreuses grandes entreprises ont créé des empires commerciaux basés sur leurs propres services. Elles stockent toutes les données des utilisateurs dans leurs propres bases de données. Si nécessaire, elles peuvent en fait posséder et modifier les données des utilisateurs. Dans ce cas, une question se pose, à savoir que certaines données que nous créons sur Internet ou dans le monde virtuel ont parfois une certaine valeur, alors à qui appartient cette valeur ? Sur la base de ce contexte, nous espérons être en mesure de bien résoudre ce problème au stade Web 3. Toutes les données de l'étape Web 3 n'existent pas dans un serveur ou dans un nœud.Il a un réseau décentralisé, et le réseau décentralisé est un système multi-livres composé de plusieurs nœuds. Les données sont stockées dans plusieurs nœuds, et ce n'est que lorsque chaque nœud est d'accord avec la modification et le stockage des données que les données finales peuvent être enregistrées. Ensuite, cela nous apportera un avantage, c'est-à-dire que quelle que soit la modification que nous voulons apporter aux données, nous devons les modifier en fonction du consensus préalablement convenu. Par exemple, si je veux modifier le solde du portefeuille, si personne ne m'envoie d'argent, peu importe comment le propriétaire des données veut le modifier, il finira par échouer dans le processus de consensus, ce qui rend le solde du portefeuille impossible à modifier. Ce n'est que lorsque le propriétaire des données envoie une transaction conforme aux règles que les données peuvent être finalement modifiées, ce qui apporte un avantage très évident. En même temps, cela présente également certains inconvénients, dont le plus important est qu'il fait du système un système déterministe. C'est-à-dire, parce qu'il y aura un processus de consensus tout au long du processus, il ne peut effectuer que des opérations que d'autres peuvent vérifier. Lorsque vous envoyez une opération, d'autres doivent exécuter votre opération, et si d'autres nœuds exécutent l'opération avec succès, ils peuvent en fait renvoyer le résultat. Quant à savoir si c'est plus de 50% ou 70%, cela dépend de l'algorithme de consensus. Au final, l'opération peut être écrite dans la transaction, et la transaction peut être écrite dans le bloc pour devenir une transaction complète.

Mais si nous devons effectuer des opérations non déterministes, telles que l'obtention de données API et la génération de nombres aléatoires en dehors de la blockchain, le système de blockchain déterministe ne peut pas être complété. Notre tirage au sort doit générer des nombres aléatoires, ou le protocole en chaîne doit connaître le prix des actifs hors de la chaîne, comme l'acquisition du prix des actions ou des matières premières, ce qui est une opération non déterministe et ne peut pas être complétée par la blockchain elle-même . Un autre exemple est les appels d'API. Si, en tant que nœud du réseau, j'appelle des données d'API externes, puis que je dis aux autres nœuds du réseau le résultat, d'autres nœuds l'exécuteront également afin de vérifier l'authenticité du résultat. la même opération et obtenir un résultat. Mais pour une API externe, si différentes personnes récupèrent la même API à des moments différents, le serveur peut raccrocher, ou le service peut être suspendu, ou les données peuvent changer au fil du temps. Vous faites la même chose à des moments différents et les résultats que vous obtenez sont incohérents. Tant que le résultat est incohérent, l'opération finale ne peut pas être entrée dans un bloc et il n'y a aucun moyen de la terminer. C'est une fois que nous avons la propriété des données, nous devons également supporter certaines des lacunes que cela entraîne.

Pour résoudre ce problème, nous devons nous appuyer sur des oracles. La blockchain est un système isolé et déterministe. Elle ne peut pas obtenir activement des données hors chaîne. L'émergence de la machine oracle est de résoudre ce problème. Il y a deux ou trois ans, le concept de la machine oracle est apparu, mais il n'y avait pas beaucoup de scénarios applicables à cette époque, et il avait de grandes limites. Par exemple, lorsque vous souhaitez obtenir des données de marché, télécharger des données boursières sur le réseau blockchain ou créer une structure pour mettre une logique sur la chaîne pour l'exécution, mais mettre le côté actif sur la chaîne et protéger le déroulement normal des transactions via contrats intelligents, etc. À l'heure actuelle, certaines données doivent être obtenues de la chaîne et la synchronisation des données doit être effectuée périodiquement, y compris les données de paiement bancaire ou de vente au détail, et même certaines autres données d'événements publics, telles que les conditions météorologiques, géographiques informations, informations logistiques, informations sportives, etc. Résultats des matchs, etc. Ces données ne peuvent pas être obtenues sans la machine oracle. Cela rendra l'écologie sur la chaîne très limitée. Avec le développement continu de l'écosystème du Web 3, les liens entre les deux mondes du Web 3 et du Web 2 deviendront de plus en plus étroits. Si l'on veut que le Web3 soit adopté à grande échelle, ou qu'il soit utilisé par plus de monde, il doit fournir des fonctionnalités très riches, pas seulement limitées à certaines opérations qui ne peuvent se faire qu'à travers les données d'origine sur la chaîne.

La machine oracle est probablement devenue populaire en 2020, quand c'était DeFiSummer, et la plupart des gens l'ont réalisé. Au début, la machine oracle faisait des choses très simples. Par exemple, si vous voulez obtenir des données externes et les télécharger sur le réseau décentralisé, c'est-à-dire la blockchain, le plus simple est d'établir un nœud centralisé sous la chaîne, qui est, pour construire un serveur, puis obtenir des données via le serveur, et enfin écrire les données dans le réseau blockchain dédupliqué, alors ce modèle s'appelle un oracle centralisé. Bien qu'il soit relativement simple à mettre en œuvre, il posera quelques problèmes.Par exemple, il présente le risque d'un point de défaillance unique, c'est-à-dire que le nœud centralisé peut provoquer des temps d'arrêt pour ses propres raisons fondamentales. Une autre possibilité est que si le service fourni par le contrat intelligent sur la chaîne dépend des données fournies par le nœud centralisé, et si le montant des fonds impliqués dans le contrat intelligent sur la chaîne est très important, alors cette machine oracle centralisée peut passer ses propres Données qui peuvent être manipulées pour lancer une attaque sur le service. Tant que les avantages sont suffisamment importants et qu'il n'y a aucun moyen d'atteindre l'exhaustivité par des moyens techniques, il s'agit d'un point de défaillance unique. Nous voulons mettre l'application dans le réseau décentralisé, y compris Ethereum ou d'autres écosystèmes de couche 2. En fait, nous espérons également que nous pourrons assurer l'équité de notre application, c'est-à-dire le contrat intelligent, à travers des centaines ou des milliers de nœuds oracle dans le réseau et la sécurité.

Bien sûr, si nous nous appuyons sur des nœuds centralisés pour obtenir des terminaux de données, même si d'autres aspects de la sécurité peuvent être garantis, mais le terminal de données de l'actif le plus important ne peut pas garantir la sécurité, cela rendra l'ensemble de la dApp vide de sens. Donc après la machine oracle centralisée, il y a un réseau de machines oracle décentralisé, qui peut bien résoudre le risque de point de défaillance unique que nous venons d'évoquer. La plus grande différence dans le réseau oracle décentralisé n'est pas qu'un seul nœud oracle fournit des services au réseau décentralisé, mais via le réseau oracle décentralisé. Il peut également être compris comme une sorte de couche 2, c'est-à-dire chaque nœud décentralisé. Le réseau oracle peut obtenir des données via ses propres sources de données, et après avoir obtenu les résultats, il peut effectuer une agrégation de données avec d'autres réseaux décentralisés, ce qui peut également être compris comme un processus de consensus, notamment en vérifiant si les données s'il y a des nœuds, ou si le les données renvoyées s'écartent trop de la valeur moyenne, ou faites simplement une valeur moyenne, puis agrégez les données, etc., puis écrivez-les sur le réseau décentralisé. L'un des avantages apportés par cette méthode est que, techniquement, elle peut garantir que le service ne sera pas interrompu à moins que tous les nœuds du réseau oracle décentralisé ne cessent de servir, mais cette possibilité est très faible. De plus, côté données, on peut également garantir que les données fournies par l'oracle au contrat sur la chaîne ne sont pas contrôlées par un seul nœud, mais par de nombreux nœuds. Si vous souhaitez manipuler des données pour lancer une attaque, le coût sera très élevé, ce qui équivaut à attaquer la couche 2, ou même un réseau décentralisé comme Ethereum, qui a fondamentalement peu de chances de réussir.

Le réseau décentralisé peut grandement améliorer la sécurité et l'équité des données reçues par les contrats intelligents. Pour les utilisateurs, nous ne sommes qu'un réseau oracle décentralisé, mais sur la base du réseau oracle décentralisé, nous pouvons fournir d'autres services, tels que des services de données, des services informatiques et des services inter-chaînes. S'il est basé sur la machine oracle pour fournir des données au réseau, en fait, il existe des opérations plus complexes et coûteuses qui peuvent également être effectuées hors chaîne, c'est-à-dire qu'elles sont intégrées au réseau oracle hors chaîne pour le calcul. , puis réécrit dans la blockchain de comparaison de sécurité élevée. Si nous pouvons obtenir des données hors chaîne, nous pouvons également obtenir des données d'autres chaînes et les écrire dans cette blockchain, ce qui implique en fait une chaîne croisée. Tant que la sécurité du réseau oracle décentralisé est suffisamment solide, il peut garantir la sécurité des services de données, des services informatiques et des services inter-chaînes basés sur celui-ci. Chainlink fournit une variété de services basés sur des oracles décentralisés, qui peuvent connecter les données Web 3 et Web 2, y compris les données de couche 1 et de couche 2, afin que chacun puisse obtenir autant de données et de services correspondants que possible.

Quels sont les services fournis par les oracles Chainlink ?

Ensuite, permettez-moi de présenter brièvement les services fournis par les oracles Chainlink. Bien sûr, il existe de nombreux services basés sur Chainlink, et je partagerai certains services avec des scénarios plus applicables.

Si vous souhaitez faire des innovations dans les domaines de DeFi, GameFi, NFT et SocialFi à l'avenir, il y a une forte probabilité que vous ayez besoin d'un oracle pour obtenir des données. Parce que vous devez obtenir les données de la chaîne de manière très décentralisée et sécurisée, et les réécrire dans votre contrat intelligent sur la chaîne.

Le premier service est le flux de prix, qui peut aussi être un terme que vous entendez souvent auparavant, et il explosera dans DeFiSummer en 2020. En 2020, de nombreux projets DeFi sont apparus, à commencer par Uniswap, suivi du contrat de prêt Compound, puis du projet d'actifs synthétiques Synthetics et d'autres applications.Ils ont tous une forte demande de données hors chaîne, car seules des données sécurisées peuvent être utilisées. Les données peuvent être utilisées par les utilisateurs de manière décentralisée par le biais de contrats, et un rôle important est joué par le service d'alimentation des prix de l'oracle.

La figure ci-dessus est l'organigramme de base du service d'alimentation des prix, qui comprend 3 participants importants. Le premier est le réseau décentralisé de machines oracle que nous venons de mentionner ; le second est constitué de fournisseurs de données, qui peuvent être des échanges ou d'autres grandes institutions faisant autorité, qui peuvent tous servir de fournisseurs de données ; le troisième est un contrat d'utilisation. Le processus illustré dans la figure ci-dessus est très simple. Chaque fournisseur de données peut fournir un nœud du réseau oracle Chanlink via l'interface ou le service de source de données, et chaque nœud du réseau oracle peut également obtenir des données en fonction de son propre service. , et puis via le processus d'agrégation, les données obtenues par chaque canal sont inscrites dans le contrat de vérification déployé sur la chaîne. S'il réussit la vérification, les données peuvent être enregistrées et peuvent être utilisées par les utilisateurs à l'avenir.C'est tout le processus. Le client n'a besoin d'utiliser le contrat que pour obtenir et utiliser plusieurs données.

Il existe de nombreux cas d'utilisation pour l'alimentation des prix, tels que Compound, Uniswap et Synthetics que nous avons mentionnés tout à l'heure, ils doivent mapper les actifs de Web2 à Web3, et ils ont besoin de mécanismes externes pour fournir les prix des actifs. Tout comme un stablecoin, il est basé sur le nombre d'actifs pouvant émettre autant de stablecoins, et son prix d'actif doit également être obtenu sur la base de la machine oracle. De plus, comme certaines plateformes de gestion d'actifs et les applications populaires de trading de produits dérivés, elles dépendent fortement des prix, ce sont donc en fait d'importants utilisateurs des services d'alimentation des prix. D'un point de vue tendanciel, la demande de services d'alimentation en prix augmente de façon exponentielle. L'utilisation des données a augmenté même sur les marchés les moins actifs.

Ensuite, je présenterai le deuxième service plus distinctif, Any API.En termes simples, il aide les contrats intelligents de la chaîne à obtenir des données non standard, telles que des données à longue traîne. Ces données peuvent n'être disponibles que pour certaines personnes ou certains contrats, mais ce ne sont pas des données standard comme les prix des jetons ou les prix des actifs. De nombreuses DApp nécessitent des données non standard, par exemple, les applications métier d'assurance Web 3 doivent obtenir des données météorologiques ou des données sur les retards de vol. Par exemple, les gaz à effet de serre peuvent faire certains projets similaires à l'ESG, y compris les jeux sportifs électoraux peuvent être combinés avec des marchés de prédiction. Nous fournissons des marchés de données basés sur n'importe quelle API. Dans chaque marché de données, il existe différents fournisseurs de données qui fournissent des services externes basés sur leurs propres données. Tant que l'utilisateur envoie une demande, il peut réécrire les données dans le contrat d'utilisation selon les exigences du service. . Le fournisseur et le destinataire des données sont tous deux déterminés par le marché. Il existe un marché pour les utilisateurs et les fournisseurs de données, et Chainlink ne monopolise pas officiellement toutes les données pour ensuite fournir des données à la chaîne.

Le flux de travail de Any API and price feed est en fait assez cohérent. Le contrat envoie d'abord une demande, puis la demande sera découverte par les nœuds Chanlink. Après la découverte, Chanlink peut sélectionner les données requises en fonction de la demande, puis les réécrire dans la blockchain. AnyAPI peut fournir aux utilisateurs une variété de données, mais elle a la particularité que bien qu'elle soit construite relativement rapidement, elle est fournie par un seul nœud. Ce qu'AnyAPI veut faire, c'est obtenir des données aussi rapidement que possible de manière simple, au lieu d'obtenir des données via la machine oracle réseau décentralisée que nous avons mentionnée précédemment.

Plus tard, à mesure que la diversité des exigences en matière de données augmentait, de nombreuses données non standard espéraient également être réécrites dans la chaîne de manière décentralisée. Nous avons également créé un nouveau service appelé Functions au début du mois d'avril de cette année. En termes simples, il exécute toute demande d'utilisateur via un réseau oracle décentralisé. Les utilisateurs peuvent utiliser un langage de programmation avancé tel que Java pour écrire le programme d'exploitation, ne peut plus être écrit uniquement en langage Solidity, le programme écrit en Java est nettement plus abondant que Solidity. Le service Functions peut encapsuler le programme écrit dans une requête et l'envoyer à l'ensemble du réseau oracle. Chaque nœud du réseau effectuera la même opération, qui peut être des services informatiques, des services d'acquisition de données ou d'autres services. Une fois que chaque nœud s'exécute et obtient le résultat, il passe par le processus d'agrégation que nous venons de mentionner, puis le réécrit dans le contrat intelligent.

Comparé au prix de l'alimentation, son degré de liberté est très élevé. C'est-à-dire que le contrat intelligent peut recevoir une interface externe pour utiliser la méthode de son choix. Il peut également écrire une partie de la logique qu'il doit faire dans le contrat, puis il n'est pas exécuté par la blockchain, mais par la machine oracle, ce qui équivaut à intégrer directement le service de la machine oracle dans le contrat intelligent, devenant un hybride type de contrat intelligent. Si vous le faites de cette manière, votre exécution est garantie via le réseau décentralisé, et vos opérations non déterministes sont des opérations qui ne peuvent pas être effectuées sur la blockchain et peuvent être effectuées via la machine oracle décentralisée Le réseau exécute et renvoie le résultat . Dans l'ensemble, cela peut grandement améliorer la fonctionnalité des contrats intelligents. Les fonctions qu'il peut faire seront plus abondantes qu'auparavant, et il est également très simple à appliquer côté client. Il vous suffit d'ajouter deux fonctions à votre contrat, et vous pouvez utiliser directement le réseau oracle décentralisé dans le cadre de votre smart contrat d'utilisation. Et il est également très convivial pour les programmeurs Web2 traditionnels, car la logique d'exécution peut être complétée par des langages de programmation traditionnels. Le processus global n'a pas changé : la requête est envoyée, puis envoyée au réseau oracle décentralisé, agrégée après exécution, et enfin réécrite dans le contrat intelligent de l'utilisateur.

Ce qui précède est ce que j'ai partagé sur la machine oracle et certains services que le réseau décentralisé basé sur la machine oracle peut fournir.

Voir l'original
Le contenu est fourni à titre de référence uniquement, il ne s'agit pas d'une sollicitation ou d'une offre. Aucun conseil en investissement, fiscalité ou juridique n'est fourni. Consultez l'Avertissement pour plus de détails sur les risques.
  • Récompense
  • Commentaire
  • Partager
Commentaire
0/400
Aucun commentaire
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate.io app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • ไทย
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)