September 27, 2019

Ein Schritt näher zum Coordicide: IOTA veröffentlicht schnellen probabilistischen Konsensus-Simulator

Ein Schritt näher zum Coordicide: IOTA veröffentlicht schnellen probabilistischen Konsensus-Simulator

In einem früheren Blogpost veröffentlichte die IOTA-Forschungsabteilung in Zusammenarbeit mit einem unserer Empfänger von Forschungsstipendien, Dr. Sebastian Mueller, Simulationsergebnisse des FPC-Protokolls, das für F ast P robabilistic C onsensus steht und von Dr. Serguei vorgeschlagen wurde Popov und Dr. Bill Buchanan.

Heute freuen wir uns, Ihnen den Quellcode des Simulators zu zeigen, mit dem wir einige der Ergebnisse von FPC erstellen. Durch die Freigabe des FPC-Simulators für die Öffentlichkeit können wir die Community einbeziehen, die Technologie öffnen und dazu ermutigen, sie in der freien Natur testen zu lassen.

Unser Simulator ist in Go geschrieben und Sie können über das folgende Repository auf den Code zugreifen:

https://github.com/iotaledger/fpc-sim

Der Simulator ist optimiert, um zu bewerten, wie sich FPC unter bestimmten Bedingungen verhält. Wir haben den Quellcode optimiert, um über einzelne Transaktionen abzustimmen. In der Simulation können sich Knoten entweder ehrlich oder negativ verhalten.

Für jede Transaktion definieren wir die durchschnittliche anfängliche Meinung der ehrlichen Knoten, eine Strategie für die Gegner sowie andere Parameter. Im folgenden Abschnitt werden einige dieser Parameter kurz erläutert.

Blick auf das Netzwerk

In dem FPC-Papier wird davon ausgegangen, dass jeder Knoten eine vollständige Ansicht des Netzwerks hat. Wir sind jedoch auch daran interessiert, was passiert, wenn wir stattdessen eine Teilansicht des Netzwerks annehmen. Mit anderen Worten möchten wir analysieren, wie sich das Fehlen vollständiger Kenntnisse über alle anderen Knoten im Netzwerk auf die Fähigkeit auswirkt, einen Konsens zu erzielen.

Um dieses Szenario zu untersuchen, haben wir ein Watts-Strogatz- Modell aufgenommen, mit dem Sie das Netzwerk als Diagramm mit Eigenschaften einer kleinen Welt simulieren können. Für die Erstellung dieser Diagramme werden zwei Parameter hinzugefügt:

Erstens ein Parameter δ , der den Anteil des Netzwerks festlegt, mit dem ein Knoten verglichen werden kann, und ein Parameter γ, der die Umverdrahtungswahrscheinlichkeit ist. Das Diagramm wird folgendermaßen erstellt: Zunächst erstellen wir ein Ringdiagramm, in dem jeder Knoten mit den nächsten δN-1- Nachbarn benachbart ist, wobei N die Gesamtzahl der Knoten ist.

Dann wird für die Hälfte dieser Verbindungen zufällig ein neuer Partner aus den verbleibenden Knoten mit der Neuverdrahtungswahrscheinlichkeit γ ausgewählt . Beachten Sie, dass wir für γ = 0 einen Ringgraphen erhalten, der den Durchmesser des Graphen für ein festes δ maximiert . Letzteres kann bei einem Watts-Strogatz-Diagramm als Worst-Case-Szenario verstanden werden.

Auswirkungen der beiden Parameter im Watts-Strogatz-Modell.

Zufälligkeit

Wir schließen die Möglichkeit ein, die Wahrscheinlichkeit des Empfangs einer Zufallszahl zu verringern. Dies ermöglicht die Untersuchung der Leistung des Protokolls, falls nicht für jede Runde eine zufällige Schwelle vorgesehen ist. Dies ist besonders wichtig, um zu verstehen, wie viel Zufälligkeit das FPC-Protokoll erfordert.

Strategien des Gegners

Darüber hinaus bieten wir die Möglichkeit, zwei vorsichtige Gegnerstrategien einzubeziehen. Im ersten Fall versucht der Gegner, die Integrität der Meinungen anzugreifen, dh die anfängliche Meinung umzudrehen, indem er die anfängliche Minderheitsmeinung kontinuierlich abstimmt. Im zweiten Fall versucht der Gegner, das Netzwerk anzugreifen, indem er versucht, einen Vertragsfehler zu verursachen und den Konsens zwischen den Knoten zu unterbrechen.

