The study of distributed voting protocols seeks to solve an easily stated problem, that of allowing networked voters to hold a secret-ballot election, presumably using cryptography. While many protocols have been proposed, each satisfying several desirable properties, algorithmic complexity was in general not a major consideration in the design of these protocols. Almost all distributed voting protocols proposed so far require a substantial amount of message passing and computation by a small number of authorities. As a result, these protocols are not particularly scalable.
In this paper, we explore the idea of hierarchical voting. Existing protocols use a flat voting structure, in which there is only one level of election authorities, and all voters report to all authorities. In our proposal, we allow for a hierarchical tree of voters. This reduces the number of messages required and lessens the computational load on the authorities and voters.
Depending on the requirements, it turns out that the addition of a hierarchical structure can either be done simply or with a fair amount of difficulty. If we think of the hierarchy as dividing a large election into smaller sub-elections whose tallies can be made public, then the problem is trivially solved. On the other hand, if we wish only to reveal the final overall tally, then a more complicated new protocol is needed. The new protocol must address several concerns, mostly having to do with verification of the intermediate authorities and maintaining voter privacy.
The organization of this paper is as follows. In Chapter 2, we will provide an overview of relevant research history and explore the cryptographic foundations which underlie distributed voting protocols. We will then describe these protocols in more detail and outline proofs of their correctness. In Chapter 3, we will present our new protocol, which we believe adds the scalability due to a hierarchical structure without sacrificing unduly any other desirable property. We will also consider how our solution can be applied to real-world network topologies, which in general do not provide the connectivity demanded by most distributed voting protocols. Finally, we will offer a comparison between our protocol and existing ones.