Problème du Consensus dans les systèmes avec homonymes

publicité
Problème du Consensus
dans les systèmes avec homonymes
Hung Tran-The
Réunion Displexity
La Rochelle, Avril 2013
1
Plan
Systèmes répartis classiques
Modèle Homonyme
Problème du Consensus
Résultats
Conclusion
2
Systèmes répartis classiques
Système réparti: un ensemble de processus
+ un réseau de communication.
– Systèmes avec les identités uniques: identités
distinctes.
– Systèmes anonymes: aucune identité.
3
Systèmes avec les identités uniques
Avantage: faciliter la détermination des expéditeurs et
récepteur des messages.
Désavantages:
– Difficulté de tenir les identités de tous les processus distincts.
• Le nombre de processus augmente.
• Le système peut accidentellement affecter la même identité à des
processus différents.
– Attaques Sybilles:
• Des processus malveillants peuvent usurper des identités des autres
processus.
• Systèmes P2P [John R. Douceur 02]. Un attaque dans système P2P
Maze [LZYDL 07].
• Réseaux de capteurs [NSSP 04].
4
Système anonyme
Introduit par Angluin [STOC80]
Applications: Web servers [RR98], Réseau de capteurs
[TKR05], P2P [AVML05].
Avantage: protéger la vie privée des utilisateurs
Désavantage: peu de problèmes peuvent être résolus.
– Impossibilité de l’élection de leader [STOC80].
– Impossibilité du problème de comptage dans un réseau inconnu
avec une diffusion et sans leader [MCS12].
– Impossibilité du problème de nommage même avec un leader
[MCS12].
– Impossibilité du problème du consensus:
– … [AFR06], [PS90]
5
Système anonyme
Difficulté de briser la symétrie en présence:
l’anonymat, l’asynchronie, des pannes ?
– Impossibilité de l’élection de leader:
• anonymat + anneau (synchronie)
• anonymat + asynchronie (n’importe quelle topologie)
– Impossibilité du consensus:
• asynchrone + panne crash [FLP80]
• anonymat + panne malveillante (synchronie) [Okun05]
6
Systèmes avec identité uniques:
Systèmes anonymes:
• Dificulté de tenir la distinction des
• Peu de problèmes peuvent être résolus.
identités
• Attaques sybille
Système avec homonymes
7
Modèle avec homonymes
Modèle général incluant les 2 modèles de
système: système avec identités uniques et
système anonyme.
n processus utilisent Ɩ identités où 1 ≤ Ɩ ≤ n
8
Exemple: n = 4, Ɩ = 2
2
1
3
4
Système avec identités uniques
1
1
2
2
Système anonyme
1
2
2
2
2
1
Distribution d’identités dans le système avec homonymes
1
1
9
Exemple
ASAP
LIAFA
LABRI
10
Modèle avec homonymes
Les processus sont divisés en groupes.
Chaque groupe a une identité unique.
Les processus dans une groupe (homonymes) utilisent la
même identité.
Les homonymes exécutent des algorithmes identiques.
Un processus peut envoyer des messages à un groupe mais
ne peut pas envoyer à un processus particulier.
Un processus ne peut pas déterminer si un message reçu
vient d’un processus ou vient de processus différents ayant
la même identité.
11
Motivation
D’un point de vue pratique:
– Moins de confidentialité, mais plus de problèmes
peuvent être résolus (briser la symétrie).
– Utile si certains processus sont affectés à la même
identité ou des processus byzantins usurpent l’identité
des autres processus. (aucun algo classique compte ça)
D’un point de vue théorique: comprendre
l'importance de l'identité en informatique
distribuée.
12
Quels problèmes peuvent être résolus dans les
systèmes avec homonymes?
13
Consensus
On utilise le problème du consensus pour étudier la puissance des
systèmes par messages avec homonymes.
Chaque processus propose une valeur. Chaque processus décide une
valeur telle que:
– Accord: Si deux processus corrects décident ils décident la même valeur.
– Validité: toute valeur décidée est l’une des valeurs proposées.
– Terminaison: tout processus correct décide au bout d’un temps fini.
Plusieurs variantes:
– Pour le modèle des pannes byzantines:
• Validité: si tous les processus corrects ont la même valeur proposée v alors v est valeur
décidée (Consensus byzantin).
– Consensus uniforme:
•
Accord Uniforme: si deux processus (correct ou non) décident, ils décident la même
valeur.
14
Modèle
n processus
Ɩ identités
au plus t processus en panne
Système par message:
– Synchrone: bornes supérieures de communication connues =>
rondes synchrones: émission, réception et calcul.
– Partiellement synchrone [DLS88]:
• Commutation en rondes synchrones.
• Il existe un temps T tel que après T, tous les messages diffusés par les
processus sont délivrés.
• Des messages peuvent ne pas être délivrés avant T.
Canal fiable: il ne crée pas, ni duplique ni modifie des messages.
15
Défaillances
Panne franche (crash)
Panne par omission d’émission (send
omission)
Panne par omission d’émission ou de
réception (general omission)
Panne Byzantine: comportement arbitraire.
16
Modèle
On considère 2 cas:
– Les processus peuvent compter des messages
identiques dans une ronde (numerate processes)
– Les processus ne peuvent pas compter des
messages identiques dans une ronde
(innumerate processes)
17
Travaux concernés
Consensus:
Consensus uniforme:
18
Résultats:
Cas synchrone
Conditions nécessaires et suffisantes pour le consensus
(n processus, Ɩ ids, au plus t processus byzantins)
Crash
General-omission
Byzantine
?
Impossible
[Okun05]
Ɩ ≥ 1, n ≥ t
Ɩ > 2t
Ɩ > 3t
Ɩ ≥ 1, n ≥ t
Ɩ ≥ 1, n > 2t
Ɩ > 3t
n ≥ t
n > 2t
n > 3t
Send-omission
Anonyme
Ɩ=1
n ≥ t
Innumerate
Homonyme
Ɩ < n
Numerate
IDs uniques
Ɩ = n
[PSL80]
Consensus uniforme
19
Consensus byzantin
Cas partiellement synchrone
En présence de la synchronisation partielle,
des pannes byzantines et des homonymes, la
condition nécessaire et suffisante pour le
consensus est: l > (n+3t)/2
20
ASAP
LIAFA
LABRI
21
Le consensus peut être résolu dans le système
avec homonymes.
Les identités ne sont pas nécessaires pour
résoudre le consensus si des pannes sont des
pannes franches, des pannes par omission
d’émission ou réception (pannes bénignes).
Les identités sont nécessaires avec des
défaillances Byzantines: l ≥ 3t+1 (la borne
inférieure).
– La solution dépend du nombre d’identités, pas du
nombre de processus.
– Augmenter le nombre de processus corrects n’améliore
rien.
22
Dans le cas partiellement synchrone: l >
(n+3t)/2
– Le nombre d’identité est presque même que le
nombre de processus.
– Augmenter le nombre de processus corrects
peut rendre l’accord impossible.
23
Publié à ICDCN13, PODC11, DC journal
Cas synchrone:
– Consensus uniforme avec des pannes bénignes: solution
en t+1 rondes (optimale).
– Consensus avec des pannes byzantines: solution
générique: transformer (l processus, l identités) en (n
processus, l identités).
Cas partiellement synchrone:
– Impossibilité: l’argument d’indistingabilité.
– Possibilité: basé sur l’algorithme Dwork-LynchStockmeyer [DLS88].
24
ASAP
LIAFA
LABRI
25
Impossibilité
Cas partiellement synchrone
Si l ≤ (n+3t)/2, impossible!
Par exemple: 5 processus affectés à 4
identités, un processus byzantin.
26
Scénario 1:
Tous les messages sont délivrés.
Le processus byzantin ne fait rien.
Tous les processus corrects proposent la valeur 1.
Par la validité, tous les processus correctes décident 1, après r1 rondes.
Byzantin
1
1
1
1
Décider 1
27
Scénario 1:
Byzantin
1
1
1
1
Décider 1
Scénario 2:
Byzantin
1
0
11
0
1
0
1
0
Décider 0
28
Scénario 3:
Les messages entre les deux groupes de processus corrects
ne sont pas délivrés en temps suffisamment longue.
Le processus byzantin envoie plusieurs messages à des
processus.
1
1
0
1
11
0
byzantin
29
Scenario 1
1
1
1
1
1
1
1
1
byzantin
Scenario 3
Scenario 2
0
1
11
0
0
1
0
1
1
0
11
0
0
1
0
1
30
Scenario 1
1
1
1
1
Décider 1
Scenario 2
1
0
11
0
1
0
1
0
Décider 0
1
1
1
1
Décider 1
byzantin
Scenario 3
0
1
11
0
1
0
1
0
Décider 0
Accord: la valeur décidée est la même pour tous les
processus corrects.
31
Algorithme en synchronie partielle
La preuve basée sur l’algorithme Dwork-LynchStockmeyer.
Utiliser la diffusion authentifiée [Srikanth,
Toueg].
Difficultés: les homonymes envoient des
messages contradictoires. Solution:
– Utiliser des quorums l-t ids.
– Un groupe leader au lieu d’un leader.
– Des messages supplémentaires pour aider les processus
corrects dans des groupes contenants des processus
byzantins à décider.
32
Consensus avec pannes byzantines
limitées
Restriction: le processus byzantin ne peut
pas envoyer plusieurs messages au même
processus dans une ronde.
33
Homonymes avec la distribution
d’identité disponible
Distribution d’identités: n = (n1, n2, …, nl)
Mode de pannes: t = (t1, t2, …, tl)
Groupe correct, partiellement byzantin,
byzantin.
Coefficient d’accord: ci = ni si G(i) est
correct. ci = 1 si G(i) est partiellement
byzantin et ci = 0 si G(i) est byzantin.
34
Homonymes avec la distribution
d’identité disponible
Condition nécessaire et suffisante pour le
consensus:
c = Min{c1 + c2 + … + cl} > 2t
Par exemple: si ni > t, l > t est suffisant pour le
consensus.
On fixe n, l, t. I, il existe une distribution
d’identités pour le consensus si et seulement si:
l > (n-r)t/ (n-t-min(r,t)) où r = mod l
Publié à ICDCN12, TCS
35
Homonymes avec des identités
usurpées
Des processus byzantins peuvent usurper
un ensemble d’identités F: |F| =k.
Sans authentification: l> 2t + k
Avec authentification: l> t + k
Publié à SIROCCO12
36
Conclusion
L’identité est nécessaire dans les systèmes
avec pannes byzantines mais pas nécessaire
dans les systèmes avec pannes bénignes.
Contrairement aux systèmes classiques
avec identités uniques, dans les systèmes
avec homonymes, augmenter des processus
corrects peut rendre l’accord impossible.
37
Conclusion
Deux méthodes pour réduire nombre
d’identités:
– Restreindre la puissance des processus
byzantins.
– Connaître la distribution d’identités.
38
Conclusion
Tout problème peut-il être résolu avec peu
d’identité?
Solvabilité + confidentialité: système avec
homonymes peut-il remplacer les systèmes
classiques?
39
Téléchargement