
Cada plataforma de redes sociales decide lo que ves. El algoritmo optimiza para el engagement, y el engagement se correlaciona de manera más confiable con la indignación y la respuesta emocional. El resultado es un feed que refleja lo que te mantiene desplazándote, no lo que la comunidad valora.
Lotusia adopta un enfoque diferente. El contenido se cura a través de sentimiento ponderado por quema — quemas Lotus para votar, y las quemas agregadas determinan qué sube y qué baja. La fórmula de clasificación on-chain es transparente: quemas positivas menos quemas negativas. Cualquiera puede auditarla. Nadie la posee.
Pero la transparencia sola no es suficiente. Un actor acaudalado puede abrumar la señal orgánica. Una campaña coordinada puede secuestrar el feed. En un sistema sin permisos donde cualquiera puede crear carteras ilimitadas, la mayoría de las técnicas convencionales anti-manipulación fallan. Así que construimos una capa de clasificación del feed entre los datos on-chain y lo que ves — cinco algoritmos complementarios que preservan la curación honesta mientras hacen la manipulación progresivamente más costosa.
La Restricción Fundamental
Lotusia opera en un entorno sin permisos. Cualquiera puede crear una cartera. No hay verificación de identidad, ni prueba de humanidad, ni grafo social de confianza. Esto impone una restricción innegociable al algoritmo de clasificación:
El algoritmo de clasificación debe considerar ÚNICAMENTE cantidades de quema agregadas. El número de carteras no debe afectar directamente la clasificación del contenido.
Esto elimina familias enteras de mecanismos anti-ballena. Las transformaciones sublineales por votante como el voto cuadrático incentivan la división de carteras — una ballena que quema 100.000 sats en 100 carteras obtiene diez veces más influencia que quemando desde una sola cartera. Las bonificaciones por diversidad de votantes recompensan directamente la creación de Sybil. Las penalizaciones por concentración por contenido se evaden trivialmente dividiendo carteras.
La solución es la contención. Cada función de clasificación opera exclusivamente sobre totales de quema agregados: el total de Lotus quemado en positivo y el total quemado en negativo. Dividir la misma quema total en cualquier número de carteras produce la misma puntuación. Este es el principio de neutralidad Sybil. La compensación es honesta — el algoritmo no puede distinguir entre mil votantes genuinos y una ballena con mil carteras — pero tampoco puede ser manipulado mediante la creación de carteras. En un sistema abierto a Sybil, esta es la compensación correcta.
La Línea Base On-Chain
La fórmula de clasificación on-chain es deliberadamente simple:
ranking = satsPositive - satsNegative
Es lineal, transparente y demostrativa de la propuesta de valor central. Pero también está dominada por ballenas, es frágil en la fase de arranque, temporalmente plana y vulnerable a agendas. La capa de clasificación del feed aborda estas limitaciones sin modificar la fórmula on-chain. Los cinco algoritmos operan off-chain, sobre datos agregados, y son neutrales ante Sybil por diseño.
R62: Amortiguación Logarítmica Agregada
La vulnerabilidad más obvia de la clasificación lineal es que el gasto y la influencia son perfectamente proporcionales. Una ballena que quema 100.000 sats tiene exactamente 100 veces la influencia de alguien que quema 1.000 sats.
R62 aplica amortiguación logarítmica a las quemas positivas y negativas agregadas de forma independiente:
feedScore = log₂(1 + B_pos / BASE) - log₂(1 + B_neg / BASE)
Donde B_pos y B_neg son las quemas positivas y negativas totales en un elemento de contenido, y BASE es una constante configurable establecida en 1.000 sats. El logaritmo crea rendimientos decrecientes sobre el gasto:
| Total Burn | Linear Score | Dampened Score | Marginal Gain per 1K |
|---|---|---|---|
| 1,000 sats | 1,000 | 1.00 | 1.00 |
| 10,000 sats | 10,000 | 3.46 | 0.27 |
| 100,000 sats | 100,000 | 6.66 | 0.036 |
| 1,000,000 sats | 1,000,000 | 10.0 | 0.0037 |
Una ballena que quema 100.000 sats obtiene una puntuación de feed de 6,66 — significativa, pero no 100 veces la influencia de una quema de 1.000 sats. Para duplicar su influencia de 6,66 a 13,32, necesitaría quemar más de 10 millones de sats. El logaritmo no impide la influencia de las ballenas; hace que cada unidad adicional de influencia sea exponencialmente más costosa.
Aplicar la amortiguación de forma independiente a las quemas positivas y negativas evita que una gran quema positiva sea completamente cancelada por una quema negativa proporcionalmente menor a nivel logarítmico. La puntuación neta refleja el sentimiento genuino de la comunidad, no solo quién gastó más.
Esta es la primera y más fundamental capa de amortiguación. Todos los algoritmos subsiguientes se construyen sobre esta puntuación comprimida.
R63: Limitación por Z-Score entre Contenidos
Incluso con amortiguación logarítmica, una ballena suficientemente determinada puede producir una puntuación atípica que domine el feed. R63 aborda esto normalizando las puntuaciones en relación con la distribución de todo el contenido.
El algoritmo calcula la media y la desviación estándar de todas las puntuaciones del feed, luego convierte cada puntuación a un z-score:
μ = mean(scores)
σ = sqrt(variance(scores))
zScore = (score - μ) / σ
cappedScore = min(zScore, Z_MAX)
El límite del z-score se establece por defecto en Z_MAX = 3.0. Esto significa que ningún elemento de contenido puede puntuar más de tres desviaciones estándar por encima de la media, independientemente de la cantidad absoluta de quema.
Considera un feed de 100 elementos con puntuaciones entre 1,0 y 5,0 (media 3,0, desviación estándar 1,0). Un elemento dominado por una ballena puntúa 15,0. Sin limitación, domina el feed con 5 veces la media. Con limitación por z-score:
zScore = (15.0 - 3.0) / 1.0 = 12.0 → capped at 3.0
El elemento de la ballena sigue clasificándose como el más alto, pero su ventaja sobre el elemento orgánico superior (z-score 2,0) se comprime de 3× a 1,5×. Ningún contenido individual puede monopolizar el feed.
La normalización solo se activa cuando hay al menos diez elementos de contenido puntuados, asegurando que no produzca artefactos durante la fase de arranque cuando el feed es escaso.
R64: Acumulación de Convicción Temporal
La fórmula de clasificación on-chain trata una quema de hace treinta días de forma idéntica a una quema de hace treinta segundos. R64 introduce decaimiento exponencial basado en la antigüedad de la actividad de votación, inspirándose en el voto por convicción desarrollado por Commons Stack y desplegado por 1Hive Gardens.
Las quemas se agrupan en períodos horarios. La puntuación neta amortiguada de cada período (de R62) se pondera por un factor de decaimiento basado en su antigüedad:
decay = (1/2)^(ageHours / halfLife)
convictionScore = Σ [periodScore_t × decay(age_t)]
La vida media predeterminada es de 72 horas, coincidiendo con el ciclo de vida natural de la relevancia del contenido en redes sociales:
| Age | Decay Factor | Contribution |
|---|---|---|
| Today | 1.00 | 100% |
| 3 days ago | 0.50 | 50% |
| 6 days ago | 0.25 | 25% |
| 9 days ago | 0.125 | 12.5% |
Esto proporciona una resistencia significativa a los ataques relámpago. Una ballena que deposita 100.000 sats en un solo bloque obtiene un impulso inmediato en la puntuación, pero ese impulso decae a la mitad cada tres días. Mientras tanto, las quemas orgánicas que añaden cantidades menores cada hora acumulan convicción que persiste.
En un ejemplo práctico: una ballena quema 100.000 sats en t=0 mientras las quemas orgánicas añaden 1.000 sats por hora. Con una vida media de 72 horas y BASE=1.000:
| Time | Whale (decayed) | Organic (accumulated) | Whale % |
|---|---|---|---|
| t=0 | 6.66 | 0 | 100% |
| t=24h | 5.30 | 3.28 | 62% |
| t=48h | 4.22 | 5.37 | 44% |
| t=72h | 3.36 | 6.72 | 33% |
| t=96h | 2.67 | 7.59 | 26% |
La señal orgánica supera a la ballena en 48 horas. Para el quinto día, la influencia de la ballena se reduce al 21 por ciento del total.
El ancla de decaimiento es determinada por quien la invoca. Para el feed curado, se usa la marca de tiempo del primer voto — esto previene que re-quemas triviales resuciten contenido antiguo. Para los feeds de tendencias y recientes, se usa la marca de tiempo del último voto para que el contenido reemergente con actividad nueva genuina aparezca correctamente.
R65: Integración de Señal Bidireccional
RANK soporta tanto quemas positivas como negativas. La relación entre estas dos señales agregadas proporciona información sobre la calidad del contenido que la magnitud pura no puede capturar. R65 extrae tres métricas de estos datos bidireccionales.
Ratio de Sentimiento mide qué fracción de las quemas totales son positivas:
sentimentRatio = B_pos / (B_pos + B_neg)
Un ratio de 1,0 significa unánimemente positivo. Un ratio de 0,5 significa equitativamente disputado. Un ratio de 0,0 significa unánimemente negativo.
Puntuación de Controversia mide cuán equitativamente disputadas están las quemas:
controversyScore = min(B_pos, B_neg) / max(B_pos, B_neg)
Una puntuación cercana a 1,0 significa quemas positivas y negativas casi iguales. Una puntuación cercana a 0,0 significa que una dirección domina. Cuando la puntuación de controversia supera el umbral configurable de 0,4, el contenido se marca como controvertido para tratamiento en la UI.
Engagement Total aplica amortiguación logarítmica a la suma de todas las quemas:
totalEngagement = log₂(1 + (B_pos + B_neg) / BASE)
Esto sirve como desempate: entre elementos con puntuaciones primarias similares, el que atrajo más atención total de la comunidad se clasifica más alto.
Estas tres métricas crean una comprensión bidimensional del contenido. Alto engagement con sentimiento positivo indica contenido genuinamente popular. Alto engagement con sentimiento disputado indica contenido controvertido que vale la pena examinar. Bajo engagement con sentimiento positivo indica contenido de nicho pero apreciado. Bajo engagement con sentimiento negativo indica contenido que la comunidad ha juzgado como indigno de atención.
La puntuación de controversia también alimenta el feed de clasificación por controversia, que usa una fórmula compuesta inspirada en el enfoque de magnitud-por-balance de Reddit:
controversySortScore = controversyScore × totalEngagement
Esto recompensa publicaciones que han atraído señal costosa significativa en ambos lados, proporcional a cuán equitativamente disputadas están las quemas. Las publicaciones por debajo del umbral mínimo de engagement se excluyen como triviales.
R66: Amortiguación de Picos de Velocidad de Quema
El algoritmo final apunta específicamente a los ataques relámpago. Analiza la tasa a la que las quemas se acumulan en un elemento de contenido, no solo el total. Una ballena que deposita 100.000 sats en un solo bloque produce un pico de velocidad agudo. El engagement orgánico produce una velocidad gradual y sostenida.
R66 calcula la velocidad de quema sobre una ventana de detección deslizante y la compara con la velocidad mediana móvil de todo el contenido. Cuando la relación de velocidad excede un umbral configurable, una función de amortiguación sigmoide entra en acción:
velocityRatio = currentWindowBurns / rollingMedianBurns
dampening = 1 / (1 + e^(k × (velocityRatio - threshold)))
Los parámetros predeterminados son un umbral de velocidad de 10× la velocidad mediana y una pendiente sigmoide de 0,5. El contenido que recibe quemas a tasas normales no se ve afectado (amortiguación ≈ 1,0). El contenido que recibe quemas a 100× la tasa mediana recibe un factor de penalización de aproximadamente 0,011 — casi completamente amortiguado.
La curva sigmoide es crítica. Evita cortes abruptos que podrían ser manipulados manteniéndose justo por debajo de un umbral. En su lugar, proporciona una transición suave de sin amortiguación a amortiguación fuerte.
Esto es neutral ante Sybil por diseño. La velocidad se calcula a partir de quemas agregadas por ventana de tiempo, no por cartera. Dividir una quema de 100.000 sats en 100 carteras en la misma ventana de tiempo produce el mismo pico de velocidad y la misma amortiguación.
La Puntuación Compuesta
Estos cinco algoritmos se combinan en una única puntuación compuesta del feed. El proceso fluye en secuencia:
- R62 calcula la puntuación base logarítmicamente amortiguada a partir de las quemas agregadas
- R64 aplica decaimiento temporal basado en la antigüedad de la actividad de votación
- R66 aplica amortiguación de velocidad si la acumulación de quemas es sospechosamente rápida
- R65 calcula señales bidireccionales para clasificación secundaria y marcas de controversia
- R63 aplica limitación por z-score a nivel de visualización del feed
El resultado:
feedScore = [log₂(1 + B_pos/BASE) - log₂(1 + B_neg/BASE)]
× decay(ageHours / 72h)
× velocityDampening(velocityRatio)
Con limitación por z-score aplicada a la distribución final. Una ballena debe quemar exponencialmente más por cada unidad marginal de influencia en la clasificación, sostener ese gasto a lo largo del tiempo, competir contra la distribución completa del contenido y evitar picos de velocidad. La economía cambia de quemar diez veces más para obtener diez veces la influencia, a algo más cercano a quemar 100 veces más para obtener tres veces la influencia que decae en tres días.
Por Qué Esto Fue Necesario
Los problemas que estos algoritmos resuelven son modos de fallo documentados de toda plataforma de contenido importante.
Las cámaras de eco se forman a través de la conformidad social y las cascadas de información. Los experimentos de conformidad de Asch demostraron que aproximadamente el 37 por ciento de las personas se conforman con una respuesta mayoritaria obviamente incorrecta. Los conteos de votos visibles crean la misma presión en las redes sociales. Lotusia aborda esto a través de Vote-to-Reveal: los conteos de votos están ocultos para cualquier usuario que aún no haya votado. Debes emitir tu propio voto antes de ver cómo votaron los demás. Esto es permanente y por usuario, no un período ciego basado en tiempo que expira. La investigación de Muchnik et al. midió un efecto de manada positivo del 25 por ciento a partir de un solo voto visible. Vote-to-Reveal elimina este vector por completo.
La manipulación coordinada es el problema del atacante con agenda. Operadores políticos, equipos de relaciones públicas corporativas y grupos ideológicos están dispuestos a gastar dinero para dirigir el sentimiento — la quema es el arma, y la relación de pérdida 10:1 que mata la explotación económica es irrelevante para ellos. Los algoritmos de clasificación del feed hacen esto costoso, y se complementan con detección de manipulación coordinada que monitorea clústeres de votación temporales, redes de similitud de comportamiento y anomalías demográficas de votantes. Cuando se detecta coordinación, la promoción algorítmica del contenido afectado en el feed se reduce. Los datos on-chain permanecen permanentes y accesibles. Solo la amplificación se ve afectada.
El dominio de las ballenas es el problema de la fase de arranque. Durante el crecimiento temprano de la red, una sola quema grande puede dictar todo el feed. La amortiguación logarítmica y el decaimiento temporal abordan esto comprimiendo las relaciones de influencia y asegurando que los ataques relámpago decaigan mientras la señal orgánica sostenida se acumula.
El modo de fallo de Steemit es lo que sucede cuando confundes el volumen de participación con el juicio de calidad. Steemit usó una métrica única — Steem Power — para la influencia de voto, las recompensas de contenido y el poder de gobernanza. El resultado fue intercambio de votos, dominio de ballenas, colapso de calidad y una caída del 90 por ciento en usuarios activos. Lotusia separa los Puntos de Engagement de la reputación RANK. Un usuario puede ser muy activo pero de baja calidad, o selectivamente activo pero de alta calidad. Ambas dimensiones son visibles. Ninguna se confunde con la otra.
El Fundamento Filosófico
Estos algoritmos son expresiones del espíritu Lotus. El principio fundacional de Lotus es la reciprocidad generalizada — da Lotus como muestra de aprecio, confía en que la reciprocidad seguirá, y deja que el token fluya en lugar de acumularse. El sitio original givelotus.org describía Lotus como "invaluable — una muestra de aprecio — con valor sentimental."
Los algoritmos de clasificación del feed protegen ese flujo de ser secuestrado. Aseguran que el juicio colectivo de la comunidad, expresado a través de sentimiento ponderado por quema sostenido, permanezca como la señal dominante. No necesitan identificar atacantes ni verificar identidades. Simplemente hacen que la economía de la manipulación sea desfavorable.
Esta es la respuesta honesta al problema Sybil: no puedes eliminar la influencia de las ballenas en un sistema sin permisos. Un actor suficientemente acaudalado siempre puede dominar. Pero puedes hacerlo progresivamente más costoso, hasta que la relación costo-beneficio se vuelva desfavorable. E incluso entonces, el decaimiento temporal asegura que su influencia se desvanezca.
Lo Que Viene Después
Los algoritmos de clasificación del feed están implementados y operativos en el servicio rank-backend-ts. Calculan puntuaciones compuestas para cada publicación en el feed unificado, integrándose con Vote-to-Reveal, la marca de controversia y la detección de manipulación coordinada.
Los sistemas complementarios continúan desarrollándose. El sistema de referidos proporciona incorporación resistente a Sybil a través de confianza social en lugar de prueba de trabajo. El sistema de Puntos de Engagement recompensa la participación sostenida en múltiples dimensiones — votos, referidos, comentarios, quemas, rachas y antigüedad de la cuenta. El monitoreo de concentración de votantes rastrea el Índice Herfindahl-Hirschman para detectar cuándo el poder de voto se concentra peligrosamente.
La Tortuga Lotusiana se mueve lentamente, pero deliberadamente. Construimos algoritmos de clasificación del feed que hacen la manipulación costosa y la curación honesta gratificante. No porque podamos eliminar toda forma de manipulación, sino porque podemos hacer que progresivamente no valga la pena el costo. Las matemáticas hacen el trabajo pesado. La comunidad proporciona la señal. Y el feed refleja lo que las personas genuinamente valoran, no lo que alguien puede permitirse promover.
Explora los perfiles clasificados en Perfiles Sociales de Lotusia. Conoce más sobre quién construyó Lotusia.