## LSU Doctoral Dissertations

#### Degree

Doctor of Philosophy (PhD)

#### Department

Computer Science and Electric Engineering

Dissertation

#### Abstract

Blockchains are simple data structures, containing transactions organized into blocks, in which each block points to a previous block using its hash. Thus, by following the chain, we can follow the history of transactions. Blocks are added to the chain through a consensus mechanism. Byzantine Fault Tolerant (BFT) consensus protocols that were designed before blockchains were introduced are usually considered appropriate for use in small scale networks of size 10-20 replicas. Blockchains have changed this trend as the blockchain networks usually require a larger number of replicas and classic BFT protocols cannot provide acceptable performance in large networks. One of the main issues that causes performance degradation in blockchain networks is $n\times n$ message complexity. With a large network size $n$, we will have a quadratic number of messages and transmission and processing of such a large number of messages can cause a performance bottleneck. There have been proposals to improve the message complexity of these protocols, but the solutions do not guarantee consistent performance. As the number of failures in the network reaches a failure threshold, these protocols switch to $n\times n$ message complexity, causing performance delays. Moreover, when BFT protocols are used in the context of blockchains it is possible for a malicious primary node to prevent at most $n/3$ replicas from receiving blocks. To guarantee liveness during the view change process, these replicas need to be updated. A malicious primary will not update these replicas for long time to force consensus protocol stuck in view change. This is an attack vector that can be misused by a malicious primary to cause denial of service. In this research we have addressed each of the above mentioned problems by proposing novel BFT consensus protocols. Our first solution, the window based BFT protocol, reduces the $n \times n$ message complexity to $n \times f'$, where $f'$ is the actual number of Byzantine replicas in the network. This performance gain is achieved without scarifying the latency. Our second approach, the Proteus protocol, executes the expensive consensus protocol on a small subset ($c$) of the $n$ replicas. It guarantees consistent performance regardless of the number of failures encountered in the network with message complexity of $O(c \times n)$. Moreover, Proteus does not allow a malicious primary to perform denial of service attacks over large number of correct replicas, as all replicas receive messages (either through normal protocol execution or through history synchronization) without affecting the overall message complexity. It should be noted that, we not only designed, developed and theoretically proved correctness of the proposed protocols, but we also implemented these protocols and tested them over large-scale networks to show feasibility of our proposed algorithms.

6-12-2019

#### Committee Chair

Busch, Konstantin