Maison  >  Article  >  Une plongée approfondie dans l'algorithme Eigentrust d'OpenRank : comment créer une couche d'informatique sociale ?

Une plongée approfondie dans l'algorithme Eigentrust d'OpenRank : comment créer une couche d'informatique sociale ?

WBOY
WBOYoriginal
2024-06-24 13:33:20486parcourir

Titre original : "OpenRank : alimenter les applications avec des flux graphiques contextuels et personnalisés"

Note de l'éditeur :

Dans cet article, l'auteur examine en profondeur l'algorithme Eigentrust d'OpenRank, actuellement utilisé par Metamask. Snaps, astuces Degen et une nouvelle technologie utilisée par Supercast. OpenRank, en tant que couche informatique, peut exécuter plusieurs algorithmes de graphes de réputation. Le premier introduit est l’algorithme de confiance propre. Les auteurs expliquent pourquoi vous avez besoin de graphiques créés par la communauté, les concepts clés de l'algorithme, son fonctionnement et comment créer vos propres graphiques. De plus, l'auteur présente un aperçu des tâches à venir de Bytexexplorers et encourage les lecteurs à s'abonner pour obtenir les dernières mises à jour.

La plupart des interfaces de crypto-monnaie d'aujourd'hui se composent de simples classements avec les principales pièces triées par volume d'échange, liquidité, frappe, points, votes, etc. Si nous voulons accéder à une expérience de crypto-monnaie grand public qui puisse surpasser les géants du Web2 d'aujourd'hui, nous avons besoin de plus que des classements dans nos applications.

OpenRank est l'une des pierres angulaires qui nous aide à y parvenir et est déjà utilisé par Metamask Snaps, Degen Tips et Supercast. OpenRank est une couche de calcul capable d'exécuter un certain nombre d'algorithmes de graphes de réputation, dont le premier est l'algorithme de confiance propre.

Dans cet article, je vais vous présenter l'algorithme de confiance propre d'OpenRank et discuter des points suivants :

L'importance des graphiques créés par la communauté et pourquoi vous en avez besoin

Les concepts clés de l'algorithme et son fonctionnement

Pour savoir comment pour créer votre propre graphique, référez-vous à un graphique que j'ai réalisé dans un notebook Python

Commençons !

Pourquoi créer un graphique de recommandations avec la communauté au lieu de simplement vous appuyer sur votre propre équipe de machine learning ?

Lors de la création d'algorithmes et de flux de recommandation en crypto-monnaie, vous serez rapidement confronté à certains problèmes de données :

· Les transactions contiennent de nombreuses couches d'opérations

· Les relations entre les adresses peuvent devenir infiniment complexes avec plusieurs transactions

· L'adresse elle-même contient des identités partielles , dont chacun est pertinent dans des contextes différents

Les trois points ci-dessus évoluent à un rythme exponentiel, appelons ces éléments croissants « contexte ».

Votre petite équipe de ML ne peut pas suivre ces idées créatives sans fin

Vous ne voulez pas non plus que vos équipes backend ou d'ingénierie de données gèrent ces problèmes, après tout, elles ont un produit à créer. L'époque des applications ayant des utilisateurs et des structures de données utilisateur est révolue, vous n'avez plus seulement un simple lien, un identifiant utilisateur, un like/réponse/partage et un identifiant de publication, mais vous pouvez avoir des rachats, des fractionnements, des abandons, des échanges, du jalonnement, une délégation, vote, frappe et plus encore. De nouvelles « opérations » apparaissent presque chaque jour, ainsi que de nouvelles chaînes, de nouveaux types de portefeuilles, de nouveaux types d'identités, etc.

Je crois qu'au cours de la prochaine année, l'industrie de la crypto-monnaie développera une communauté de science des données graphiques basée sur le protocole et les produits OpenRank

Je fais partie de la communauté des sorciers de Dune depuis de nombreuses années et j'ai été témoin du pouvoir de la communauté. au-delà des capacités des petites équipes. J'ai également vu presque toutes les petites équipes de cryptographie passer de « Oui, nous pouvons le faire indépendamment avec un nœud et une base de données RDS » à « Nous devons tirer parti des outils de données créés par la communauté comme The Graph et Dune ». Pour moi, créer une combinaison de requêtes et de graphiques adaptés à un type spécifique de flux de recommandations et de communauté est un problème similaire. Nous devons commencer à collecter et tester des graphiques capables de fournir un flux de recommandations sur chaque application, des clients Farcaster aux explorateurs de blocs.

La notion de flux de recommandation est mimétique et sera supprimée. Les utilisateurs deviennent des conservateurs de contenu

