# A P2P Scheme for Debating and Voting with Unconditional Flexibility
## 1 Introduction  
Many e-voting systems have been developed over the last few decades [1, 2]. Most of these provide privacy, eligibility, verifiability, and other features needed in common elections, but they rely on the integrity and trustworthiness of single points of failure. This vulnerability derives from their centralized nature. If the servers are few, collusion or failure becomes feasible. If there are many, the process turns slow and inefficient (especially for small groups). A decentralized e-voting system may be the answer; nevertheless, this approach poses additional challenges to the common problems of centralized e-voting systems [2]. The role that central entities generally play (bulletin boards, votes validation, break traceability, and so on) becomes collective. Following this idea some traditional e-voting methods could be adapted to a P2P network. For example, a mixnet [3] can be composed of all the users, turning a centralized system into a fully decentralized one. Nevertheless, in a naive implementation, the failure of a single user disrupts the process, ballots must follow a fixed size and frame, and each voting session needs predefined periods in which all the ballots are collected before starting the decryption process. Some of these problems have been addressed in improved methods such as in [4] where users interact with mixnet nodes to verify the process, in [5] where a pseudorandom disclosure over the permutation is shown, or in [1, 6], where the use of threshold secret-sharing schemesimproves robustness. Nevertheless, the solutions take a substantial computational effort for every user and predefined periods are compulsory for every round of votes. Protocols that do not need mixnets [7] tend to incorporate homomorphic encryption instead [8; 9], but this property implies a predefined and established ballot, resulting in inflexible systems. As has been recently claimed in [10], it is difficult to find research related to decentralized e-voting. As far as we are aware, no such system has been designed that fulfills a minimum set of security requirements (privacy, eligibility, verifiability) along with flexibility. Early attempts come from the area of distributed systems which require synchronization and mutual exclusion in order to access shared resources. Examples of this kind of voting scheme are proposed by [11; 12]. Other voting systems based on P2P have been proposed as a solution to the problem of malicious peers [13]. Such systems, however, do not address the issues of privacy or eligibility. A field of interest is Byzantine fault-tolerant algorithms (BFTs). Anonymity in BFTs has been studied from different points of view, which are not exactly the case for e-voting systems. For example, Bitcoin has been compared to a BFT problem where participants are anonymous and it is solved by a proof of work [14]. But in this case participants have no constraints, they do not have to be members of any census. Privacy is also used as a tool in BEAT to avoid certain attacks [15], but only on the client side. In other paper, identities are checked by zero-knowledge proofs and devices could remain anonymous [16], but there are not published results. Therefore, it seem not easy extrapolate BFT models to e-voting. As a response to these issues, a set of e-voting schemes called \"boardroom voting protocols\" have been developed [17]. For example, [PERSON] [18] proposed a scheme in which every user broadcasts a pair of keys for the rest of the users who can then build a ballot with these keys and broadcast them in such a way that the product of all the ballots contains the tally. This scheme was improved in [19; 20; 21], but cannot avoid the homomorphic nature of these methods, which results in inflexibility. A solution to this problem is provided by [22], which uses a mixnet approach to introduce more flexibility into the ballot design by allowing priority ranking and write-in ballots.