consensus distribué. le problème du consensus mb - lria
TRANSCRIPT
![Page 1: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/1.jpg)
Consensus distribué
![Page 2: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/2.jpg)
Le problème du Consensus
MB - LRIA
![Page 3: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/3.jpg)
Sommaire
Définition, introduction, généralités Notion de faute Résultats d’impossibilité et hypothèses de travail
Consensus en présence de pannes franches Un algorithme polynomial Un algorithme exponentiel
Les généraux byzantins Un algorithme déterministe (Lamport & Al.) Un algorithe probabiliste (Rabin)
![Page 4: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/4.jpg)
Introduction
Problème fondamental Brique de base pour les applications Notion de fautes et hyp. sur le nb de fautes Résultat d'impossibilité Algorithmes systèmes synchrones et pannes franches Simulation (applets)
![Page 5: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/5.jpg)
Notion de fautes
Fautes de liens de communications Fautes de processus
Pannes franches Pannes de type GB
![Page 6: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/6.jpg)
Consensus
Le consensus distribué (CD) liens avec des pbs similaires (GB, CI) définition
Modèle de calcul et hypothèses Algorithmes dans le cas synchrone avec pannes franches
![Page 7: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/7.jpg)
Le pb du Consensus
Terminaison: Tous les processus corrects vont de manière sûre choisir une valeur de
décision
Accord:Tous les processus corrects choisissent la même valeur
Validité: Si tous les processus proposent une même valeur v alors la valeur de
décision est v validité forte: La valeur de décision est celle proposée par un des
processus
![Page 8: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/8.jpg)
Contexte
SD à passage de messsages, synchrone avec pannes franches
SD à passage de messsages, synchrone avec pannes byzantines
SD à mémoire partagée, asynchrone avec pannes franches FLP82
SD à passage de messsages, asynchrone avec pannes franches LP82
![Page 9: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/9.jpg)
Une solution au consensus polynomial en présence de pannes franches
Solution due à Dolev et Strong (1983)
![Page 10: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/10.jpg)
Système distribué à passage de messages SYNCHRONE
une exécution est une suite d’étapes on délivre tous les messages des buffers de
communications sortants on effectue un calcul local après chaque étape d’envoi
ou réception de messages
![Page 11: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/11.jpg)
Pannes franches
Un sous-ensemble d'au plus f processus fautifs un processus fautif peut s’arrêter
après un envoi de messages quelconque f est connu les processus fautifs ne sont pas connus
![Page 12: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/12.jpg)
Algorithme
![Page 13: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/13.jpg)
Comportement de l’algorithme
V1
![Page 14: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/14.jpg)
1 étape
V1 V2 V3
V4 V5
![Page 15: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/15.jpg)
Validité de l’algorithme
Plusieurs choses à montrer Après un tour sans faute, tous les processus corrects ont le même
ensemble de valeurs. Dès la fin d’un tour sans faute, à chaque tour, les processus
corrects ont des ensembles de valeurs identiques L’algorithme se termine en (f+1) tours où f est le nombre de
faute;s; Le consensus est réalisé après un tour sans faute (càd après f+1
tours).
![Page 16: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/16.jpg)
P1: Tous les ps corrects Pi et Pj réalisent l'accord à la fin du tour (f+1).
Idée de la preuve supposons que x est ajouté à Vi au tour r pour la 1ère fois
si r <= f, alors Pi envoie x à Pj au tour suivant
si r = f+1, x est transmis via la chaine Pi1, ...Pif+1
Pi1 Pi2 au tour 1
Pif+1 Pi au tour f+1 implique f+1 ps distincts un ps correct parmi ceux ci et il envoie x à tous les processus avant f+1 --> Contradiction
![Page 17: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/17.jpg)
P2: L'algorithme présenté résoud le pb du consensus en f+1 tours.
si Pi et Pj sont corrects alors Vi et Vj sont les mêmes au tour f+1
et min(Vi) et min(Vj) sont les mêmes.
![Page 18: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/18.jpg)
Complexité de l'algorithme
f+1 tours jusqu'à ce que les processus corrects décident à chaque tour, il y a au maximum n2 messages envoyés
donc O((f+1) . n2) messages
L'algorithme est optimal (en nb de tours)
il y a (f+1) tours
![Page 19: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/19.jpg)
Solution exponentielle en nombre de message au consensus en présence de pannes franches
Solution due à
![Page 20: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/20.jpg)
Solution EIGStop
Hypothèses Même conditions de travail Application de la solution Lamport Shostak et Pease
Principe Maintien d’une structure de données en chaque site,
correspondant à un arbre stockant les informations reçues et leurs parcours
![Page 21: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/21.jpg)
Schéma de l’algorithme
Processus Pi Début: Wi={v} Tour k
Distribuer les pairs (étiquette, valeur)au dernier niveau, soft ceux qui contient i
Recevoir les pairs (étiquette, valeur) de Pj. Mise à jour l’arbre dépendant de quel pair est reçu de quel processus.
Tour k+1 Appliquer la condition de validité
![Page 22: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/22.jpg)
Principe (pas de pannes franches)
Au premier tour
S1
S3S2
Si (i=1)
Arbre W1
V1
S1 V1 S2V2 S3V3
Identique pour S2 et S3
![Page 23: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/23.jpg)
A la seconde étape (pas de pannes franches)
encore un échange de messages S1
S3
S2
![Page 24: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/24.jpg)
Si (i=1)Arbre W1
Identique pour S2 et S3
S1 reçoit S1V1 via S2
S1:V1
V1
S2:V2 S3:V3
S1S2:V1S1S2:V1 S2S1:V2 S2S3:V2 S3S1:V3 ?
S1 reçoit S2V2 via S3
À vous…
![Page 25: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/25.jpg)
Si (i=1)Arbre W1
Identique pour S2 et S3
S1 reçoit S1V1 via S2
S1:V1
V1
S2:V2 S3:V3
S1S2:V1S1S2:V1 S2S1:V2 S2S3:V2 S3S1:V3 S3S2:V3
S1 reçoit S2V2 via S3
S1 reçoit S3V3 via S2
![Page 26: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/26.jpg)
Nouvelle seconde étape (avec 1 panne franche)
S1
S3
S2
La panne se produit juste après l’envoi d’un message vers S1 et avant l’envoi des 3 autres messages (il y a en effet
deux fois deux messages, en général il y a
(n-1)2 messages sur un tour)S1:V1
![Page 27: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/27.jpg)
Pour S1
Arbre W1
S1:V1
V1
S2:V2 S3:V3
S1S3: V1S1S2:V1 S2S1:V2 S2S3:V2 S3S1:V3 S3S2:Null
S2S2
![Page 28: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/28.jpg)
Pour S3
Arbre W3
S1:V1
V3
S2:V2 S3:V3
S1S3: V1S1S2:Null S2S1:V2 S2S3:V2 S3S1:V3 S3S2:Null
S2S2
![Page 29: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/29.jpg)
Pour S2 …panne
Arbre W2
S1:V1
V2
S2:V2 S3:V3
![Page 30: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/30.jpg)
Preuve de validité
Technique (3 lemmes à établir)
La personne intéressé se réfèrera aux documents et à la bibliographie [Lynch 1997]
![Page 31: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/31.jpg)
Complexité
Nombre de messages Il y a (f+1) tours Chaque tour, on a n processus qui envoie
où k est le numéro de tour DONC
Complexité en temps Modèle synchrone et donc le temps est (f+1) tours
(n k ) k1
f 1
(n f 1)
n (n 1) (n 2) (n k 1) nombre de messages envoyé par un ps dans un tour
k1
f 1
(n 1) (n 2) (n k 1)
![Page 32: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/32.jpg)
Généraux Byzantins
Solution due à Lamport, Shostak et Pease (1982)
![Page 33: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/33.jpg)
Le problème
Notion de faute byzantine
![Page 34: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/34.jpg)
F fautes, 3F+1 participants ou si n généraux, il ne faut pas avoir plus de n/3 traitres
![Page 35: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/35.jpg)
Hypothèses
Système synchrone Graphe complet Absence de messages détectable Un général traître ne peut pas se faire passer pour un autre
général (loyal).
![Page 36: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/36.jpg)
Schéma de l’algorithme EIGSTop (rep)
Processus Pi Début: Wi={v} Tour k
Distribuer les pairs (étiquette, valeur)au dernier niveau, soft ceux qui contient i
Recevoir les pairs (étiquette, valeur) de Pj. Mise à jour l’arbre dépendant de quel pair est reçu de quel processus.
Tour k+1 Appliquer la condition de validité
![Page 37: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/37.jpg)
Algorithme GB
Fonctionne comme EIGStop Avec comme différences
Si un processus reçoit un message qui n’a pas la forme standard, le processus rejette ce message
Après (f+1) tours, tous les processus remplacent leurs valeurs Null avec leur valeur initiale.
Tous les processus appliquent le schéma suivant. Un processus Pi va calculer une fonction de décision valeur_de_décision (récursive) avec comme donnée d’entrée l’arbre Wi
![Page 38: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/38.jpg)
Fonction valeur_de_décision( Wi)
Pour chaque feuille de Wi, on adopte la valeur associée comme valeur de décision
Pour chaque nœud interne (non-feuille), on associe comme valeur au nœud, la valeur v=majorité(v1, v2 …vi ) où v1, v2 …vi sont les valeurs des enfants si elle n’existe pas, on prend une valeur par défaut prédéfinie (Retraite, O, Null)
La valeur de cette fonction est la valeur de la racine
![Page 39: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/39.jpg)
Scénario
6 GB 1 traître (GB N°2) propose
retraite puis change les messages
GB N°1,3,6 proposent l’attaqueGB N°4,5 proposent la retraite
Il y aura donc 2 tours avec 36 messages 6 messages au tour 1 6x5 au tour 2
![Page 40: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/40.jpg)
Schéma de calcul de la Fonction valeur_de_décision( Wi)
Arbre W1
1
S1:1
S1S2: 0*
Le GB N°1 propose l’attaque (valeur 1)
S1S4:1S1S3:1 S1S5:1 S1S6:1
S2:1* S3:1 S4:0 S5:0 S6:1
S5S2: 1* S5S4:0S5S3:0 S5S5:0 S5S6:0
La valeur transmise par S2
(traître)Peut être quelconque
Si Sk:Vi on reçoit la valeur Si :Vi
(la valeur est 0 ou 1) via Sk
![Page 41: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/41.jpg)
Calcul de valeur_de_décision( Wi): étape 0
Arbre W1
1
S1:1
S1S2: 0*
Le GB N°1 propose l’attaque (valeur 1)
S1S4:1S1S3:1 S1S5:1 S1S6:1
S2:1* S3:1 S4:0 S5:0 S6:1
S5S1: 1* S5S3:0S5S2:0 S5S4:1 S5S6:0
Valeur
0 1 1 1 1 1 0 0 1 0
![Page 42: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/42.jpg)
Détail de la branche S2
Arbre W1
1
S1:1 S2:1* S3:1 S4:0 S5:0 S6:1
S2S1:V1 S2S4:V4S2S3:V3 S2S5:V5 S2S6:V5
Valeur
1 0 1 0 0
Ce sont les valeurs reçues au premier tour, de S2 par les Si - qui
sont éventuellement suspectes mais qui sont ici retransmises
correctement à tous les Si à la seconde étape.
C’est une valeur
suspecte, elle peut
varier selon les Wi
![Page 43: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/43.jpg)
Détail de la branche S2 (suite)
Arbre W1
1
S1:1 S2:1* S3:1 S4:0 S5:0 S6:1
S2S1:V1 S2S4:V4S2S3:V3 S2S5:V5 S2S6:V6
V1 V3 V4 V5 V6On calcule la fonction valeur_de_décision( )
![Page 44: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/44.jpg)
Détail de la branche S2 (suite 2)
Arbre W1
1
S1:1 S2:1* S3:1 S4:0 S5:0 S6:1
S2S1:V1 S2S4:V4S2S3:V3 S2S5:V5 S2S6:V6
V1 V3 V4 V5 V6
On calcule la fonction valeur_de_décision( ) qui estmajorité(V1,V3 , V4 , V5 , V6)
et sera la même pour tous les arbres Wi (pour les ps non-fautifs càd i≠2)
DONC même avec un traître on assure l’accord eton remarque que le calcul de la valeur de décision est la même pour tous
VALEUR
VALEUR
![Page 45: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/45.jpg)
Calcul de valeur_de_décision( Wi): étape 1
Arbre W1
1
S1:1
S1S2: 0*
Le GB N°1 propose l’attaque (valeur 1)
S1S4:1S1S3:1 S1S5:1 S1S6:1
S2:1* S3:1 S4:0 S5:0 S6:1
S5S2: 1* S5S4:0S5S3:0 S5S5:0 S5S6:0
Valeur
0 1 1 1 1 1 0 0 0 0
Valeur majoritaire =1 Valeur majoritaire =0
0* 1 0 1
![Page 46: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/46.jpg)
Question: quelle est la décision?
0 ou 1???
Réfléchir au cas où il n’y aurait pas de traître…On ne peut rien décider également! Ici
Sinon 1 si on peut calculer 1 ou 0 si la majorité existe Sinon on prend la valeur par défaut (0 dans ce cas)
![Page 47: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/47.jpg)
Algorithm probabiliste de GB
Due à Michael O. Rabin Utilise probabilité pour dépasser les GB
![Page 48: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/48.jpg)
Algorithme de Rabin, hypothèses
Serveur d’authentications, Dealer: un ps non fautif Partage d’un secret Asynchrones système Phase Local horloge p(i) Nombre maximum de fautes f Probabilité d’erronée réponse
![Page 49: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/49.jpg)
Schéma
Pour k=1 à R fait Vote (k) Loterie(k) Décisions(k)
Fin pour
![Page 50: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/50.jpg)
Vote
Distribuer signe(msg(i),k) Recevoir (msg(j),k) Jusqu’à n-t msg reçus Temp(i)=major(reçus) Count(i)
![Page 51: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/51.jpg)
Loterie
Dealer: choisisse aléatoirement un secret sk={0,&} calcule Ei(k) pour partage sk Distribue signe(Ei(k))
Processus Requise Ej(k) Attende t reçus Calcule sk
![Page 52: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/52.jpg)
Décision
S=sk Si (s=0 et n/2<count(i)) or (s=1 et n-2t< count(i)) Msg(i)=temp(i) Else Msg(i)=« système fautif »
![Page 53: Consensus distribué. Le problème du Consensus MB - LRIA](https://reader034.vdocuments.pub/reader034/viewer/2022051014/551d9da6497959293b8d7ba2/html5/thumbnails/53.jpg)
Bibliographie
The Byzantine Generals ProblemL.Lamport, R.Shostak, M.Pease
ACM TOPLAS Vol.4, No.3, July 1982, pp.382-401
Randomized Byzantine GeneralsMichael O. Rabin
IEEE. 1983.