La mayoría de las interfaces de criptomonedas actuales consisten en tablas de clasificación simples con las principales monedas clasificadas por volumen de operaciones, liquidez, acuñación, puntos, votos, etc. Si queremos disfrutar de una experiencia de criptomonedas a nivel de consumidor que pueda superar a los gigantes de la Web2 actual, necesitamos más que tablas de clasificación en nuestras aplicaciones.

OpenRank es una de las piedras angulares que nos ayuda a lograrlo y ya lo utilizan Metamask Snaps, Degen Tips y Supercast. OpenRank es una capa computacional que puede ejecutar varios algoritmos de gráficos de reputación, el primero de los cuales es el algoritmo de confianza propia.

En este artículo, le presentaré el algoritmo de confianza propia de OpenRank y analizaré lo siguiente:

La importancia de los diagramas de construcción comunitaria y por qué los necesita

Conceptos clave del algoritmo y cómo funciona.

Cómo crear tu propio gráfico, consulta un gráfico que hice en un cuaderno de Python

¡Empecemos!

¿Por qué crear un gráfico de recomendaciones con la comunidad en lugar de simplemente confiar en su propio equipo de aprendizaje automático?

Al crear algoritmos y flujos de recomendación en criptomonedas, rápidamente enfrentará algunos problemas de datos:

· Las transacciones contienen muchos niveles de operaciones.

· Las relaciones entre direcciones pueden volverse infinitamente complejas a través de múltiples transacciones

· La dirección en sí contiene identidades parciales, cada una de las cuales es relevante en diferentes contextos.

Los tres elementos anteriores están evolucionando a un ritmo exponencial. Llamemos a estos elementos crecientes "contexto".

Su pequeño equipo de ML no puede seguir el ritmo del flujo interminable de ideas

Tampoco querrás que tus equipos de backend o de ingeniería de datos se ocupen de estos problemas, después de todo, tienen un producto que construir. Los días en que las aplicaciones tenían usuarios y estructuras de datos de usuario se acabaron, ya no solo tienes un simple enlace, ID de usuario, Me gusta/responder/compartir e ID de publicación, sino que puedes tener canjes, divisiones, caídas, intercambios, apuestas, delegación, votación, acuñación y más. Casi todos los días aparecen nuevas "operaciones", así como nuevas cadenas, nuevos tipos de billeteras, nuevos tipos de identidades, etc.

Creo que durante el próximo año, la industria de las criptomonedas desarrollará una comunidad de ciencia de datos gráficos basada en el protocolo y los productos OpenRank.

He sido parte de la comunidad de magos de Dune durante muchos años y he visto cuán poderosa puede ser la comunidad más allá de las capacidades de un equipo pequeño. También he visto a casi todos los pequeños equipos de criptografía pasar de "Sí, podemos hacer esto de forma independiente con un nodo y una base de datos RDS" a "Necesitamos aprovechar herramientas de datos creadas por la comunidad como The Graph y Dune". Para mí, crear una combinación de consultas y gráficos adaptados a un tipo específico de flujo de recomendaciones y comunidad es un problema similar. Necesitamos comenzar a recopilar y probar gráficos que puedan proporcionar un flujo de recomendaciones en cada aplicación, desde los clientes de Farcaster hasta los exploradores de bloques.

El concepto de flujo de recomendaciones es mimético y será eliminado. Los usuarios se convierten en curadores de contenido.

En el espacio de las criptomonedas, los usuarios quieren llevar no sólo sus gráficos sociales a diferentes aplicaciones, sino también el contexto oculto dentro de esos gráficos. Si sigo activamente a la comunidad /degen en Farcaster, me gustaría que me recomienden en Zora, Roam.xyz o OnceUpon para las actividades de esa comunidad, y me gustaría poder cambiar esa recomendación al contexto de otra comunidad de la que soy miembro, por ejemplo, coleccionista de bloques de arte. El futuro será uno en el que los usuarios descubran y elijan sus propios feeds, en lugar de limitarse a un determinado grupo o canal en una sola plataforma.