Dans l'espace des crypto-monnaies, les utilisateurs souhaitent non seulement apporter leurs graphiques sociaux à différentes applications, mais également le contexte caché dans ces graphiques. Si je suis activement la communauté /degen sur Farcaster, je souhaite être recommandé sur Zora, Roam.xyz ou OnceUpon pour les activités de cette communauté, et je souhaite pouvoir adapter cette recommandation au contexte d'une autre communauté dans laquelle je suis. un membre, par exemple, d'un collectionneur d'artblocks. L’avenir sera celui où les utilisateurs découvriront et choisiront leurs propres flux, plutôt que d’être limités à un certain groupe ou à une certaine fonctionnalité de chaîne sur une seule plateforme.

Comment fonctionne l'algorithme Eigentrust d'OpenRank ?

L'algorithme Eigentrust est similaire au PageRank dans le sens où il classe les nœuds dans un réseau graphique. La différence est qu’il se concentre sur la capture de relations complexes entre pairs en tant que distribution de confiance. Il a été initialement conçu pour attribuer des scores de confiance dans les réseaux de partage de fichiers. Dans le monde des crypto-monnaies, vous pourriez imaginer l’utiliser pour proxy des principes de gouvernance de haute qualité ou identifier des contrats intelligents dignes de confiance.

Voici la formule pour Eigentrust :

深入探讨 OpenRank 的 Eigentrust 算法:如何构建社交计算层?

Il existe deux entrées clés : les nœuds pré-approuvés et le graphique de confiance local. "P" est votre pré-trust et "S" est votre confiance locale.

· Localtrust : Il s'agit de votre mesure de l'interaction entre deux nœuds, lorsque le nœud "i" transmet une valeur au nœud "j". Il peut s'agir de transferts de jetons, d'attestations, de réponses/j'aime aux votes, etc.

· Préconfiance : il s'agit de votre choix de "graine" pour les nœuds du réseau qui devraient être plus dignes de confiance.

· "c" : Cette constante (entre 0 et 1) est le poids de la valeur de confiance entre le graphique de confiance local global et la graine de pré-confiance. Les graphiques d'interaction ont généralement une distribution en loi de puissance, de sorte que des poids de pré-confiance plus élevés aident à normaliser la distribution des valeurs de classement final.

Si ces formules mathématiques ne sont pas faciles à comprendre, elles peuvent être comparées à un graphe social comme Twitter, où les influences telles que les abonnés, les likes, les réponses, etc. sont généralement concentrées sur un petit nombre de personnes, ce qui entraîne une dynamique de loi du pouvoir. . En créant un ensemble d’individus influents et en choisissant une valeur constante « c » de 0,5 ou plus, les personnes avec lesquelles ces individus de confiance interagissent hériteront de la moitié de la valeur de cette influence. C'est ainsi que vous équilibrez et répartissez les scores de confiance plus uniformément sur le réseau.

Qu'est-ce que cela a à voir avec la sélection d'un contexte et la création d'un flux de recommandations ?

Supposons que vous souhaitiez trier 10 000 propositions de subvention dans un flux de recommandations. Vous pouvez évaluer la valeur de tous les électeurs et proposants en fonction d'un ensemble d'interactions de vote (confiance locale) et d'un ensemble d'électeurs de confiance de votre choix (pré-confiance). Vous pouvez sélectionner vos électeurs de pré-confiance en sélectionnant les 10 meilleurs électeurs auxquels vous avez délégué des votes sur plusieurs DAO. Eigentrust fonctionnera sur la base de ces deux entrées et vous donnera une liste plus large d'électeurs, classés dans le graphique en fonction de la confiance héritée des nœuds pré-approuvés.

Grâce à cela, vous pouvez désormais évaluer les propositions de gouvernance en temps réel à l'aide de cette liste de valeurs classées pour un flux de recommandations plus personnalisé !

C'est probablement encore trop abstrait, je vais donc l'expliquer avec des exemples de code concrets dans la section suivante. Gardez à l'esprit qu'OpenRank gère le calcul et le stockage de ces graphiques Eigentrust et vous recommande d'utiliser le flux de recommandations de sortie. Tout ce que vous avez à faire est de décider des entrées de pré-confiance et de confiance locale.

Comment construire un graphique Eigentrust en utilisant OpenRank ?

Objectif final

Dans cet exemple, je souhaite fournir un flux d'abonnement de contrats recommandés basé sur le portefeuille utilisateur de Farcaster/base (Farcaster est une application de type Twitter). La sortie est juste une liste d'identifiants et de valeurs, dans mon diagramme, chaque identifiant est associé à un identifiant utilisateur Farcaster (fid).

深入探讨 OpenRank 的 Eigentrust 算法:如何构建社交计算层?

<em><span style="font-size: 14px;">数据来源</span></em>

Après avoir créé le graphique de classement, nous avons généré ce flux de référence en fonction de leurs principales interactions contractuelles la semaine dernière :

深入探讨 OpenRank 的 Eigentrust 算法:如何构建社交计算层?

<span style="font-size: 14px;">数据来源</span>

