Dissertação

ByzPlug: Reliability Testing of BFT Systems EVALUATED

Muitos sistemas dependem de protocolos tolerantes a falhas bizantinas (BFT) para decisões descentralizadas ou replicação de dados. Esses protocolos enfrentam o desafio de lidar com participantes ou sistemas externos que podem se comportar de maneira arbitrária, causando desvios no comportamento esperado. Além disso, traduzir a especificação de um protocolo para uma implementação funcional é uma tarefa complexa que apresenta desafios como a concorrência. Muitas especificações teóricas não consideram esses detalhes práticos, criando uma lacuna substancial entre o design e a execução, o que pode resultar em bugs. Por isso, provar formalmente a correção da especificação de um protocolo não é suficiente para garantir sua confiabilidade em cenários reais. Métodos tradicionais de teste, como testes unitários, também falham em capturar a ampla gama de comportamentos arbitrários. Assim, ferramentas de injeção de falhas são essenciais para avaliar a robustez de implementações de protocolos BFT, simulando possíveis comportamentos bizantinos. Este trabalho apresenta o ByzPlug, uma ferramenta agnóstica ao protocolo que testa implementações BFT ao interceptar e manipular comunicações no nível de processos, via UDP/IP e TCP/IP, sem exigir modificações no código-fonte. O ByzPlug permite simular perda, repetição, atraso e modificação de mensagens com base em informações específicas do protocolo. Testamos o ByzPlug em uma implementação do protocolo HotStuff SMR, identificando uma violação de segurança, e avaliamos sua sobrecarga em métricas como uso de CPU, taxa de transferência e latência. Os resultados demonstram que o ByzPlug oferece total observabilidade da comunicação, com sobrecarga moderada.
Consenso, Tolerância a falhas bizantinas, Chaos Engineering, Injeção de falhas, Reproducibilidade.

novembro 11, 2024, 14:30

Documentos da dissertação ainda não disponíveis publicamente

Orientação

ORIENTADOR

Miguel Ângelo Marques de Matos

Departamento de Engenharia Informática (DEI)

Assistant Professor