6 research outputs found

    Scalable Byzantine Reliable Broadcast

    Get PDF
    Byzantine reliable broadcast is a powerful primitive that allows a set of processes to agree on a message from a designated sender, even if some processes (including the sender) are Byzantine. Existing broadcast protocols for this setting scale poorly, as they typically build on quorum systems with strong intersection guarantees, which results in linear per-process communication and computation complexity. We generalize the Byzantine reliable broadcast abstraction to the probabilistic setting, allowing each of its properties to be violated with a fixed, arbitrarily small probability. We leverage these relaxed guarantees in a protocol where we replace quorums with stochastic samples. Compared to quorums, samples are significantly smaller in size, leading to a more scalable design. We obtain the first Byzantine reliable broadcast protocol with logarithmic per-process communication and computation complexity. We conduct a complete and thorough analysis of our protocol, deriving bounds on the probability of each of its properties being compromised. During our analysis, we introduce a novel general technique that we call adversary decorators. Adversary decorators allow us to make claims about the optimal strategy of the Byzantine adversary without imposing any additional assumptions. We also introduce Threshold Contagion, a model of message propagation through a system with Byzantine processes. To the best of our knowledge, this is the first formal analysis of a probabilistic broadcast protocol in the Byzantine fault model. We show numerically that practically negligible failure probabilities can be achieved with realistic security parameters

    An Algebraic Model For Quorum Systems

    Get PDF
    Quorum systems are a key mathematical abstraction in distributed fault-tolerant computing for capturing trust assumptions. A quorum system is a collection of subsets of all processes, called quorums, with the property that each pair of quorums have a non-empty intersection. They can be found at the core of many reliable distributed systems, such as cloud computing platforms, distributed storage systems and blockchains. In this paper we give a new interpretation of quorum systems, starting with classical majority-based quorum systems and extending this to Byzantine quorum systems. We propose an algebraic representation of the theory underlying quorum systems making use of multivariate polynomial ideals, incorporating properties of these systems, and studying their algebraic varieties. To achieve this goal we will exploit properties of Boolean Groebner bases. The nice nature of Boolean Groebner bases allows us to avoid part of the combinatorial computations required to check consistency and availability of quorum systems. Our results provide a novel approach to test quorum systems properties from both algebraic and algorithmic perspectives.Comment: 15 pages, 3 algorithm

    Cost Reduction With Guarantees: Formal Reasoning Applied To Blockchain Technologies

    Get PDF
    Blockchain technologies are moving fast and their distributed nature as well as their high-stake (financial) applications make it crucial to “get things right”. Moreover, blockchain technologies often come with a high cost for maintaining blockchain infrastructure and for running applications. In this thesis formal reasoning is used for guaranteeing correctness while reducing the cost of (i) maintaining the infrastructure by optimising blockchain protocols, and (ii) running applications by optimising blockchain programs—so called smart contracts. Both have a clear cost measure: for protocols the amount of exchanged messages, and for smart contracts the monetary cost of execution. In the first result for blockchain protocols starting from a proof of correctness for an abstract blockchain consensus protocol using infinitely many messages and infinite state, a refinement proof transfers correctness to a concrete implementation of the protocol reducing the cost to finite resources. In the second result I move from a blockchain to a block graph. This block graph embeds the run of a deterministic byzantine fault tolerant protocol, thereby getting parallelism “for free” and reducing the exchanged messages to the point of omission. For blockchain programs, I optimise programs executed on the Ethereum blockchain. As a first result, I use superoptimisation and encode the search for cheaper, but observationally equivalent, program as a search problem for an automated theorem prover. Since solving this search problem is in itself expensive, my second result is an efficient encoding of the search problem. Finally for reusing found optimisations, my third results gives a framework to generate peephole optimisation rules for a smart contract compiler

    Diversidade em sistemas de quóruns bizantinos

    Get PDF
    Trabalho de Conclusão de Curso (graduação)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2018.Vulnerabilidades podem comprometer todo um sistema quando adequadamente exploradas por um atacante, fazendo com que haja um prejuízo financeiro e até social a depender da aplicação. Uma forma de mitigar riscos de indisponibilidade do sistema em caso de falhas ou ataques são os sistemas de quóruns. Esses sistemas geralmente compreendem um conjunto estático de servidores que fornecem um registro tolerante a falhas de leitura/escrita acessado por um conjunto de clientes. Porém como os nós dos sistemas de quóruns são réplicas uns dos outros, possíveis falhas e vulnerabilidades presentes em uma instância do sistema estarão presentes em todo sistema. Para evitar esse problema há a possibilidade da implementação de diversidade, trazendo para o sistema alta disponibilidade e tolerância a falhas devido ao uso de sistema de quóruns e diversidade conjuntamente. O presente projeto visa aumentar a segurança de replicação através de sistemas de quóruns Bizantinos, por meio do emprego de diversidade na implementação das réplicas que suportam o sistema.Vulnerabilities can compromise a system when correctly explored by an attacker. It can lead to a financial loss and even a social loss depending on the application. One way to defend your system against unavailability caused by crashes or atacks are quoruns systems. These system compreends a group of servers that have one fault tolerant register for write/read operations and can be accessed by a group of clients. Because systems are replicas of each other, possible failures and vulnerabilities that exists on an instance of the system should be present on the whole system. To avoid that problem, there is the possibility to implement diversity on the system, making it highly available and fault tolerant due to the use of quoruns system and diversity together. This project aims to increase the security of replication through Bizantine Quoruns Systems using diversity when implementing the replicas of the system

    Formalização da reconfiguração de protocolos de consenso usando Alloy

    Get PDF
    Dissertação de mestrado integrado em Informatics EngineeringO protocolo de máquinas de estado replicadas (MER) é uma peça fundamental dos sistemas distribuídos. No centro deste protocolo estão os algoritmos de consenso, como o Paxos, usados para manter a consistência das MER. Todavia, os sistemas modernos não podem depender estritamente das técnicas de MER, estes devem também implementar estratégias de reconfiguração. Estas estratégias consistem em alterar a configuração do sistema, adicionando, removendo ou substituindo os processos que o compõem. Dada a sua complexidade, a implementação de protocolos de reconfiguração é muito suscetível a erros, daí que seja aconselhável a especificação, validação e verificação dos mesmos. No presente trabalho apresentamos uma especificação em linguagem Alloy do protocolo de reconfiguração Vertical Paxos e do protocolo de consenso Paxos. Além destes, modelamos o protocolo Multi-Paxos, o qual implementa uma MER. Estes protocolos estão intrinsecamente relacionados e a compreensão do primeiro é facilitada com o conhecimento dos demais. Atualmente, o Alloy é uma das linguagens de especificação mais populares, mas pouco explorada na modelação de algoritmos distribuídos e, tanto quanto sabemos, não existe ainda nenhuma especificação dos referidos protocolos em Alloy. O presente trabalho visa modelar e validar os referidos protocolos, bem como verificar as suas propriedades de safety, de modo a obtermos confiança nas especificações. Ademais, realizamos uma avaliação de desempenho de diferentes solvers e estratégias de decomposição nativas do Alloy, bem como uma breve análise comparativa com o TLA+.State machine replication (SMR) protocols have a crucial role in distributed systems. At the heart of these protocols are the consensus algorithm, such as Paxos, responsible for SMR’s consistency. However, modern systems cannot only rely on SMR thecniques, they must implement reconfiguration strategies, which consist in changing their configurations by adding, removing or replacing their processes. Due to its complexity, implementing a reconfiguration algorithm is error-prone, therefore its specification, validation and verification is advisable. In this work, we present a specification, in Alloy, of the reconfiguration protocol Vertical Paxos and the consensus protocol Paxos. Besides, we model the Multi-Paxos protocol which implements a SMR. These three protocols are intrinsically related and, once we are familiar with Paxos and Multi-Paxos, understanding Vertical Paxos becomes straigthfoward. Nowadays, Alloy is one of the most popular specification languages, but littleexplored in modeling and analyzing distributed algorithms. As far as we know, there is still no specification of these protocols in Alloy. The aim of this work is to model and validate these protocols, as well as to verify their safety properties, in order to obtain confidence in our specifications. Furthermore, we evaluate the performance of different solvers and decomposition strategies. Finally, we carry out a brief comparative analysis with TLA+
    corecore