Click here to load reader

The Byzantine Generals Problem Dione Taschetto Rafael Tweedie Campos

  • View
    104

  • Download
    0

Embed Size (px)

Text of The Byzantine Generals Problem Dione Taschetto Rafael Tweedie Campos

  • Slide 1
  • The Byzantine Generals Problem Dione Taschetto Rafael Tweedie Campos
  • Slide 2
  • Introduo Sistemas de computao podem confrontar-se com diferentes situaes conflitantes durante a execuo de um sistema; Um sistema de computador confivel deve ser capaz de lidar com a falha de um ou mais dos seus componentes.
  • Slide 3
  • Introduo Supe-se que, normalmente quando um componente falha ele se comporta de maneira arbitrria. O problema de alcanar um entendimento, onde os componentes podem falhar de maneira arbitrria, chamado de Problemas Gerais Bizantinos.
  • Slide 4
  • O Problema Considere um sistema distribudo com vrios ns, onde eles trocam informaes entre si atravs de mensagens. Os ns podem falhar, e um n defeituoso pode mandar valores diferentes a ns distintos, relativos mesma informao.
  • Slide 5
  • O objetivo O objetivo bsico atingir um consenso entre os ns no defeituosos sobre os valores corretos. Cada nodo deve tomar uma deciso baseada nos valores recebidos dos outros nodos, e todos os ns no defeituosos devem tomar a mesma deciso.
  • Slide 6
  • O Consenso Distribudo O Consenso um problema fundamental em Sistemas Distribudos utilizado como mdulo fundamental de vrios algoritmos onde os processos precisam ter uma viso (ou ao) idntica. Exemplos: - para ordenao total de eventos (ou mensagens) - sobre o conjunto de processos no falhos/ativos de um grupo - colaborao entre agentes em sistemas multi-agentes
  • Slide 7
  • O Problema de Consenso Existem N processos, dos quais f processos apresentam falhas. cada processo Pi prope um nico valor vi D. todos os processos interagem para a troca de valores entre s. em algum momento, os processos entram no estado decided em que atribuem um valor para a varivel de deciso di (que no mais alterada) O valor de di uma funo dos valores vi fornecidos pelos N-f processos corretos.
  • Slide 8
  • Exemplo Algoritmo Consenso P1P2 P3 v3=NOK v1=OK v2=OK d1=OKd2=OK -P3 prope NOK, mas falha durante o consenso -Os processos corretos decidem por OK
  • Slide 9
  • Consenso - Principais Requisitos Terminao: Em algum momento, cada processo correto atinge o estado decided e atribui um valor varivel de deciso. Acordo: todos os processos corretos atribuem o mesmo valor para a varivel de deciso Integridade se todos os processos corretos propuseram o mesmo valor vi =v, ento qualquer processo correto em decided tambm ter decidido di =v Integridade (alternativa mais fraca depende da aplicao) o valor de di (i=1,2,..,N) deve ser necessariamente igual ao valor proposto por um Pi correto
  • Slide 10
  • O Consenso com falhas Se processos podem ter falhas tipo crash (omisso), ento a terminao no estar garantida, a menos que se detecte a falha. Se o sistema assncrono, pode ser impossvel distinguir um crash de uma mensagem que demora um tempo indeterminado. Se processos podem apresentar falhas arbitrrias (bizantinas), ento processos falhos podem comunicar valores aleatrios aos demais processos, evitando que os corretos tenham a mesma base de dados {v1,v2,..,vN}, para a tomada de uma deciso uniforme.
  • Slide 11
  • O problema dos Generais Bizantinos Invaso do imprio Bizantino pelos Turcos Os generais bizantinos devem concordar se atacam ou recuam; Os turcos tentam corromper os soldados; Os generais bizantinos so famosos pela sua traio; Os generais leais devem prevenir alarmes falsos; As mensagens so mandadas para todos os campos de batalha; Soldados corrompidos violam o protocolo; Soldados corrompidos no podem alterar as ordens de soldados leais.
  • Slide 12
  • Consenso Os generais devem chegar a um consenso se atacam ou se recuam. Se todos os generais bizantinos atacarem, a vitria certa; Se nenhum general bizantino atacar, o imprio sobrevive; Mas se apenas alguns generais bizantinos atacarem, ento o imprio ruir.
  • Slide 13
  • Tipos de Problemas Com um lder: O lder envia uma ordem para todos os participantes, e os participantes sem falhas, decidem se aceitam a ordem do lder ou se declinam, dependendo do n de participantes com falhas. Sem lder: Todos os participantes possuem um voto inicial, e no decorrer do processo os participantes sem falhas escolhem uma mesma sada.
  • Slide 14
  • Tipos de Problemas Problema Sncrono: A cada turno todos os participantes enviam e recebem suas decises. o algoritmo proposto para resolver o problema dos Generais Bizantinos para sistemas distribudos sncronos. Problema Assncrono: Cada participante livre para enviar e receber sua deciso, a hora que desejar. Em um sistema distribudo assncrono, impossvel atingir um acordo. Isto ocorre pois em tais sistemas no possvel distinguir se o nodo falhou ou est mais lento que os demais. Conseqentemente, um nodo falho pode bloquear o algoritmo de acordo, simplesmente por no enviar uma mensagem.
  • Slide 15
  • Solues e Limitaes Existem basicamente duas abordagens de protocolos: mensagens comuns mensagens assinadas
  • Slide 16
  • Protocolo Com Mensagens Comuns O Problema de Acordo Bizantino difcil porque a informao enviada por um nodo pode no ser correta. Assim, o problema pode ser resolvido somente se o nmero de nodos defeituosos no sistema for limitado. Com mensagens comuns impossvel resolver o problema, a no ser que mais do que 2/3 dos nodos sejam no falhos. Ou seja o nmero de nodos falhos deve ser menor que 1/3 do total de nodos. Para lidar com M nodos falhos necessrio 3M+1nodos para resolver o consenso.
  • Slide 17
  • Protocolo Com Mensagens Comuns Este protocolo supe um nodo livre de falhas que executa o protocolo corretamente, e que um nodo defeituoso pode se comportar arbitrariamente. Primeiramente deve-se definir precisamente as suposies sobre o sistema de encaminhamento de mensagens: 1. Toda mensagem que enviada por um nodo entregue corretamente pelo sistema de mensagens ao receptor (assegura que um nodo falho no pode interferir na comunicao). 2. O receptor de uma mensagem sabe qual nodo enviou a mensagem (assegura que existe um canal fsico dedicado entre dois nodos). 3. A falta de uma mensagem pode ser detectada (assegura que um nodo falho no vai travar o consenso, isso implementada atravs de timeouts, um valor default considerado).
  • Slide 18
  • Protocolo Com Mensagens Comuns Se uma mensagem enviada por um nodo no chega a seu destino, ou este nodo transmissor no envia a mensagem que deveria mandar, o nodo receptor usa um valor default (ex.:0). Este algoritmo funciona em rodadas, onde cada uma consiste na troca de mensagens entre ns.
  • Slide 19
  • Protocolo Com Mensagens Comuns Na primeira rodada, o transmissor envia valores para os outros (n-1) nodos. Os receptores no podem acreditar nos valores recebidos pelo transmissor, pois ele pode ser defeituoso. Assim, um nodo receptor primeiro determina os valores que os outros nodos receberam do transmissor. O valor da maioria assumido como o valor enviado pelo transmissor. Em outras palavras, cada receptor precisa comunicar os valores recebidos do transmissor (na primeira rodada) para os outros ns na segunda rodada.
  • Slide 20
  • Protocolo Com Mensagens Comuns Na segunda rodada, cada um dos receptores atua como um transmissor, e envia mensagens aos outros ns, exceto o transmissor e ele mesmo (n-2). Isto se repete recursivamente, onde em cada rodada um n envia mensagens para um conjunto cada vez menor de ns. Esta recurso necessria pois no se pode acreditar em nenhum n transmissor. A recurso acaba e a maioria dos valores recebidos tomada como sendo o valor correto em cada rodada.
  • Slide 21
  • Exemplo do Protocolo Com Mensagens Comuns General Traidor Indeciso resultado inconsistente Atacar Recuar Problema sem Resoluo
  • Slide 22
  • Exemplo do Protocolo Com Mensagens Comuns General Traidor Indeciso resultado inconsistente Atacar Recuar Problema sem Resoluo Recuar
  • Slide 23
  • Exemplo do Protocolo Com Mensagens Comuns 1 rodada traidor general 2 rodada Atacar Recuar
  • Slide 24
  • Protocolo Com Mensagem Assinada O problema torna-se fcil se for restringido a possibilidade de um nodo falsificar as mensagens. Isso pode ser feito quando um transmissor envia uma mensagem 'assinada'. A assinatura tal que qualquer alterao ao contedo da mensagem pode ser verificada, e assim um receptor consegue verificar se a mensagem recebida foi ou no alterada. A assinatura pode ser obtida utilizando tcnicas de criptografias. O consenso pode ser atingido por um nmero arbitrrio de nodos falhos. Ser apresentado um protocolo para satisfazer as condies de consistncia interativa, no qual um nodo pode enviar mensagens assinadas. Com mensagens assinadas necessrio que se tenha n>=m+2. Neste algoritmo, um nodo transmissor envia uma mensagem assinada para outros nodos. Um nodo adiciona sua assinatura s mensagens recebidas, e as transmite na prxima rodada para outros ns.
  • Slide 25
  • Protocolo Com Mensagem Assinada Se o nodo receptor for no falho, sua mensagem ter o mesmo contedo que a mensagem recebida do transmissor. Entretanto, se tiver falhado, ele deve tambm enviar a mensagem contendo o mesmo valor, ou no envi-la de forma alguma (o caso em que ele altera a mensagem e ento percebido pelos receptores pode ser modelado como no enviando a mensagem). Seja V o conjunto de valores (no mensagens) recebidos por um nodo. Se o transmissor livre de falhas, ento o conjunto de valores

Search related