¿Cómo funciona el algoritmo Eigentrust de OpenRank?

El algoritmo Eigentrust es similar al PageRank en que clasifica los nodos en una red de gráficos. La diferencia es que se centra en capturar relaciones complejas entre pares como una distribución de confianza. Fue creado originalmente para asignar puntuaciones de confianza en redes de intercambio de archivos. En el mundo de las criptomonedas, podría imaginarse su uso para representar principios de gobernanza de alta calidad o identificar contratos inteligentes confiables.

Aquí está la fórmula de Eigentrust:

Hay dos entradas clave arriba: nodos previamente confiables y el gráfico de confianza local. "P" es su fideicomiso previo y "S" es su fideicomiso local.

· Confianza local: Esta es la medida de la interacción entre dos nodos, cuando el nodo "i" pasa algún valor al nodo "j". Esto podría ser transferencias de tokens, certificaciones, respuestas a votos/me gusta, etc.

· Pretrust: Esta es su elección de "semilla" para los nodos de la red que deberían ser más confiables.

· "c": Esta constante (entre 0 y 1) es el peso del valor de confianza entre el gráfico de confianza local general y la semilla previa a la confianza. Los gráficos de interacción suelen tener una distribución de ley de potencia, por lo que las ponderaciones previas a la confianza más altas ayudan a normalizar la distribución de los valores de clasificación final.

Si las matemáticas no son fáciles de entender, considérelo como una analogía con un gráfico social como Twitter, donde la influencia, como seguidores, me gusta, respuestas, etc., a menudo se concentra en un pequeño número de personas, lo que resulta en una ley de potencia. dinámica. Al establecer un conjunto de individuos influyentes y elegir un valor "c" constante de 0,5 o superior, en efecto, las personas con las que interactúan estos individuos de confianza heredarán la mitad del valor de esa influencia. Así es como equilibra y distribuye las puntuaciones de confianza de manera más uniforme en toda la red.

¿Cómo se relaciona esto con la selección de cualquier contexto y la creación de un flujo de recomendaciones?

Supongamos que desea clasificar 10 000 propuestas de subvenciones en un flujo de referencias. Puede clasificar por valor a todos los votantes y proponentes en función de un conjunto de interacciones de votación (confianza local) y un conjunto de votantes confiables de su elección (preconfianza). Puede seleccionar sus votantes de preconfianza seleccionando los 10 votantes principales a quienes ha delegado votos en múltiples DAO. Eigentrust se ejecutará en función de estas dos entradas y le brindará una lista más grande de votantes, clasificados en el gráfico según la confianza heredada de los nodos previamente confiables.

De esta manera, ahora puede utilizar esta lista de valores clasificados para sopesar las propuestas de gobernanza en tiempo real para obtener un flujo de recomendaciones más personalizado.

Puede que esto todavía sea demasiado abstracto, así que lo explicaré con ejemplos de código concretos en la siguiente sección. Tenga en cuenta que OpenRank maneja el cálculo y el almacenamiento de estos gráficos de Eigentrust y recomienda que pueda utilizar el flujo de recomendaciones de salida. Todo lo que necesita hacer es decidir sobre los aportes del fideicomiso local y previo al fideicomiso.

¿Cómo construir un gráfico de Eigentrust usando OpenRank?

meta final

En este ejemplo, quiero proporcionar un flujo de suscripción de contratos recomendados basados ​​en la billetera del usuario de Farcaster/base (Farcaster es una aplicación similar a Twitter). El resultado es solo una lista de identificadores y valores; en mi diagrama, cada identificador está asociado con un identificador de usuario de Farcaster (fid).

Fuentes de datos

Después de crear el gráfico de clasificación, generamos este flujo de recomendaciones en función de sus principales interacciones contractuales durante la semana pasada:

