Keywords

1 Introduction

Election security is a concern of national security in any democracy. For more than a decade, the computer security industry has investigated the possibility of an E-voting system [1], to lower election costs while preserving and improving election security. Since the commencement of democratically electing candidates, the voting system has been based on pen and paper. A new election technology must replace the traditional pen and paper approach to eliminate fraud and make the voting process traceable and verifiable [2]. This is where blockchain technology comes into the picture. Blockchain provides distributed decentralized data sharing among authorized users in a network [3]. Blockchain consists of collections of blocks, each block connected with the previous block and form like a chain [4].

These technological elements use modern encryption to provide a level of security equal to or greater than any other database. Several blockchain-based E-voting systems have recently been built by utilizing the technology’s inherent capabilities.

2 Background and Literature Review

When Satoshi Nakamoto invented the first cryptocurrency, Bitcoin, in 2008, he introduced blockchain technology. The bitcoin blockchain technology combines a decentralized public ledger with a proof-of-work (PoW)-based stochastic consensus system, as well as financial incentives, to create a completely ordered sequence of blocks known as the blockchain. Nick Szabo coined the term “smart contracts” in the 1990s, describing them as “a set of promises, stated in digital form, including protocols within which the parties fulfill on these promises” [5]. A smart contract is a code that expresses logic, and it can operate as an unconditionally trusted third party [6]. It cannot be changed once it has been written, and all network members must check all stages. The beauty of smart contracts is that anyone with the ability to set up a blockchain node to confirm the results.

2.1 Blockchain Architecture’s Basic Elements

The blockchain provides various basic components. Figure 1 describes the major components of blockchain are as follows.

Fig. 1
The flowchart of components of blockchain shows node consensus chain miner transaction and block as its components.

Blockchain components

  • Node: Node is a user or computer in the blockchain network.

  • Transaction: It’s a unit of records in the blockchain network.

  • Block: It’s a collection of data that are used to complete network transactions and distributed to all nodes.

  • Miners: in blockchain miners play a very important role to approve the transactions in the network [7].

  • Chain: A sequence of blocks in a specific order.

  • Consensus: A group of instructions that work together to complete blockchain procedures.

2.2 Blockchain Architecture’s Crucial Characteristics

For all sectors that use blockchain, the architecture has numerous advantages. As shown in Fig. 2, there is a range of embedded characteristics:

Fig. 2
The flowchart of blockchain characteristics shows cryptography, immutability, provenance, transparency and anonymity as its characteristics.

Blockchain characteristics

  • Cryptography: It is used to provide security to each transaction in the blockchain network. Immutability: No changes or deletions can be made to blockchain records [2, 4, 8].

  • Decentralization: All participants of the blockchain network may have access to the complete distributed database. As seen in the core process, a consensus method enables system control [9,10,11,12].

  • Anonymity: Blockchain provides an address to every participant in the network [13].

  • Transparency: It means that the data in the network cannot be manipulated. It is not possible since erasing the blockchain network would need enormous computational resources.

2.3 Review of Related Literature

In recent years, several publications have been published that have highlighted various security and privacy issues in blockchain-based E-voting systems. Here, we present a few blockchain-based electronic voting techniques below:

Shahzad et al. [14] were proposed BSJC proof of completeness as a trustworthy electronic voting technique. They utilized a process model to describe the overall structure of the system. This approach addresses various security and privacy issues but this approach is capable of the small-scale election. However, a slew of other issues has been raised. The polling procedure may be delayed if the block is generated and sealed on a big scale [15,16,17,18,19].

Yi [20] presented the BES approach for proving security in an E-voting system in a P2P blockchain-based network. To prevent vote tampering, distributed ledger could be used. On UNIX systems in a peer-to-peer network, the system was tested and designed. Counter-measurement assaults are a key difficulty in this strategy. A distributed procedure, such as the use of secure multipart computers, may be able to solve the problem. However, if the computation function is sophisticated, and there are too many participants; computing costs become increasingly substantial and possibly prohibitive [21].

3 Deployment of the System