Vous pouvez consulter le tableau de bord pour voir d'autres flux de référence créés à partir de ce graphique, par exemple la frappe NFT, Trading de jetons DEX et activité du canal Farcaster.

Mise en œuvre du code

Maintenant que vous avez vu l'objectif, parlons de la façon dont j'ai créé ce tableau de classement.

Tout le code de cet exemple se trouve dans le notebook hex.tech, ou vous pouvez utiliser le notebook jupyter si vous préférez l'exécuter localement.

Tout d'abord, j'ai créé deux requêtes pour notre pré-trust et notre confiance locale respectivement :

La première requête concerne notre "nœud pré-trust". Cette requête affiche les principaux utilisateurs de la chaîne en fonction des interactions reçues (j'aime, retweets, réponses), ma formule est (j'aime + 3 retweets + 10 réponses). Nous prendrons les 100 premiers identifiants de cette requête comme nœuds de confiance.

深入探讨 OpenRank 的 Eigentrust 算法:如何构建社交计算层?

<em><span style="font-size: 14px;">数据来源</span></em>

La deuxième requête est utilisée pour suivre les interactions en chaîne entre les nœuds, en utilisant l'adresse de lien de l'utilisateur dans le canal /base. Étant donné que le flux d'abonnement recommandera des actions en chaîne, je veux m'assurer de choisir un graphique d'interaction basé sur le nombre d'interactions en chaîne. L'utilisation de la valeur USD transférée entre les nœuds est un bon proxy général - j'ai suivi les transferts de stablecoin et d'ETH sur Optimism, Base et le réseau principal Ethereum.

深入探讨 OpenRank 的 Eigentrust 算法:如何构建社交计算层?

<em><span style="font-size: 14px;">数据来源</span></em>

Analysez le graphique d'entrée et testez le graphique de sortie Eigentrust

Maintenant que nous avons les nœuds pré-approuvés et le graphique de confiance local, examinons quelques statistiques récapitulatives. 65 755 utilisateurs du canal /base ont transféré des jetons à d'autres utilisateurs du canal, et 19 % du graphique (c'est-à-dire les nœuds connectés) peuvent être parcourus à partir de nos nœuds pré-approuvés. Ce pourcentage peut varier en fonction de la qualité des données de confiance locales du graphique Sybil. Les transferts de jetons peuvent être des signaux élevés, mais ils peuvent aussi être des transactions au pinceau, il n’est donc pas surprenant que la majorité du graphique ne soit pas connectée.

深入探讨 OpenRank 的 Eigentrust 算法:如何构建社交计算层?

Après avoir confirmé que la taille des données d'entrée et des connexions est raisonnable, nous pouvons exécuter et enregistrer notre graphique Eigentrust. J'ai enregistré mon graphique avec l'identifiant "base_transfer_50" - vous pouvez voir ci-dessous qu'il ne faut que 10 lignes de code pour entraîner le graphique. Considérez OpenRank SDK comme le scikit-learn des modèles de cryptographie.

深入探讨 OpenRank 的 Eigentrust 算法:如何构建社交计算层?

Vous souvenez-vous encore de la constante "c" dans la formule précédente ? Faisons une recherche dans une grille sur différentes valeurs c (je l'appellerai alpha) et différentes tailles de graines de pré-confiance pour voir laquelle nous donne le score de confiance le plus log-normal et la couverture la plus élevée :

深入探讨 OpenRank 的 Eigentrust 算法:如何构建社交计算层?

Là Il y a beaucoup de compromis ici et il n’y a pas de meilleur rapport qualité-prix parmi lequel choisir. Une régularisation et une couverture élevées sont un bon choix si vous souhaitez une forte diversité dans les recommandations, mais pour les votes de gouvernance à enjeux élevés, vous souhaiterez peut-être en réalité une concentration de confiance plus élevée. Utilisez votre intuition ici.

À partir de là, nous pouvons insérer des valeurs dans la requête d'abonnement liée au début du tableau de bord de Dune pour obtenir un flux d'interactions contractuelles pour les utilisateurs de confiance dans le canal /base. Ce résultat de recommandation subjectif nous aide à mieux relier les mesures communes précédentes à notre intuition attendue sur la qualité du résultat de recommandation.

深入探讨 OpenRank 的 Eigentrust 算法:如何构建社交计算层?

C'est fait ! Vous pouvez utiliser cette API Dune pour alimenter n'importe laquelle de vos applications immédiatement.

Apprenez à créer votre propre graphique OpenRank Eigentrust

Êtes-vous prêt à le faire vous-même ? Vous pouvez créer mon notebook et l'essayer vous-même, tous les liens nécessaires sont ci-dessous :

· OpenRank Docs

· Dépôt Python SDK

· Python Notebook

· Tableau de bord du flux Dune

Je vais exécuter une mission Bytexplorers au sein du le mois prochain, nous serons en compétition pour créer le meilleur graphique de flux d'abonnement pour les meilleures applications de cryptographie.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn