Das von Ihnen angegebene Problem kommt dem Problem der byzantinischen Vereinbarung mit fehlerhaften Links sehr nahe . Mir ist jedoch nicht klar, welche Garantien Sie von Ihrem Algorithmus erwarten.
Der von Ihnen angegebene Algorithmus löst das Problem der byzantinischen Vereinbarung nicht. Insbesondere, wenn die Partei, die die Nachricht enthält, beschädigt ist und mit dem Senden beginntv0 zu einem Spieler aber auch v′ zu einem anderen Spieler, dann wird Ihr Algorithmus nicht konvergieren (das heißt, vielleicht wird jeder haben v0, aber sie werden auch haben v′und wird nicht wissen, was die Nachricht ist, die ursprünglich gesendet wurde). Wenn Sie sich nicht für die Partys interessierenv′ Warum also nicht einfach die Nachricht an alle Parteien senden (dann von jedem Knoten wiederholt)?
Beachten Sie, dass bei fehlgeschlagenen Verbindungen die Konnektivität in Frage kommt . Wenn beispielsweise einer der Knoten nicht mit einem anderen Knoten verbunden ist (alle Kanten dazwischen sind fehlerhaft), erhält dieser Knoten die Nachricht nie. Natürlich, wenn die Anzahl der fehlerhaften Kantenf ist weniger als n/3und vorausgesetzt, dass jeweils zwei Knoten verbunden sind, gibt es überhaupt kein Problem.
Das folgende Dokument könnte Ihnen helfen: Vassos Hadzilacos, Konnektivitätsanforderungen für byzantinische Vereinbarungen bei eingeschränkten Fehlertypen , Distributed Computing , Band 2, Ausgabe 2, S. 95-103, 1987. Dieses Dokument befasst sich mit byzantinischen Vereinbarungen mitt fehlerhafte Knoten und k fehlerhafte Links, und dies gilt für jede Architektur des zugrunde liegenden Diagramms (solange eine bestimmte Konnektivitätsbedingung gilt).
Vielleicht möchten Sie auch einen Blick auf den Fall werfen, in dem nur Knoten fehlerhaft sind. Siehe zum Beispiel K. Perry, Randomized Byzantine Agreement ,
IEEE Trans. on Software Engineering , Band SE-11, Ausgabe 6, S. 539-546, 1985.