Los caminos de menor resistencia: Presentando WFR-Gossip Resumen: WFR-Gossip aplica principios de transporte óptimo a la capa de gossip de Ethereum. Preserva la resiliencia de Gossipsub, mientras reduce el ancho de banda en un 50% y disminuye la latencia del percentil 90 en un 40% en simulaciones.
Gossipsub de Ethereum es robusto pero ineficiente. Los nodos a menudo reciben el mismo mensaje muchas veces. Bueno para la resiliencia, costoso en ancho de banda/latencia. WFR-Gossip adopta un enfoque diferente: inspirado en la teoría del transporte óptimo, reenvía mensajes a lo largo de caminos más rápidos. 👇
El chisme clásico trata la propagación como un proceso aleatorio. WFR-Gossip lo replantea como transporte masivo: un mensaje es como un montón de arena, y la latencia es el costo para moverlo. Esto se conecta naturalmente con la teoría del transporte óptimo.
En una red de rumores: • masa en movimiento = reenviar un mensaje • crear masa = duplicar un mensaje • destruir masa = eliminar un duplicado La métrica Wasserstein-Fisher-Rao (WFR) captura esto, permitiéndonos modelar el flujo de mensajes con intuición física.
Cada nodo utiliza una regla sencilla: • Reenviar a algunos pares de baja latencia (D₍robusto₎ ≈ 3) • Para otros, reenvíe solo si RTT_out < RTT_in Esta heurística "cuesta abajo" no requiere coordinación global. Solo Tiempos de Ida y Vuelta (RTTs) locales, ya en libp2p.
En D_robust = 3, WFR-Gossip logra: • ~98% de cobertura de red • 50% menos de ancho de banda • 40% menos de latencia en el percentil 90ᵗʰ El fallback IHAVE/IWANT maneja el 2% restante de nodos perdidos.
WFR-Gossip no solo reenvía al par más rápido. Combina redundancia con filtrado: propagación aleatoria robusta + poda selectiva de caminos lentos. Esto evita cuellos de botella y es menos propenso a manipulaciones.
También es mínimamente invasivo: • Sin nuevas topologías • Compatible con la puntuación entre pares • Funciona bien con CHOKE, IDONTWANT, etc. • Utiliza solo reglas y datos locales (RTTs)
¿Qué sigue? • Implementación en simuladores de libp2p • Pruebas en condiciones más realistas/adversariales trabajo inicial de @open_sourcery aquí:
Enlace a la publicación: Enlace al repositorio de GitHub para el código de simulación: ¡Gracias a Leo Monsaingeon, @casparschwa, @_julianma, @weboftrees, @raulvk, @yannvon, @cskiraly y @open_sourcery por sus comentarios y revisiones!
11,74K