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 !
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 ».
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 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.
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.
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 :
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.
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.
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).
<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 :
<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.
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.
<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.
<em><span style="font-size: 14px;">数据来源</span></em>
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.
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 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 :
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.
C'est fait ! Vous pouvez utiliser cette API Dune pour alimenter n'importe laquelle de vos applications immédiatement.
Ê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!