consensus distribué. le problème du consensus mb - lria

Post on 04-Apr-2015

117 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Consensus distribué

Le problème du Consensus

MB - LRIA

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)

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)

Notion de fautes

Fautes de liens de communications Fautes de processus

Pannes franches Pannes de type GB

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

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

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

Une solution au consensus polynomial en présence de pannes franches

Solution due à Dolev et Strong (1983)

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

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

Algorithme

Comportement de l’algorithme

V1

1 étape

V1 V2 V3

V4 V5

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).

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

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.

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

Solution exponentielle en nombre de message au consensus en présence de pannes franches

Solution due à

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

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é

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

A la seconde étape (pas de pannes franches)

encore un échange de messages S1

S3

S2

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…

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

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

Pour S1

Arbre W1

S1:V1

V1

S2:V2 S3:V3

S1S3: V1S1S2:V1 S2S1:V2 S2S3:V2 S3S1:V3 S3S2:Null

S2S2

Pour S3

Arbre W3

S1:V1

V3

S2:V2 S3:V3

S1S3: V1S1S2:Null S2S1:V2 S2S3:V2 S3S1:V3 S3S2:Null

S2S2

Pour S2 …panne

Arbre W2

S1:V1

V2

S2:V2 S3:V3

Preuve de validité

Technique (3 lemmes à établir)

La personne intéressé se réfèrera aux documents et à la bibliographie [Lynch 1997]

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)

Généraux Byzantins

Solution due à Lamport, Shostak et Pease (1982)

Le problème

Notion de faute byzantine

F fautes, 3F+1 participants ou si n généraux, il ne faut pas avoir plus de n/3 traitres

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).

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é

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

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

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

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

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

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

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( )

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

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

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)

Algorithm probabiliste de GB

Due à Michael O. Rabin Utilise probabilité pour dépasser les GB

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

Schéma

Pour k=1 à R fait Vote (k) Loterie(k) Décisions(k)

Fin pour

Vote

Distribuer signe(msg(i),k) Recevoir (msg(j),k) Jusqu’à n-t msg reçus Temp(i)=major(reçus) Count(i)

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

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 »

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.

top related