Die Byzantinischen Generäle

Transcrição

Die Byzantinischen Generäle
Die Byzantinischen Generäle
Von
Doris Reim
und
Bartek Ochab
aus dem Artikel:
The Byzantine Generals Problem
by Leslie Lamport, Robert Shostak, Marshall Pease
Agenda
I.
Einleitung
II.
Lösbarkeit ?
III.
OM-Algorithmus
IV.
SM-Algorithmus
V.
Fehlende Kommunikationswege
VI.
Zuverlässige Systeme
VII.
Zusammenfassung
Byzanz unter Beschuß
●
1453: Der Fall Konstantinopels
●
Komponenten in Computersystemen können
lügen
- Was passiert, wenn eine fehlerhafte Komponente widersprüchliche
Daten an andere versendet?
●
Abstraktion des Problems auf die Generäle
- Jede Einheit hat ihren eigenen General
- Die Generäle können sich nur über Boten verständigen
- Sie müssen sich auf einen gemeinsamen Plan einigen
- Es kann Verräter geben
Erfolgsgarantie?
- Voraussetzungen Für einen Sieg brauchen die Generäle einen
Algorithmus, der folgendes garantiert:
●
A: Alle loyalen Generäle kommen zur selben
Entscheidung
- Unabhängig vom Verhalten der Verräter
●
B: Eine geringe Anzahl Verräter kann die
loyalen Generäle nicht zu einer Fehlentscheidung bringen
- Vorgehen: jeder beobachtet und vermittelt den anderen, was er
sieht
Mögliche Methode
Idee:
●
Die einzigen Befehle sind “Angriff” und
“Rückzug”
●
Die Nachrichten aller Generäle werden gesammelt
●
Entscheidung per Mehrheitsvotum
Problem des Generals und
seiner Leutnants
●
Ein kommandierender General muß seinen
n-1 Leutnants seine Befehle schicken, so
daß folgendes erfüllt ist:
✔ IC1: Jeder loyale Leutnant erhält den gleichen Befehl
✔ IC2: Wenn der General loyal ist, befolgt jeder
loyale Leutnant den Befehl, den er erhalten
hat
Agenda
I.
Einleitung
II.
Lösbarkeit ?
III.
OM-Algorithmus
IV.
SM-Algorithmus
V.
Fehlende Kommunikationswege
VI.
Zuverlässige Systeme
VII.
Zusammenfassung
Lösbarkeit ?
●
Bei mündlichen Nachrichten ist das Problem
nicht lösbar, wenn unter drei Generälen
auch nur ein Verräter ist
Lösbarkeit ?
●
Bei mündlichen Nachrichten ist das Problem
nicht lösbar, wenn unter drei Generälen
auch nur ein Verräter ist
Lösbarkeit ?
●
Bei der Übersetzung auf mehr als drei
Generäle ergibt sich, daß 3m Generäle nicht
mit m Verrätern umgehen können
●
Auch ein Entschärfen der Bedingungen IC1
und IC2 macht das Problem nicht “besser”
Grundidee: nur der Zeitpunkt des Angriffs muß vereinbart werden
✔ IC1': Alle loyalen Leutnants starten innerhalb von 10 min
gemeinsam ihren Angriff
✔ IC2': Wenn der General loyal ist, greift jeder loyale Leutnant
innerhalb von 10 min nach dem befohlenen Zeitpunkt an
Agenda
I.
Einleitung
II.
Lösbarkeit ?
III.
OM-Algorithmus
IV.
SM-Algorithmus
V.
Fehlende Kommunikationswege
VI.
Zuverlässige Systeme
VII.
Zusammenfassung
Definition: Mündliche Nachricht
●
A1: Jede versandte Nachricht wird korrekt
empfangen
–
●
A2: Der Empfänger weiß, wer der Sender ist
–
●
Hierdurch können Verräter nicht in den Nachrichtenverkehr anderer
eingreifen.
Hierdurch können sich Verräter nicht als jemand anderes ausgeben.
A3: Das Fehlen einer Nachricht kann
festgestellt werden
Weitere Vorraussetzungen
●
Jeder General kann mit jedem anderen direkt
kommunizieren
●
Leutnants befolgen einen Standardbefehl,
wenn sie keinen (gültigen) erhalten
OM(m) Algorithmus
●
Gilt für alle nichtnegativen m.
●
Löst das byzantinische Generäle Problem für
3m+1 oder mehr Generäle mit maximal m
Verrätern.
●
Sei eine Funktion Mehrheit gegeben, die das
Mehrheitsvotum implementiert
OM(m) Algorithmus
(1)Kommandant sendet seinen Befehl an jeden
Leutnant
(2)Jeder Leutnant vermerkt den Befehl, den er
erhalten hat, und agiert dann selbst als
Kommandant, indem er OM(m-1) auf alle
anderen n-2 Leutnants anwendet
(3)Jeder Leutnant vermerkt alle Befehle die er
erhalten hat und benutzt dann Mehrheit
OM(m) Algorithmus, m>0
OM(m) Algorithmus, m>0
OM(m) Algorithmus, m>0
OM(m) Algorithmus, m>0
OM(m) Algorithmus, m>0
OM(m) Algorithmus, m>0
OM(m) Algorithmus, m>0
OM(m) Algorithmus, m>0
OM(m) Algorithmus, m>0
OM(m) Algorithmus, m>0
Agenda
I.
Einleitung
II.
Lösbarkeit ?
III.
OM-Algorithmus
IV.
SM-Algorithmus
V.
Fehlende Kommunikationswege
VI.
Zuverlässige Systeme
VII.
Zusammenfassung
Lösungsstrategie für signierte
Nachrichten
●
Idee: Den Verräter behindern, indem ihm das
Versenden gefälschter Nachrichten
erschwert wird:
✔ A4:
✔ a) Die Signatur eines loyalen Generals kann
nicht gefälscht werden und eine Änderung am
Inhalt der Nachricht wird erkannt
✔ b) Jeder kann die Signatur des Generals
verifizieren
Eigenschaften
●
Das Verfahren löst das Problem für m
Verräter
●
Für weniger als m+2 Generäle ist die Frage
Unsinn
●
Jeder Leutnant erhält eine signierte
Nachricht vom General, kopiert sie, hängt
seine Signatur an und sendet sie an die
anderen.
–
Wie kopiert wird, spielt keine Rolle!
Definition: SM(m)-Algorithmus
●
Sei Choice eine Funktion, die aus einer
Menge V von Befehlen einen einzelnen
auswählt, mit folgenden Eigenschaften:
–
–
Wenn die Menge V nur das Element v enthält, dann gilt:
Choice(V) = v
Choice({}) = „Rückzug“
●
Sei x:j:i der Wert x signiert von General j und
i
●
Sei 0 der Kommandant
SM(m) Algotithmus
Init: Für alle i : Vi = {}
(1) Der Befehlshaber signiert und sendet
seinen Befehl an jeden Leutnant
(2) für jedes i:
A) Wenn Leutnant i eine Nachricht der Form v:0
vom Kommandanten erhält und er bislang noch
keine Nachricht erhalten hat, dann
i) Vi = {v}, und
ii) er sendet die Nachricht v:0:i an jeden anderen
Leutnant
SM(m) Algotithmus
B) Wenn Leutnant i eine Nachricht der Form v:0:j1:...jk
erhält und v noch nicht in Vi ist,
i) fügt er v zu Vi hinzu
ii) wenn k < m, sendet er die Nachricht v:0:j1:...jk:i an die
übrigen Leutnants
(3) für jedes i:
Wenn Leutnant i keine weiteren
Nachrichten mehr erhalten wird,
befolgt er die Anweisung choice(Vi)
SM(1)
Agenda
I.
Einleitung
II.
Lösbarkeit ?
III.
OM-Algorithmus
IV.
SM-Algorithmus
V.
Fehlende Kommunikationswege
VI.
Zuverlässige Systeme
VII.
Zusammenfassung
Fehlende Kommunikationswege
●
Bisher: Jeder konnte mit jedem anderen
direkt kommunizieren
●
Jetzt: Ein einfacher, endlicher, ungerichteter
Graph gibt an, wer mit wem kommunizieren
kann.
Definition: Reguläre
Nachbarschaft
✔ 1) Alle Knoten aus der Menge sind Nachbarn
des Knotens i.
✔ 2) Für jeden Knoten k im Graphen der
ungleich i ist, existieren Wege von den
Nachbarknoten von i nach k, die nicht über i
laufen, so dass zwei verschiedene Wege
nichts ausser dem Endknoten k gemeinsam
haben.
Definition: P-Regularität
✔ Alle Knoten des Graphen besitzen eine
Menge aus Nachbarn, die aus genau P
verschiedenen Knoten besteht.
3-Regulärer Graph
3-Regulärer Graph
Erweiterung von
OM(m) auf OM(m,p)
●
Die Erweiterung löst das byzantinische
Generäle Problem mit m Verrätern, wenn der
Kommunikationsgraph p-regulär ist.
–
Der Kommunkationsgraph muß mindestens 3m-regulär sein
–
Der Graph muß mindestens 3m+1 Generäle enthalten
Definition: OM(m,p)
Algorithmus
●
1.) Der Kommandant sendet seinen Befehl zu jedem benachbarten
Leutnant
●
2.) Für alle Leutnants i, die direkte Nachbarn des Kommandanten sind:
Jeder sendet seinen erhaltenen Befehl zu jedem Leutnant k:
●
–
A) Wenn m=1, sende den Befehl zu allen anderen Leutnants k
–
B) Wenn m>1, dann agiert Leutnant i wie der Kommandant und
wendet den Algorithmus OM(m-1,p-1) mit dem Graphen ohne den
ursprünglichen Kommandanten an.
3.) Jeder Leutnant vermerkt alle Befehle, die er erhalten hat, und
benutzt dann Mehrheit auf die Liste aller Befehle, die er empfangen hat.
OM(1,3)
OM(1,3)
OM(1,3)
OM(1,3)
OM(1,3)
OM(1,3)
Überlegungen zum Graphen
●
Der OM(m,p) Algorithmus verlangt einen 3mregulären Kommunikationsgraph
–
●
Im Falle der minimalen Anzahl an Generälen (4) bedeutet das
vollständige Vernetzung
Der SM(m) Algorithmus kann leicht erweitert
werden, um die schwächst mögliche
Bedingung an die Konnektivität zu erhalten
Wieviel Konnektivität ist nötig?
●
IC1 verlangt, daß alle loyalen Leutnants den
gleichen Befehl befolgen.
➔
●
Kann nicht garantiert werden, wenn zwei loyale Leutnants nur über
einen Verräter hinweg kommunizieren können.
IC2 verlangt, daß loyale Leutnants einem
loyalen Kommandanten gehorchen
➔
Unmöglich, wenn der Kommandant nicht mit den Leutnants
verbunden ist
➔
Unmöglich, wenn der Kommandant nur über einen Verräter hinweg
mit den loyalen Leutnants kommunizieren kann.
Bedinung an die Konnektivität
➔
Der Subgraph, der durch die loyalen
Generäle gebildet wird ist vollständig.
–
Jeder loyale General kann jeden anderen loyalen General erreichen
–
Unter dieser Hypothese ist das byzantinische Generäle Problem mit
dem SM(n-2) Algorithmus lösbar, unabhängig von der Anzahl der
Verräter, mit n als Anzahl der Generäle
Agenda
I.
Einleitung
II.
Lösbarkeit ?
III.
OM-Algorithmus
IV.
SM-Algorithmus
V.
Fehlende Kommunikationswege
VI.
Zuverlässige Systeme
VII.
Zusammenfassung
Zuverlässige Systeme
●
●
Zuverlässigkeit wird versucht durch
Redundanz zu erreichen
–
Mehrere Prozessoren berechnen den selben Wert um den Ausfall
einzelner Pozessoren zu kompensieren
–
Der Endwert wird dann durch Mehrheitsvotum ermittelt
Diese Idee setzt vorraus, daß alle
redundanten Komponenten denselben Input
bekommen
Sicherheit durch Redundanz
●
Das System muss folgende Bedingungen
erfüllen, damit durch Mehrheitsvotum
Zuverlässigkeit garantiert werden kann.
–
1. Alle nicht fehlerhaften Prozessoren müssen
dieselbe Eingabe benutzen.
–
2. Wenn das Input-Device nicht fehlerhaft ist,
benutzen alle nicht fehlerhaften Prozessoren den
erhaltenen Wert.
Erkenntnis
Verlässliche Systeme
●
Unsere Algorithmen garantieren, daß alle
Prozessoren den selben Wert für ihre
Berechnungen erhalten.
●
Sind Mehrheit und Choice z.B. MedianFunktionen, so garantieren unsere
Algorithmen, daß der Fehler nicht größer ist
als durch das Input-Device vorgegeben.
Umsetzung in die Praxis
●
A1 : Jede Nachricht von einem korrekten
Prozessor wird immer korrekt empfangen
➔
In der Realität nicht garantierbar
➔
Das Versagen einer Leitung ist für den Prozessor dasselbe, als
wenn der andere Prozessor versagen würde
➔
Wenn wir ahnehmen, daß eine fehlerhafte Leitung nicht zur
Fälschung von signierten Nachrichten führt, ist der SM(m)
Algorithmus unabhägig von solchen Fehlern.
•
Diese führen nur zur Reduzierung der Verknüpfungen im
Kommunikationsgraphen
Umsetzung in die Praxis
●
A2 : Der Absender einer Nachricht ist immer
ermittelbar.
➔
Nur durch separate Leitungen für jeden Kommunikationsweg
realisierbar.
➔
Bei gemeinsamen Kommunikationsnetzwerken müssen fehlerhafte
Kommunikationsknoten mitbetrachtet werden, was wieder zum
„byzantinische Generäle“ Problem führt.
➔
Annahme entfällt im Fall von signierten Nachrichten.
Umsetzung in die Praxis
●
A3 : Das Fehlen einer Nachricht kann immer
ermittelt werden.
➔
Nur durch Time-out Wartezeiten realisierbar
➔
Dadurch müssen weitere Nebenbedingungen erfüllt werden.
➔
➔
➔
1.) Die Zeit zum generieren und versenden einer Nachricht ist konstant
2.) Uhren von Sender und Empfänger sind bis auf einen gewissen maximalen
Fehler synchron.
Uhren der Prozessoren müssen von Zeit zu Zeit neu synchronisiert
werden.
•
Anderes schweres Problem, jedoch änlich zum „byzantinische Generäle“
Problem.
Umsetzung in die Praxis
●
A4 : Signaturen von nicht fehlerhaften
Prozessoren müssen fälschungssicher sein.
➔
Kann niemals garantiert werden.
➔
➔
Folgende Bedingungen an die Signatur müssen erfüllt werden
➔
➔
➔
Allerdings kann die Warscheinlichkeit für den Bruch dieser Bedingung beliebig
klein gemacht werden.
1) Kein fehlerhafter Prozessor kann die Signatur eines fehlerfreien Prozessors
erzeugen.
2) Wenn die Nachricht gegeben ist, muss die Sigantur erkannt werden können.
Um die Einzigartigkeit der Signatur zu bewahren, sollte es
vermieden werden eine Nachricht neu zu signieren.
Agenda
I.
Einleitung
II.
Lösbarkeit ?
III.
OM-Algorithmus
IV.
SM-Algorithmus
V.
Fehlende Kommunikationswege
VI.
Zuverlässige Systeme
VII.
Zusammenfassung
Zusammenfassung
●
Beide Algorithmen sind teuer
●
Verbesserung des Problems nur, falls
Vorannahmen gemacht werden können, die
gewisse Fehlerfälle ausschließen
Danke für die
Aufmerksamkeit