Metriken und Auswertung

Derzeit unterstützt der Simulator die folgenden Hauptmetriken, für die wir auch Auswertungsskripte bereitstellen:

  • TerminationRate : Die Rate, mit der alle ehrlichen Knoten vor der maximal zulässigen Runde abschließen.
  • AgreementRate : Die Rate, mit der alle ehrlichen Knoten mit derselben Meinung abschließen
  • Integritätsrate : Die Rate, mit der alle ehrlichen Knoten mit derselben Meinung abschließen und bei der die endgültige Meinung mit der ursprünglichen Mehrheit übereinstimmt.
  • EtaEvolution : Ein Histogramm der ehrlichen η- Werte für jede Runde für Knoten, die noch nicht abgeschlossen sind.

Für diese enthalten wir drei Evaluierungsskripte, die in Python mit Matplotlib geschrieben wurden .

plot.py und plot2d.py : Diese beiden Skripte ermöglichen die Auswertung mit 1 bzw. 2 Vektoren von Eingaben. Wir verwenden das Skript, um die Daten aus CSV-Ausgabedateien zu extrahieren, die vom Simulationscode erzeugt werden.

In den folgenden Abbildungen wenden wir beispielsweise das Skript plot.py an, um die Daten anzuzeigen, die durch die Bewertung der Auswirkungen einer Teilnetzwerkansicht erhalten wurden. In der ersten Abbildung nehmen wir einen konservativen Standpunkt ein und nehmen an, dass der Graph die Form eines Rings hat. Es ist ersichtlich, dass eine teilweise Netzwerkansicht ausreicht, um eine Einigung der Knoten zu erzielen.

Kündigungs- und Vertragsbedingungen mit δ

Für die zweite Abbildung haben wir die Topologie randomisiert, indem wir berücksichtigt haben, dass einige der Verbindungen mit der Wahrscheinlichkeit γ neu verkabelt wurden . Wir zeigen, dass die Übereinstimmungsrate deutlich erhöht werden kann, während die Netzwerkansicht klein gehalten wird.

Übereinstimmungsrate mit γ für verschiedene Werte von δ

plot_eps.py : Dieses Skript liefert eine Heatmap derzeitlichenVerteilung der η- Werte. In der nächsten Abbildung sehen Sie beispielsweise die Entwicklung der eta s, wenn ein großer Anteil der Knoten ungünstig ist.

Heatmap der Entwicklung der η- Werte.

Darüber hinaus können die folgenden Metriken extrahiert und ihre Ausgabe als CSV-Dateien bereitgestellt werden:

  • MeanTerminationRound : Durchschnittliche Runde bei Beendigung der FPC
  • MedianTerminationRound : Mittlere Runde, wenn die FPC beendet wurde
  • TerminationRound : Anzahl der Runden, die erforderlich sind, um die FPC in Histogrammform abzuschließen
  • MeanLastRound : Mittlere letzte Runde über alle Knoten
  • LastRoundHisto : Histogramm der einzelnen Abschlussrunden der Knoten
  • OnesProportion : Der Anteil von 1s nach Beendigung des Protokolls
  • OnesPropEvolution : Entwicklung des Anteils von 1s

Das IOTA-Forschungsteam arbeitet ständig daran, den Simulationscode zu verbessern und neue Funktionen hinzuzufügen. Wenn Sie neugierig sind und mehr darüber erfahren möchten, können Sie mit diesem Code experimentieren! Wenn Sie einen Beitrag leisten möchten, können Sie auch neue Strategien für Gegner sowie Abwehrmechanismen implementieren. Weitere Informationen zum Erstellen und Ausführen des Simulators finden Sie in der README- Datei des Repositorys.

Die Veröffentlichung des Fast Probabilistic Consensus Simulator ist ein weiterer Fortschritt im Coordicide-Projekt. Es ermöglicht uns, mit der Community und Forschern, die gleichermaßen an der Technologie interessiert sind, in Kontakt zu treten. Dadurch Menschen auf der ganzen Welt haben einen anderen Weg , um den Aufwand zu tragen oder auch Zuschüsse zu beantragen hier .

Wir hoffen, Sie werden die Entwicklung dieses Simulators genauso genießen wie wir. Wie immer freuen wir uns über Ihre Kommentare und Fragen entweder hier oder in #tanglemath auf dem offiziellen Discord- Server von IOTA .


Quelle: https://blog.iota.org/the-fast-probabilistic-consensus-simulator-d5963c558b6e