Geth 1.17.5 verhindert, dass Churn die nützlichsten Mempool-Peers kappt
Go-ethereum hat geändert, wie seine Knoten entscheiden, welche Peers sie behalten. Ein Beitrag im Ethereum-Research-Forum vom 24. September beschreibt CHAMP - kettenverankerten, mehrdimensionalen Peer-Schutz. Der Teil, der auf Einbindung in die Kette beruht, ist in geth v1.17.5 ausgeliefert, eine Dimension für Antwortlatenz ist noch in Arbeit.
Das Problem ist die Nebenwirkung einer guten Praxis. Knoten haben begrenzt viele Verbindungsplätze, und langlaufende Knoten füllen ihre Plätze und geben sie selten frei - Neulinge finden das Netz verschlossen, und der Verbindungsgraph erstarrt zu etwas Vorhersehbarem, das sich leichter angreifen lässt. Clients halten dagegen, indem sie regelmäßig zufällige Peers trennen. Zufälliges Trennen ist aber blind für Qualität: Der Peer, der zuverlässig Transaktionen geliefert hat, die in der Kette landen, fliegt genauso leicht wie einer, der nichts beigetragen hat. Im Mempool wiegt das besonders, weil er abseits der Kette liegt, ohne Konsens darüber, welcher Peer sich gut verhalten hat.
CHAMP behält den Wechsel bei und legt geschützte Pools darüber. In jedem Pool ist eine kleine Gruppe von "Champion"-Peers vor dem zufälligen Trennen geschützt, während Trennungen die ungeschützte Mehrheit treffen - mindestens 70 Prozent jedes Pools, auch wenn alle Kategorien aktiv sind -, sodass sich die Wechselrate nicht ändert. Statt Qualität in einer Zahl zusammenzufassen, schützt CHAMP in jeder Dimension getrennt die Spitzengruppe: Ein Peer bleibt, wenn er auf einer einzigen Achse wertvoll ist. Zwei der drei Dimensionen hängen an Ergebnissen in der Kette und rechnen einem Peer nur Transaktionen an, die er als Erster geliefert hat und die dann an der Spitze eingebunden und später finalisiert wurden.

Was das bedeutet
Bemerkenswert ist, Peer-Reputation an Ergebnisse in der Kette zu binden. Eine Bewertung nach dem, was Peers behaupten oder wie gesprächig sie sind, lässt sich manipulieren; eine Bewertung danach, ob ihre Transaktionen tatsächlich eingebunden wurden, ist viel schwerer zu fälschen - verdienen lässt sie sich nur, indem man dem Knoten Transaktionen liefert, die landen. Die Idee reicht laut den Autoren bis Anfang 2025 zurück, und das Problem betrifft jedes offene Peer-to-Peer-Netz mit begrenzten Plätzen, nicht nur Geth oder Ethereum.
Für Knotenbetreiber ist die Änderung standardmäßig aktiv und braucht keine Konfiguration. Praktisch sollte der Mempool besser mit den Peers verbunden bleiben, auf die es ankommt, was sich auf die Ausbreitungsgeschwindigkeit von Transaktionen auswirkt. Andere Execution-Clients stehen vor demselben Zielkonflikt zwischen Offenheit und Qualität - ob sie eine ähnliche Schicht übernehmen, ist das Nächste, worauf zu achten ist.