I percorsi di minor resistenza: Introduzione a WFR-Gossip tldr: WFR-Gossip applica i principi del trasporto ottimale al layer di gossip di Ethereum. Preserva la resilienza di Gossipsub, riducendo al contempo la larghezza di banda del 50% e diminuendo la latenza al 90ᵗʰ percentile del 40% nelle simulazioni.
Il Gossipsub di Ethereum è robusto ma inefficiente. I nodi ricevono spesso lo stesso messaggio molte volte. Buono per la resilienza, costoso in termini di larghezza di banda/latenza. WFR-Gossip adotta un approccio diverso: ispirato alla teoria del trasporto ottimale, inoltra i messaggi lungo percorsi più veloci. 👇
Il pettegolezzo classico tratta la propagazione come un processo casuale. Il WFR-Gossip lo riformula come trasporto di massa: un messaggio è come un mucchio di sabbia, e la latenza è il costo per spostarlo. Questo si collega naturalmente alla teoria del trasporto ottimale.
In una rete di pettegolezzi: • massa in movimento = inoltrare un messaggio • creare massa = duplicare un messaggio • distruggere massa = eliminare un duplicato La metrica Wasserstein-Fisher-Rao (WFR) cattura questo, permettendoci di modellare il flusso dei messaggi con intuizione fisica.
Ogni nodo utilizza una semplice regola: • Inoltro ad alcuni peer a bassa latenza (D₍robusto₎ ≈ 3) • Per gli altri, inoltrare solo se RTT_out < RTT_in Questa euristica "in discesa" non richiede un coordinamento globale. Solo i Round-Trip Times (RTT) locali, già in libp2p.
A D_robust = 3, WFR-Gossip raggiunge: • ~98% di copertura della rete • 50% in meno di larghezza di banda • 40% in meno di latenza al 90ᵗʰ percentile Il fallback IHAVE/IWANT gestisce il restante 2% dei nodi mancati.
WFR-Gossip non si limita a inoltrare al peer più veloce. Combina ridondanza con filtraggio: robusta propagazione casuale + potatura selettiva dei percorsi lenti. Questo evita colli di bottiglia ed è meno soggetto a manipolazioni.
È anche minimamente invasivo: • Nessuna nuova topologia • Compatibile con il punteggio tra pari • Funziona bene con CHOKE, IDONTWANT, ecc. • Utilizza solo regole e dati locali (RTT)
Cosa c'è dopo? • Implementazione nei simulatori libp2p • Test in condizioni più realistiche/adversariali lavoro iniziale di @open_sourcery qui:
Link al post: Link al repository GitHub per il codice di simulazione: Grazie a Leo Monsaingeon, @casparschwa, @_julianma, @weboftrees, @raulvk, @yannvon, @cskiraly e @open_sourcery per il feedback e le recensioni!
11,73K