A Proposal of Blockchain-based Electronic Voting System
Some governments have already implemented electronic voting systems and use them for parliamentary elections. These include the Estonian e-voting system ; the D.C. Digital Vote-By-Mail System(DVBM) ; and Civitas . Since Estonia is considered a leading country in e-voting systems and has several years of practical experience, we are using that system as our baseline of a real, working e-voting system in this paper.A. Estonian E-Voting SystemEstonia has been using its e-voting system since 2005 and successfully uses electronic voting for all of their elections. National ID cards are used for voter authentication.  Despite being widely used, the voting system still has some vulnerabilities, notably to state-level attackers. A state-level attacker is powerful enough to perform timing attacks by having access to major parts of the network and having the capacity to log and analyze messages. A summary of the features of the Estonian e-voting system can be found in [17, Table 4.1]. Based on the table, the Estonian e-voting system is a centralized e-voting system with dedicated servers in one data center. Also, it has so far not allowed the public to verify the tallying result after an election finishes.
A blockchain is a distributed database, where the complete data is shared among all participants in the network. Data, which is supposed to be stored in this database, is packed into blocks with a defined maximum size and verified with a specific hash. A blockchain secured by the “proof of work” scheme dictates that this hash must fulfill some hard-to-achieve property, e.g., having a certain number of leading zeros, a number which may increase or decrease depending on the how fast blocks are created . To achieve this, the participants add a nonce to the block, an essentially meaningless number, and try to find the correct hash by modifying the nonce between attempts to create a block with a hash that fulfills the proof-of-work condition. When such block is created, it may be sent to the network which will then accept it, append it to the chain of blocks, and work may then starts on creating a new block of data. The process is diagrammed in Fig. 3. The process of packing data into blocks and performing proof-of-work is called mining. Each block also contains a reference to the hash of the previous block so that, if any data gets changed in a previous block, the change would cascade through the list of blocks, giving them all new, invalid hashes.A discoverer, who finds the correct hash for some packets, is granted some incentive. The amount of these granted incentive is controlled by the protocol.Data in the blockchain is represented as transactions be-tween two or more users. Since all transactions are public, each user knows data of all other users. Before the transactions are added to the blockchain, the inputs of the transactions
There are two main ways to participate in maintaining the network:1) By setting up a full node, which means having the complete blockchain locally stored. These nodes verify that the contents and hashes of the blocks conform to the protocol, which ensures the blockchain’s integrity. In the case of Bitcoin, the verifiers ensure that no illegal transactions are made and that a miner has performed a correct proof of work. They also exchange blocks in the blockchain with each other so that everyone may keep a common state. It is necessary to have an active internet connection to participate. 2) Mine new transactions and find new hashes to generate new blocks. If a correct hash is discovered, it is sent to the network and can be verified by the full nodes. D. Why Blockchain for E-Voting System? A blockchain has several advantages, which make it a robust and secure alternative to other databases:high availability: Completely distributed with many nodes storing the complete database.verifiability: Each block contains the hash of its previous block and is appended to the blockchain. Everyone can calculate the hash and verify them.integrity: It is hard to alter an older value in the chain, since all following blocks have to be re-calculated, which needs much computational power due to the proof-of-work.
As we are setting Estonian e-voting system as our baseline system, we are going to qualitatively compare it with the proposed system mainly on its availability and universal verifiability. In terms of availability, our proposed blockchain-based e-voting system can handle adverse conditions, such as natural disasters or physical attack on centralized systemservers. By the nature of blockchain, all participants (nodes) in the blockchain network have roughly the same database. Any successful attacks on some of the nodes will not dismiss the whole process of election or referendum. As long as a voter has access to the blockchain network, she can always vote. Therefore, It improves the availability of a voting system as it can handle adverse conditions by decentralizing the data.At the end of an election, an electoral commission can share the election secret key, SE. Thus, anyone is able to open the encrypted messages which contain the ballot and verify the result of the election by herself. This is also one advantage that the Estonian e-voting system does not provide .Ideally, voters are also the miners in the blockchain. If there are more voters participate in mining the blocks, the system becomes more decentralized and secure. However, there is still no incentive for the voters in our current proposal except the ability to vote without going to a voting center. In that case, government can also help mining the blocks as we discussed in Sect. IV that it is very difficult for an attacker to tamper votes.In terms of coercion, our system reduces coercion as it allows voters to multi-vote.A voter can vote freely after the coercion disappears as only the last vote counts.This is a common problem that needs to be solved in electronic voting systems as a trade-off of not coming to a voting center.Our proposed system needs many things to be done on the voter’s side, such as key-pair generation, message encryption, hash calculation, data signature, and sending the transaction to the blockchain network. It is not easy to use for people in general. However, letting a third-party do these procedures may compromise the proposed system. For example, a third-party may keep a voter’s secret key if the voter let the third-party do key-pair generation for the voter.Our system relies heavily on the trust of the electoral commission side. The electoral commission can relate voters and their choices because voters register their public keys with their IDs to the electoral commission. The electoral commission also holds the election secret key, let it able to see the message created by voters. However, election secret key leakage can give massive damage to the election itself as it allows people to see the partial result of the election. This leakage can lead to the discontinuation of the election. Therefore, the electoral commission needs to protect the election secret key.Verification time of a vote depends on the voting system protocol. In our system, we have not decided the protocol for mining a block in details. This protocol determines the time to create a block. A voter needs wait for some blocks to be confident that her vote is collected and written inside a particular block.