Auteur:Andrew Hong
Compilé par : Ladyfinger, BlockBeats
Note de l'éditeur:
Dans cet article, l'auteur approfondit l'algorithme Eigentrust d'OpenRank, une nouvelle technologie actuellement utilisée par Metamask Snaps, les astuces Degen et 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 diagrammes de création de communauté et pourquoi vous en avez besoin
Concepts clés de l'algorithme et comment il fonctionne
Comment 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 recommandations dans les crypto-monnaies, vous serez rapidement confronté à certains problèmes de données :
· Les transactions contiennent de nombreux niveaux d'opérations
· Les relations entre les adresses peuvent devenir infiniment complexes à travers plusieurs transactions
· L'adresse elle-même contient des identités partielles, dont chacune est pertinente dans différents contextes
Les trois éléments ci-dessus évoluent à un rythme exponentiel. Appelons ces éléments croissants « contexte ».
Votre petite équipe ML ne peut pas suivre le flux incessant d'idées
Vous ne voulez pas non plus que vos équipes backend ou d’ingénierie des données s’occupent de 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 pense qu'au cours de la prochaine année, l'industrie des crypto-monnaies 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 pu constater à quel point la communauté peut être puissante au-delà des capacités d'une petite équipe. J'ai également vu presque toutes les petites équipes de cryptographie passer de « Oui, nous pouvons le faire nous-mêmes 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.
Le concept de flux de recommandations est mimétique et sera éliminé. Les utilisateurs deviennent conservateurs de contenu
Dans l’espace des crypto-monnaies, les utilisateurs souhaitent apporter non seulement leurs graphiques sociaux à différentes applications, mais également le contexte caché dans ces graphiques. Si je suis activement la communauté /degen sur Farcaster, j'aimerais être recommandé sur Zora, Roam.xyz ou OnceUpon pour les activités de cette communauté, et j'aimerais pouvoir faire basculer cette recommandation dans le contexte d'une autre communauté dont je suis membre, par exemple 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 d’Eigentrust :
Il y a deux entrées clés ci-dessus : les nœuds pré-approuvés et le graphique de confiance local. "P" est votre pré-trust et "S" est votre confiance locale.
· Confiance locale : 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.
· Pretrust : 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 les calculs ne sont pas faciles à comprendre, considérez-les comme une analogie avec un graphique social comme Twitter, où les influences telles que les abonnés, les likes, les réponses, etc. sont souvent concentrées entre 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.
Quel est le rapport 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 référence. 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.
De cette façon, 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é !
Cela est peut-être 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 ?
but ultime
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).
Les sources de données
Après avoir créé le graphique de classement, nous avons généré ce flux de recommandations en fonction de leurs principales interactions contractuelles au cours de la semaine dernière :
Les sources de données
Vous pouvez consulter le tableau de bord pour voir d'autres flux de référence créés à partir de ce graphique, tels que la frappe NFT, l'échange de jetons DEX et l'activité du canal Farcaster.
Code
Maintenant que vous avez vu les objectifs, 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 :
La première requête est notre "nœud pré-approuvé". 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.
Les sources de données
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 - je suit les transferts de stablecoin et d'ETH sur Optimism, Base et le réseau principal Ethereum.
Les sources de données
Analyser le graphique d'entrée et tester le graphique Eigentrust de sortie
Maintenant que nous disposons des nœuds pré-approuvés et du 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.
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.
Vous vous souvenez de la constante « c » dans la formule précédente ? Faisons une recherche sur grille pour différentes valeurs de c (je l'appellerai alpha) et différentes tailles de graines de pré-confiance pour voir laquelle nous donne le score de confiance log-normal le plus log-normal et la couverture la plus élevée :
Il y a de nombreux compromis à faire ici, et il n’y a pas de meilleur rapport qualité-prix parmi lequel choisir. Une régularisation et une couverture élevées constituent 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.
j'y suis arrivé! 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 à prendre les choses en main ? Vous pouvez créer mon carnet et l'essayer vous-même, tous les liens nécessaires sont ci-dessous :
·Documents OpenRank
·Dépôt du SDK Python
·Cahier Python
· Tableau de bord du flux des dunes
Je vais mener une mission Bytexexplorers au cours du mois prochain où nous serons en compétition pour créer le meilleur graphique de flux d'abonnement pour les meilleures applications de cryptographie.