Fuentes de datos

Puede ver el panel para ver otros flujos de referencia creados a partir de este gráfico, como la acuñación de NFT, el comercio de tokens DEX y la actividad del canal Farcaster.

Código

Ahora que ha visto los objetivos, hablemos de cómo creé este cuadro de clasificación.

Todo el código para este ejemplo se puede encontrar en el cuaderno hex.tech, o puede usar el cuaderno jupyter si prefiere ejecutarlo localmente.

Primero, creé dos consultas para nuestro fideicomiso local y previo a la confianza:

La primera consulta es nuestro "nodo previamente confiable". Esta consulta genera los principales usuarios del canal en función de las interacciones recibidas (me gusta, retweets, respuestas), mi fórmula es (me gusta + 3 retweets + 10 respuestas). Tomaremos los primeros 100 identificadores de esta consulta como nuestros nodos de confianza.

Fuentes de datos

La segunda consulta se utiliza para rastrear las interacciones en cadena entre nodos, utilizando la dirección de enlace del usuario en el canal /base. Debido a que el flujo de suscripción recomendará acciones en cadena, quiero asegurarme de elegir un gráfico de interacción basado en la cantidad de interacciones en cadena. Usar el valor en USD transferido entre nodos es un buen proxy general: he rastreado las transferencias de monedas estables y ETH en Optimism, Base y la red principal de Ethereum.

Fuente de datos Analizar el gráfico de entrada y probar el gráfico de salida Eigentrust

Ahora que tenemos los nodos de confianza previa y el gráfico de confianza local, veamos algunas estadísticas resumidas. 65,755 usuarios en el canal /base han transferido tokens a otros en el canal, y el 19% del gráfico (es decir, nodos conectados) se puede atravesar desde nuestros nodos previamente confiables. Este porcentaje puede variar dependiendo de cómo sean los datos de confianza local del gráfico de Sybil. Las transferencias de tokens pueden ser señales altas, pero también pueden ser intercambios bruscos, por lo que no sorprende que la mayor parte del gráfico no esté conectado.

Después de confirmar que el tamaño de los datos de entrada y las conexiones son razonables, podemos ejecutar y guardar nuestro gráfico Eigentrust. Guardé mi gráfico con el ID "base_transfer_50". Puedes ver a continuación que solo se necesitan 10 líneas de código para entrenar el gráfico. Piense en OpenRank SDK como el aprendizaje científico de los modelos criptográficos.

¿Recuerdas la constante "c" en la fórmula anterior? Hagamos una búsqueda en cuadrícula de diferentes valores de c (lo llamaré alfa) y diferentes tamaños de semillas previas a la confianza para ver cuál nos brinda la puntuación de confianza más logarítmica normal y la mayor cobertura:

Hay muchas compensaciones aquí y no existe un mejor valor para elegir. Una regularización y cobertura altas son una buena opción si desea una gran diversidad en las recomendaciones, pero para las votaciones de gobernanza de alto riesgo es posible que en realidad desee una mayor concentración de confianza. Utilice su intuición aquí.

Desde aquí, podemos insertar valores en la consulta de suscripción vinculada al comienzo del panel de Dune para obtener un flujo de interacciones de contrato para usuarios confiables en el canal /base. Este resultado de recomendación subjetiva nos ayuda a conectar mejor las métricas comunes anteriores con nuestra intuición esperada sobre la calidad del resultado de recomendación.

¡lo superó! Puede utilizar esta API de Dune para potenciar cualquiera de sus aplicaciones de inmediato.

Aprenda a crear su propio gráfico OpenRank Eigentrust

¿Estás listo para tomar el asunto en tus propias manos? Puedes bifurcar mi cuaderno y probarlo tú mismo, todos los enlaces necesarios se encuentran a continuación:

· Documentos de OpenRank

· Repositorio del SDK de Python

· Cuaderno de Python

· Panel de control de Dune