# Electronic Voting System Using an Enterprise Blockchain
## 1 Introduction  
A voting system implements a mechanism to choose between various options based on the decision of the voters; voting can be used in political elections, in companies, associations, even in organizational events. The adoption of a voting system depends on the needs and resources of the implementer. When considering a voting system, some critical factors must be taken into account [1]; otherwise, the voting process may be compromised. Among such factors one finds: voting untraceability, which refers to a vote not being traced back to the actual identity of the voter, ensuring that they are secure and confidential [2]; precision, or a system's ability to count votes accurately; unchangeability, which ensures that the system cannot be manipulated to favor one party over another; verifiability--since the entire electoral process must be verifiable, the system should have the capability to check a vote and determine if a vote has been altered; receipt-freeness, since it might be desirable that a voter does not create a receipt that shows how they voted [3, 4, 5]; dispute-freeness, so anyone can verify that the protocol runs correctly and that each voter acted according to the rules of the protocol; accessibility, to ensure that the voters cast their vote easily and accessibly; and decentralization, so the system does not allow a single entity to control the counting of votes and determine the outcome of an election. There are some electoral processes where the voting untraceability property is not necessary; forexample, in scenarios when the information of \"who\" voted \"for whom\" or \"why\" is in the public domain. Voting security is a matter of interest to any company, institution, or country considering its use, especially when it comes to voting for a political candidate, a law or regulation. Thus, should one continue to rely on centralized voting systems? To replace a conventional system with a new voting system, it is essential to limit fraud and make the voting process attributable and verifiable [1; 6]. What would happen if, instead of allocating long hours and many people for manual vote counting, there was a blockchain-based application, recording the vote of each person, ensuring that double voting is not possible, and guaranteeing its unalterability? With the rise of Bitcoin and the increased popularity of other crypto systems like Ethereum, many institutions and people, in general, have been gaining knowledge about the key benefits that come with blockchain technology. Among such benefits, there is the possibility of developing decentralized apps that include cryptocurrencies and create the capability of managing industries' supply chains, financial systems, games, and other industries and scenarios. Electronic voting is one of the scenarios the scientific community tries to improve to increase integrity, anonymity, and non-repudiation. All those are fundamental requirements for a voting system, and blockchain may help achieve them that [7; 8; 9; 10; 11; 12; 13; 14; 15; 16]. The main contribution of this paper is to present an alternative for participatory management processes, such as electronic voting, focusing on the following core values: trust, transparency, and immutability. Using Hyperledger Fabric as a framework, the paper describes the design and the proof of concept to a system that can be adapted to more than one electing scenario, integrated with a mechanism to protect cryptographic artifacts from users and network nodes. This article is structured as follows: Section 2 presents simple definitions for blockchain and Hyperledger Fabric and exposes some of its main features and components. Section 3 explains some of the challenges related to the implementation of a voting system using blockchain and why Hyperledger Fabric was chosen as a framework to develop the proposed solution.