De paden van de minste weerstand: Introductie van WFR-Gossip tldr: WFR-Gossip past optimale transportprincipes toe op de gossiplaag van Ethereum. Het behoudt de veerkracht van Gossipsub, terwijl het de bandbreedte met 50% vermindert en de latentie op het 90ᵗʰ-percentiel met 40% reduceert in simulaties.
Ethereum's Gossipsub is robuust maar inefficiënt. Nodes ontvangen vaak hetzelfde bericht meerdere keren. Goed voor veerkracht, kostbaar in bandbreedte/latentie. WFR-Gossip neemt een andere benadering: geïnspireerd door de theorie van optimale transport, stuurt het berichten langs snellere paden door. 👇
Klassieke roddels beschouwen verspreiding als een willekeurig proces. WFR-Gossip herformuleert het als massatransport: een bericht is als een hoop zand, en latentie is de kost om het te verplaatsen. Dit sluit natuurlijk aan bij de theorie van optimaal transport.
In een roddelnetwerk: • bewegende massa = een bericht doorsturen • massa creëren = een bericht dupliceren • massa vernietigen = een duplicaat laten vallen De Wasserstein-Fisher-Rao (WFR) metriek vangt dit, waardoor we de berichtstroom met fysieke intuïtie kunnen modelleren.
Elk knooppunt gebruikt een eenvoudige regel: • Doorsturen naar enkele peers met lage latentie (D₍robust₎ ≈ 3) • Voor anderen alleen doorsturen als RTT_out < RTT_in Deze "downhill" heuristiek vereist geen wereldwijde coördinatie. Alleen lokale Round-Trip Times (RTT's), al in libp2p.
Bij D_robust = 3 bereikt WFR-Gossip: • ~98% netwerkdekking • 50% minder bandbreedte • 40% lagere 90ᵗʰ percentiel latentie IHAVE/IWANT fallback behandelt de resterende 2% van gemiste knooppunten.
WFR-Gossip is niet alleen het doorsturen naar de snelste peer. Het combineert redundantie met filtering: robuuste willekeurige propagatie + selectieve snoeiing van trage paden. Dit voorkomt knelpunten en is minder vatbaar voor manipulatie.
Het is ook minimaal invasief: • Geen nieuwe topologieën • Compatibel met peer scoring • Werkt goed samen met CHOKE, IDONTWANT, enz. • Gebruikt alleen lokale regels en gegevens (RTT's)
Wat is de volgende stap? • Implementatie in libp2p-simulators • Testen onder meer realistische/adversaire omstandigheden eerlijk werk door @open_sourcery hier:
Link naar de post: Link naar de GitHub-repo voor simulatiecode: Bedankt aan Leo Monsaingeon, @casparschwa, @_julianma, @weboftrees, @raulvk, @yannvon, @cskiraly en @open_sourcery voor feedback en beoordelingen!
11,74K