Logo do repositório
 
A carregar...
Miniatura
Publicação

A Framework for Specification and Simulation of Consensus Protocols

Utilize este identificador para referenciar este registo.
Nome:Descrição:Tamanho:Formato: 
Alves_2022.pdf4.09 MBAdobe PDF Ver/Abrir

Resumo(s)

Consensus protocols enable the coordination between multiple machines, allowing them to maintain a replicated state, and are therefore crucial in building reliable, large-scale distributed systems such as blockchain technologies, which have seen a rise in popularity in recent years. However, these protocols are not written in stone, they are constantly evolving. For example, Ethereum is progressively migrating away from proof of work and towards a solution based on proof of stake. Another example is Tezos, where stakeholders are capable of proposing and agreeing on changes to the consensus protocol itself, allowing it to evolve over time. It is, therefore, necessary to develop tools to assist in this evolution. This thesis presents a framework to address the lack of specification and experimentation environments to develop consensus and blockchain protocols, and thus help researchers make informed decisions about the effects that certain design choices have on the behavior of these protocols. The framework is divided into two components, a simulator, and a graphical user interface. The simulator was built with a focus on extensibility and modularity, and allows users to simulate any family of protocols as well as parameterize multiple scenarios to study these protocols. For example, users can parameterize bandwidth limits, byzantine conditions such as message loss, periods of time when nodes are offline as well as adversarial behavior, and extract any number of statistics. The graphical user interface offers a more intuitive way to perform parameterizations of the protocol, topology, and simulated nodes. Furthermore, it processes the output of the simulator, enabling the analysis of the messages exchanged between nodes and state changes, and it generates graphs for all user-defined statistics produced by the simulator. The framework was validated by implementing a variety of protocols, such as Bitcoinlike, Algorand, Tenderbake, and Ouroboros. We demonstrate that the framework allows us to obtain, for example, realistic values for block interval and block propagation time for Bitcoin-like protocols. Furthermore, we show that the results obtained from studying the impacts caused by the block size on the duration of an Algorand round are equivalent to the results the authors of the protocol obtained through emulation.
Os protocolos de consenso permitem a sincronização entre múltiplas máquinas de forma a que estas armazenem um estado replicado, sendo assim cruciais no desenvolvimento de sistemas distribuídos de confiança e de grande escala, como é o caso das tecnologias de blockchain que têm ganho popularidade nos últimos anos. No entanto, estes protocolos evoluem constantemente. Por exemplo, o Ethereum tem vindo a adotar gradualmente uma solução baseada em proof of stake. Um outro exemplo é o caso da Tezos, onde os stakeholders podem propôr e votar em alterações ao protocolo de consenso em si, permitindo que este evolua ao longo do tempo. É assim importante desenvolver ferramentas que assistam esta evolução. Esta tese apresenta uma framework para combater a falta de ferramentas de especificação e experimentação para desenvolver protocolos de consenso e de blockchain, de forma a assistir investigadores nas decisões que necessitam de realizar no desenho e desenvolvimento destes protocolos. A framework encontra-se dividida em duas componentes, um simulador e uma interface gráfica. O simulador é modular e extensível, permitindo que utilizadores simulem qualquer família de protocolos, e permite o estudo dos mesmos através da parameterização de diferentes cenários. Por exemplo, um utilizador pode definir limites de largura de banda, condições bizantinas como perda de mensagens, períodos de tempo em que certos nós estão offline, existência de nós maliciosos, bem como extração de diversas estatísticas. A interface gráfica disponibiliza uma forma mais intuitiva de parameterizar todos os componentes da simulação. Para além disso, processa os ficheiros produzidos pelo simulador, de forma a possibilitar a análise das mensagens trocadas entre nós e das mudanças de estado, e gera gráficos para todas as estatísticas produzidas pelo simulador. A framework foi validada implementando diversos protocolos, nomeadamente Bitcoinlike, Algorand, Tenderbake e Ouroboros. Foi demonstrado que a framework permite obter valores realistas para o intervalo entre blocos, e tempo de propagação de blocos. Foi também demonstrado que os valores obtidos no estudo do impacto causado pelo tamanho dos blocos na duração de uma ronda de Algorand são equivalentes aos resultados que os autores do protocolo obteram por emulação.

Descrição

Palavras-chave

Contexto Educativo

Citação

Projetos de investigação

Unidades organizacionais

Fascículo

Editora

Licença CC