Bachelor/Master Thesis

Evaluating the B3 Condition in Asymmetric Quorums

One important topic in distributed computing, and more recently in many blockchain protocols, is trust. The question is how a process that participates in a distributed protocol can specify which other processes it trusts to be honest. Several models have been proposed. A very classic one is to assume that at least a threshold (often 2/3) of the participants is honest [1]. A more expressive option is to define subsets of the participants (called Quorums) and assume that at least one of them will be honest [2]. Finally, under the Asymmetric Trust model, every process is free to choose the combinations of other processes it trusts (called Asymmetric Quorums). In other words, each process can define its own trust assumptions [3].

According to the literature, for an Asymmetric Quorum System to be well-defined - i.e. to guarantee that it can safely be used in a distributed protocol - it needs to fulfil the so-called “B3-Condition” [3]. Informally, this states that the trust assumptions of the processes must be such, that any two of them trust some common processes. The object of this thesis is to implement a tool that, given a specific Asymmetric Quorum System - that is the trust assumptions of all processes - checks if this condition holds. Given the large number of different combinations that have to be tested, this is not a trivial problem. Finding an algorithm that can work with large Quorum Systems is an interesting question. Any programming language can be used.

[1] The Byzantine Generals Problem

[2] Byzantine quorum systems

[3] Asymmetric Distributed Trust and this blog post:

Nature of the project: Theory 40%, Systems 60%.