Our voting mechanism is compatible with any blockchain-based platform that supports smart contracts and achieves the same level of security [4, 15]. Other factors that may influence platform selection include vote latency and flexibility requirements [3]. In our scenario, we use the Hyperledger Fabric blockchain technology, which is based on Byzantine Fault Tolerance (BFT), to deploy our voting system in a real-world setting. Our approach supports the four requirements listed below.

  1. 1.

    Encode and decode messages

    We need to encrypt the candidate ID before voting begins so that it is suitable for the vote count [22].

  2. 2.

    Our voting mechanism does not depend on a centralized trustworthy entity to count polls and announce results

    The existing E-voting systems rely on a centralized third party to evaluate the polls and produce the results. In this approach, we use a blockchain decentralized approach to evaluate the ballots and produce the results [23].

  1. 3.

    Our voting technology is platform agnostic and offers extensive security protections

    Our voting method is secure because it uses cryptographic approaches offered by our voting protocol; as a result, this approach is used in any smart contract-supported blockchain-based platform [24]. In this approach, Paillier technology is used to conduct the polling and provide privacy without revealing voter information, which helps us meet our goal of offering total security [25].

    • Generate Key: by using this function the voting administrator a secret key for every voter based on their public key [26].

    • Encryption: It is necessary to encrypt the plaintext ballot. This function is used to encrypt the voter polls during the blockchain network [27].

    • Decryption: By using this function, the voting administrator decrypts the votes polled by the voters and publishes the results.

    • Proof-of-work: This function is used to generate proof-of-work that indicates only authorized voter can encrypt their vote.

    • Decryption validates proof-of-work: By using this function, the voting administrator generates key-value pair to decrypt the votes and publish the polling results [20].

      This function uses a linkable ring signature method to validate the voters and decrypt the votes, even if the owner of the ballot cannot be traced.

    • Linkable ring signature (LRS): LRS is used to preserve voters’ privacy. By using this method, we use short linkable ring signature (SLRS), which eliminates constraints on the voting system. This LRS approach contains the following features: (1) check whether the voter is a valid user or not, (2) voters can verify whether their votes are polled by blockchain network or not, (3) to provide scalability maintain signature size, and (4) avoid double/duplicate voting. We use the tuple function in our voting system (Setup, KeyGen, Sign, Verify, Link).

  2. 4.

    Our voting platform is adaptable and expandable: We offer two optimized SLRS key accumulation methods that allow voting scalability and achieve latency in large-scale voting.

4 Voting Protocol

Figure 3 describes the architecture of the E-voting system; the voting system comprises various voters, vote administrator (VA), front-end smart contract server (SCA), and numerous smart contract validation nodes. A smart contract validation node’s job is to accurately simulate the execution of smart contract codes. The validation nodes for practical voting could be controlled by many stockholders, implying that all ballots on the blockchain have been confirmed by various stockholders.

Fig. 3
The cycle of E-voting system has front end smart contract server smart contract validation node 1 voter adminstrator smart contract validation node n all connected to one another.

Blockchain-based independent E-voting system

4.1 Voting Process Entities

In our voting system (shown in Fig. 3), there should be four entities participating, with the following details:

  • Smart Contract Administrator (SCA): SCA can access the blockchain platform and apply or terminate smart contracts. The membership service in Hyperledger Fabric authorizes this account, and the authority to apply or dismiss the smart contract is provided. In this approach, we required at least one SCA to install the voting smart contract.

  • Voter Administrator (VA): The VA manages the votes by establishing polling settings, initiating the counting and results in publication phases. SLRS is used to prevent administrators from associating ballots to users, although Hyperledger has underlying means for authenticating users.

  • Smart contract: A smart contract’s job is to (1) store encrypted ballots. (2) Check the ballots for legitimacy. (3) Count the ballots that have been encrypted. (4) Verify that the vote results are valid. (5) Make the vote results public and gives a platform for people to check the results of the election.

  • Voter: Voters are those who can exercise their right to vote. Before anyone can vote, individuals must first register with the voting system.

Figure 4 describe the E-voting system process using blockchain.

Fig. 4
The flowchart of E-voting process starts with admin, initiate election method then initiate vote method then account validation method and then comes vote cast method and at last sends smart contract to blockchain.

Blockchain-based E-voting process

4.2 Registration of Voters

The user must register his identification using this voting mechanism. The registration information could include: (1) Email Id and password, (2) voter Id and password, (3) an administrator-sent invitation URL with the desired password. After passing the savvy agreement’s personality check, the client can sign in with the ideal secret key to download the SLRS param and the executive public key, then, calls the KeyGen() function to produce the SLRS key pair (); then the user transfers the public key to the ballet. If his SLRS public key is acknowledged, the shrewd agreement puts his public key on the blockchain, finishing his/her enrollment step.

5 Conclusions

E-voting is a method of casting and tallying votes that use computers. It is a time- and cost-effective method of conducting a voting operation, with the advantages of large amounts of data in real time and a high level of security. It takes out the requirement for citizens to go to surveying areas or print voting form papers since they can cast a ballot from any place with Internet standards that have been a battle. In the existing E-voting system, all participants depend on a third-party entity for analysis and publishing of the voting results. To resolve the issue that the current blockchain casting a ballot framework needs thorough security highlights, and most of them are stage subordinate, we proposed a blockchain-based democratic framework in which electors’ protection and casting a ballot accuracy are ensured by homomorphic encryption, linkable ring marks, and proof-of-work between the citizen and blockchain. Our approach eliminates security attacks and eliminates the constraints on the number of voters and candidates supported during polling and provides secure architecture. Our voting system’s correctness and security are examined. This approach provides that our voting method performs well even in large-scale voting.