# Practical I-Voting on Stellar Blockchain
## 1 Introduction  
Modern democracy requires effective tools to allow citizens to interact with a government. One of the key elements of democracy is elections. Despite the rapid development of e-government services, this fundamental element of democracy is still not prevalent. Not many societies have successfully deployed e-voting systems. Switzerland and Estonia are examples of countries that successfully introduce alternative ways to traditional voting, especially with the usage of the Internet (i-voting). However, these are minor cases. The reasons for slow progress in the introduction of modern tools for democracy can be of a different sort, but the technology behind is still developing and cover wider areas of the functionality. This topic is also being researched for many years, especially in domains such as cryptography, which is an inevitable part of system security. Resistance to introducing digital solutions into the voting process lies--among others--in a lack of confidence in the technology. However, when credible systems that guarantee the proper use of electronic money already exists, the lack of trust in voting systems seems unreasonable, especially that they face similar problems. In connection with the technological maturity of digital money, in our approach, we used blockchain infrastructure to build an internet voting system meeting the requirements of voting systems. Each robust voting system, either traditional or digital, should satisfy obligatory requirements. Depending on source [1; 2; 3; 4; 5; 6], the set of requirements may vary, but most of them intersects on following requirements:  
* **Immutability**: No one can change the vote after it was made. * **Verifiability**: Everyone should be able to verify if his or her vote has been counted correctly. * **Scalability**: The system should be able to handle large scale elections, both in terms of votes per second and voting costs. * **Authorization**: Only authorized voters can vote, and no one can vote more than once. * **Privacy**: Relation between voter and his vote must be kept in secret. Each voter must be sure about its vote privacy. * **Coercion resistance**: It should be illegal to sell or exchange votes. * **Fairness**: No partial results are available until the end of the election. After deeper investigation, it becomes clear that those requirements are hard to satisfy all together. Authorization require prior authentication, which stays in conflict with anonymity. To solve that problem, many systems (including our proposal) split the process of casting a vote into several stages, for example, Ques-Chain [7] uses setup stage, sign stage, and vote stage; Helios [8] uses ballot preparation and ballot casting stages. This split allows us to achieve each requirement in isolation. Especially the authentication can be performed in one stage, while the authorization and casting a vote in the other. Between the stages, the system can \"forget\" about the previous state by using mix-nets or blind signatures. Even though a user is authenticated, the act of casting a vote becomes anonymous, therefore achieving the privacy requirement. We present different methods of achieving privacy in Section 3.4. This paper proposes a system that satisfies the outlined requirements. Moreover, it brings into i-voting systems the following contributions:  
* It describes the i-voting system based on the Stellar blockchain network and its limited smart contract capabilities. * It describes the practical aspect of blockchain i-voting where a user is completely abstracted from blockchain technology used underneath; thus, no knowledge of wallets and key pairs are needed. * It describes the implementation of a blind signature over ed25519 to achieve voter privacy. * It describes a method of weighted votes, based on, e.g., company shares. Stellar is an open blockchain network based on a trust model with open membership. Its native cryptocurrency, Lumen (XLM), is a top ten cryptocurrency in market capitalization.