Blockchain-based System for E-Voting Using Blind Signature Protocol
Blockchain-based System for E-Voting Using Blind Signature Protocol
Signature Protocol
Julio César Pérez Carcı́a Abderrahim Benslimane and Samia Boutalbi.
Laboratoire Informatique d’Avignon (LIA), Avignon University, Avignon, France.
{julio-cesar.perez, abderrahim.benslimane}@univ-avignon.fr, [email protected]
Abstract—Reports of possible third-party interference in the transactions in a peer-to-peer network and is replicated on each
electoral process, unauthorized voting, disenfranchisement, and participating node.
technical failure raise questions about the transparency of
Blockchain essentially maintains a distributed ledger with-
GLOBECOM 2021 - 2021 IEEE Global Communications Conference | 978-1-7281-8104-2/21/$31.00 ©2021 IEEE | DOI: 10.1109/GLOBECOM46510.2021.9685189
978-1-728
• Public Verifiability: All parties involved in the voting consensus. Moreover, data leaks can be mitigated by
process (including those who witness the voting process) using the blockchain replicas stored at the other nodes.
can verify the entire process and outcome of the elections. • Immutability: Since all new records in the blockchain are
• Individual Verifiability: Every voter can check if his/her agreed upon by peers through decentralized consensus
vote was correctly recorded and counted. and each block contains a fingerprint (i.e., hash pointer) of
• Eligibility and Authentication : Guarantee that only eligi- the previous block, the blockchain is virtually impossible
ble candidates have access to the system. Each voter can to forge. Similarly, all previous records in the blockchain
cast his/her vote only once and there is no possibility to are immutable. To alter a previous record, an attacker
vote more than once. would have to compromise most of the nodes involved
• Fairness: In an voting system, no partial results should be in the blockchain network. Otherwise, even a one-bit
published before the voting period is over. This makes it change in the contents of the blockchain is easy to detect
impossible for voters to change their decision based on because the hash function produces very different results
the partial results. for records that differ by only one bit.
• Anonymity and privacy: No one can access the identity • Traceability and auditability: Each transaction stored in
of the voter in any case and at any time. In addition, the blockchain carries a timestamp (recorded at the time
voting must be secret and the unlinkability property must of the transaction) and the blocks are ordered chronolog-
be preserved (i.e., there is no link between voters and ically. Therefore, any user can easily trace and audit the
their ballots). origin of data elements in the blockchain.
In an e- voting system, the blockchain can store all valid
B. Blockchain Technology and verified ballots that come from eligible and authenticated
A blockchain is essentially a distributed ledger distributed voters. Once the ballots are stored in the blockchain, they can
over a peer-to-peer network. Each block (except the first block) be verified by the voter who cast them, and anyone else can
in a blockchain refers to the immediately preceding block also verify that they were cast correctly. In addition, because
(called the parent block) via a hash pointer, which is essentially of its decentralized nature, the blockchain can be considered
the value of a hash function of the previous block. Note that a secure third party. Moreover, any attempt to tamper with the
it is not possible to modify a block without being detected, stored ballots will be detected and corrected by the consensus
since the hash value of the modified block is significantly mechanism [1]. Therefore, blockchain can meet most of the
different from that of the same block without modifications requirements for e-voting systems.
[12]. Moreover, since the blockchain is distributed throughout C. Blind Signature protocol
the network, any change to the data of a block can be easily
A digital signature is a mathematical protocol for verifying
discovered by other nodes in the network.
the authenticity and integrity of a message. In blind signature,
When a new block (i.e., new records)is created, nodes in the however, the originator (Alice) performs a blind displacement
network participate in validating the block using a consensus of the message and sends the blinded message to the signing
protocol. This is a consensus method by which different nodes entity (Bob). Bob signs the blinded message and sends it back
in a network can agree on new data (or detect an anomaly). to Alice. She then unblinds the blind-signed message to obtain
The consensus protocol allows blockchain technologies to Bob’s signature [16].
validate the trustworthiness of the block in a decentralized Blind Signature Protocols generally has two basic security
and untrusted environment without requiring the authority of properties: Blindness and forgery resistance. Blindness is the
a trusted third party [13]–[15]. property where a malicious signer cannot determine the order
In summary, blockchain technologies have the following key in which two messages were signed. On the other hand,
characteristics [7], [12]: unforgeability does not allow an attacker to create a larger
• Decentralization: In traditional centralized infrastructures, number of signed messages than the number of interactions
data exchange is validated and authorized by trusted with the honest signer. A comparison of existing blind signa-
central entities. This form of centralization inevitably ture methods was presented in [10].
leads to additional cost, a performance bottleneck, and In the context of an e-voting system, a blind signature
a single point of failure of centralized service providers. protocol allows to break the link between voters and ballots.
In blockchain-based infrastructures, two nodes can ex- The voter can get a blind signature on a message from the
change data (i.e., transactions) with each other without a Election Authority. This signed message allows him/her to
centralized entity to authenticate, authorize, or intervene. prove his/her eligibility to the entity in charge of storing the
This reduces the cost of the service and the risk of a ballots. In the signed message, the signature of the authority
failure, and mitigates the performance bottleneck can be verified, but it is not known when the signature was
• Fault tolerance: Due to the decentralized nature and performed and who sent the message to the authority [17].
the fact that all nodes in the network have identical Therefore, the implementation of a digital signature can ensure
blockchain replicas, any failure or data leakage in the the privacy and anonymity (i.e., unlinkability of voter and
blockchain network can be detected through decentralized ballot) required for an e-voting system.
III. P ROPOSED SYSTEM phase must occur just before the voting process begins, and
In this section, we describe the proposed voting mechanism once it is completed, the voting time begins to expire (i.e., the
that leverages blockchain to provide integrity, verifiability, initial time of the voting process). Once the Genesis block is
and resilience while preserving voter anonymity and privacy generated and published, all voters can start the next phase.
through a Blind signature protocol. We divide the mechanism C. Authentication
into six processes: Registration, Initialization, Authentication, In this phase, each voter gets from the blockchain the list of
Cast the Vote, Verification and Tally. candidates and the public keys of the CA and the BN. Once
We consider that there are K candidates competing in an this information is received, each voter Vi conforms his/her
election, an unique identity Cj , ∀j ∈ {1, ..., K} is associated ballot Bi using Algorithm 1. In Algorithm 1, the candidate
with the j-th candidate. Assume that there are n participants
in the election and denote the i-th participant as Vi . We also Algorithm 1 Ballot Conformation Algorithm
consider the following entities: Input: Selected candidate for voter Vi {Ci }
• Central Authority (CA): In all voting, it is essential to Output: (P, λ)
ensure that only eligible voters can vote. A voter must 1: Select random integer l; 1 6 l 6 256 − dlog2 (K)e
authenticate with the CA, and receives a token to prove 2: N = ([vector with l zeros]||Ci ||[ random binary string])
his/her eligibility to vote. 3: Select random integer λ; 1 6 λ 6 256
• Blockchain network (BN): In our solution a private 4: Select a random point P = (x, y) of the line equation
blockchain stores the validated ballots. Therefore the y = λx + N
blockchain acts as a transparent ballot box. The BN is 5: return (P, λ)
composed of a predetermined number of nodes that, in
addition to storing the blockchain, will act as transaction elected by a voter Vi (i.e., Ci ) is masked and randomized to
validators. make a brute force attack more complex on the protocol. It
The system is based on asymmetric key algorithms. We also starts with a vector of zeros so that there is no ambiguity
denote the encryption of a message m using secret key k between two ballots. On the other hand, the ballot is divided
resulting in ciphertext M by M = Enc(m, k) and the into two elements namely, the slope (λ) and a point (P ) of
corresponding decryption operation by m = Dec(M, k). We a line, note that both elements are required to determine the
also use hash functions, a hash operation over message m is value of N . Once the vote conformation process is completed,
denoted by H(m) and results in a string of fixed length. For the voter Vi determines its ballot, (i.e., Pi , λi ). Then begins
the blind signature algorithm we denote the blinded, unblind, the authentication process with the CA using the token (i.e.,
signature, and Verification operation over messages m by T okeni ) acquired in the Registration stage. The idea here
Blind(m), U nblind(m) and BSign(m) respectively. We also once authenticated is that, once authenticated, each voter gets
denote the concatenation of message m1 and m2 by m1 ||m2 . the signature (blind) from CA over certain information, which
allows the voter to validate his/her vote with the blockchain.
A. Registration
For this purpose, each voter follows the process shown in
At this stage, voters provide their identity information Fig 1. The voter encrypts part of the ballot (Pi ) with the public
(passport, ID card, fingerprints, etc.) and receive a token from key of the BN, then calculates the hash of the message and
CA through a secure channel. The token is a unique piece blinds it using the blinding function of the blinding protocol
of information for each voter that is randomly generated. The used. This message is sent to the CA together with the token
tokens are securely stored by CA in a database that links each (encrypted with the CA’s public key). Once the CA receives
voter to a token. The Registration phase must be completed this information, it decrypts the token and verifies that it exists
before voting. in the database. In this process, in addition to the token, the
B. Initialization voter’s identity information may be sent in encrypted form.
When the token verification process is successful (i.e., the
In the Initialization phase, the CA generates a pair of private voter is authenticated), the CA signs the encrypted message
and public keys (sCA , kCA ) that are used in the selected Blind and sends the signed message back to the voter. The voter
Signature protocol. The CA sends to the BN network its public uses the reverse blinding function and obtains in this way the
key (i.e., kCA ), the schedule of all the phases of the election, digital signature by the CA on the encrypted part of the ballot
and the list of candidates with their respective and well-defined with the public key of the BN (i.e., T2 ). Note that because the
equivalent binary representation (Cj ). The BN generates a pair blind signature protocol, the CA does not know the content of
of private and public keys (sBN , kBN ) that will be used in what it has signed, thus breaking the link between the user’s
the signature and encryption protocols. Then the first block real identity information (including the token) and the user’s
(i.e., genesis block) is generated, containing all the information digital identity.
required for the voting process.
Hence, the BN is linked to a specific election and all the D. Cast the vote
parameters of the system become part of the blockchain, thus In this phase, each voter Vi encrypts the slope part of the
avoiding any dispute over the parameters. The Initialization ballot (i.e., λ) with the CA public key, T3 = Enc(λi , pCA ).
Voter {λi , Pi , T okeni } CA {kCA , sCA , N } IV. S ECURITY A NALYSIS
T1 = Enc(Pi ||H(λi ), kBN ) The proposed solution satisfies the e-voting system require-
ments described in section II.A.
Bmsg = Blind(H(T1 ))
Enc(T okeni , kCA )||Bmsg
• Verifiability: At the end of the voting process, the private
Decrypt and Verify T okeni keys used in the process are published. This makes it
possible for everyone to verify the integrity of the blocks
SBmsg = BSign(Bmsg)
SBmsg on the blockchain. At the same time, it can be individually
T2 = U nblind(BSmsg) verified that each ballot has the signature of the CA and
Verify T2 each ballot has been properly conformed.
• Eligibility and Authentication: Only voters who have
Fig. 1. Authentication process acquired a token in the registration process will be able to
obtain a blind signature from the CA, thus ensuring that
only authenticated users will be able to vote. In addition,
Finally, a broadcast is sent to the BN with the following as each token is unique and the CA erases the token when
information: T1 = E(Pi ||H(λi ), kBN ), T2 , that is the message it is used by the user, each voter is guaranteed to vote
signed by the CA, and T3 . Once the message (transaction) is only once.
received in the BN network it is processed by all nodes in the • Fairness: To know how many votes each candidate has,
network using the algorithm 2. all ballots are required. In our solution, each ballot is
divided into two parts, and decrypting both parts requires
Algorithm 2 Blockchain Validation process the private key of the BN and the CA simultaneously.
Input: T1 , T2 , T3 Therefore, only at the end of the voting process, when
1: Pr = Dec(T1 , sBN )
the private keys used are published, will it be possible to
2: x1 = H(Enc(Pr , sBN ))
decrypt and count all ballots.
3: Verify Signature of message x1 is T2
• Anonymity and privacy: To obtain the ballot of a given
4: Add transaction with data {T1 , T2 , T3 }
voter, P and λ are required simultaneously, therefore,
even if one of these data is leaked, the other is still
necessary to know the candidate chosen by the voter.
Each node in the BN verifies the correctness of the signature On the other hand, the blind signature protocol makes it
by the CA on the message. If the verification process is impossible to associate the voter with the identity infor-
successful (i.e., user authenticated in the BN), a transaction is mation provided to the CA, guaranteeing the anonymity
added to the current block and if required a consensus mech- of voters.
anism is performed to add the new block to the blockchain.
We suggest a suitable consensus mechanism adapting it to the A. Comparative Analysis
needs of the network, taking into account the performance in
terms of resistance to dishonest nodes and possible attacks, Table I shows the comparison between the existing works
as well as the performance in terms of the time required to and our proposed solution in terms of security requirements.
complete the consensus. In [7], an in-depth analysis of the From this comparison, it is observed that [20] and [21] do
main existing consensus mechanisms is carried out. not provide fairness, and solution proposed in [19] does not
ensure verifiability.
Finally, the number of ballots that each candidate received Except for our system, in the other compared protocols, it
can be derived with the N of all voters. Both the individual and is not possible to remove the link between the ballot and the
global verification process can be easily performed by check- voter at the end of the voting time. From the analysis of section
ing that each transaction is valid and fulfills cryptographic IV, it is observed that the proposed system provides public
signatures. If a voter wants to verify his/her vote, it is enough and private verifiability, eligibility, authentication, fairness,
to find the values sent to the BN during Cast the vote process. anonymity, and privacy.
V. P ERFORMANCE EVALUATION Caliper(v0.4.2) benchmark is used to determine the times to
In the following section, we present and discuss the perfor- reach consensus, the transaction reading, and transaction vali-
mance analysis of the proposed system in terms of Computa- dation time. We conducted the estimation of these parameters
tion cost and scalability. using PTFB [12] as a consensus mechanism. A transaction
size of 16kB, is enough for transmit the ballot information
A. Computation cost (i.e., [T1 ||T2 ||T3 ]).
We consider the implementation of our solution using Ellip- Parameters listed in Table II are used to set up the discrete
tic curves cryptographic protocols for encryption and SHA256 events simulator. For each experiment, we calculate the mean
as the hash functions. In addition, we use the ElGammal-based of all metrics in 104 independent runs. For a confidence level
Blind signature scheme proposed in [17], which fulfills the of 95%, this number of runs ensures that the maximum error
blindness and unforgeability properties. For a 128 bit security in the estimation of the metrics is less than 5%. In each run,
level, an elliptic curve of order 256 and 2048 bit of key length the initial conditions of each voter are chosen at random (e.g.
for the Blind signature protocol are considered. time at which the voting process starts, latencies, etc.). We
We use the library pycrypto [23] to compute with Python also consider uniformly distributed network latencies lower
the time for the following operation: TH for hashing, TE than two seconds for each packet sent in the network.
for encryption, TD for decryption and Tex for big number The most critical aspects affecting the scalability of the
exponentiation. For the servers we employ a personal computer system are the time it takes for a voter to complete the
with Intel Core IntelCorei7 − 7700CP U @3.60GHz and voting process and the problem of congestion in the system.
16Gb of RAM memory, giving timing of TH = 0.0001ms, Therefore, we evaluate the scalability based on the behavior
TE = 0.003ms, TD = 0.002ms and Tex = 0.01ms. Using of the following metrics:
the equation 2, we obtain that the approximately computation • Average voting time: Time is taken for each voter, as
time for the voter is 0.047ms. average, to complete the voting process, taking into
T = TE + TD + 4Tex + 2TH (2) account network and processing delays.
• Outage probability (pout ): the probability that the number
B. Scalability of transactions per second (i.e., transaction rate) exceeds
For the scalability analysis, a discrete events simulator is the M T R supported by the BN.
developed in MATLAB, which allows varying the number of Fig.2 shows the results in terms of average voting time for the
voters in the e-voting process. Several scenarios are simulated three considered scenarios. In the figure, the black dashed line
in which the Maximum of Transaction Rate (M T R) supported shows the results for the scenario in which the BN supports
by the BN is varied. Three cases are considered, the BN the highest transaction rate. As it is shown, it is the one that
supports a maximum of 300, 500, and 700 transaction per performs better in terms of average voting time, with a linear
second (T ps) respectively. For each scenario, the numbers increase with the number of voter increment.
of voters are varied between 104 and 105 with steps of 104
voters, during 100 seconds of simulation. These values allow
measurement of network performance in scenarios with high
probability of congestion. Table II shows the simulation setup
of the experiments.
TABLE II
S IMULATION S ETUP
Requirement Value
Voters [10000 : 10000 : 100000]
Maximum Transaction Rate [300, 500, 700 {T ps}]
Transaction per Block 100
Simulation time 100s
Transaction size 16kB
Transaction processing time 0.23s
Validation time 1.59s
Consensus (PTFB) time 12.4s
Data Rate 1M bps
For obtaining the parameters of the blockchain showed in Fig. 2. Average voting time vs. number of voters.
Table II, we implement a blockchain network using Hyper-
ledger Fabric (v1.4.0) on a Docker (v20.10.6) environment. The other two scenarios present the same behavior, with
The network consists of one node and five validators, who the particularity that as the M T R increases (i.e., from 300
process, store, validate the transaction and add new blocks to to 500T ps), the time required to complete the voting process
the blockchain using the consensus mechanism. Hyperledger decreases. This is because when the M T R is reached, voters
can not be served by the BN, and therefore the time it takes [2] H. Te Wu and C. Y. Yang, “A blockchain-based network security
to complete the transaction will increase. In all scenarios, the mechanism for voting systems,” Proc. - 2018 1st Int. Cogn. Cities Conf.
IC3 2018, pp. 227–230, 2018.
average time it takes a voter to complete the voting process is [3] H. Li, Y. Li, Y. Yu, B. Wang, and K. Chen, “A Blockchain-based
less than 120 seconds. Traceable Self-tallying E-voting Protocol in AI Era,” IEEE Trans. Netw.
In Fig.3, we show the results of the simulation in terms of Sci. Eng., vol. 14, no. 8, 2020.
[4] K. Isirova and O. Potii, “Development Principles for Electronic Voting
pout for different numbers of voters and M T R. Clearly, in System Using Distributed Ledger Technology,” Proc. - 2020 IEEE
all scenarios with the increasing number of voters, the pout 11th Int. Conf. Dependable Syst. Serv. Technol. DESSERT 2020, pp.
increases, this is because the more voters the more likely 446–450, 2020.
[5] C. Angsuchotmetee and P. Setthawong, “Blockvote: An architecture of
it is that the M T R supported by the BN will be reached. a blockchain-based electronic voting system,” ECTI Trans. Comput. Inf.
From one scenario to another, the higher the M T R supported, Technol., vol. 14, no. 2, pp. 174–189, 2020.
the better the performance in terms of pout , since the more [6] J. Lyu, Z. L. Jiang, X. Wang, Z. Nong, M. H. Au, and J. Fang, “A secure
decentralized trustless E-voting system based on smart contract,” Proc. -
transactions per second the server supports, the less likely it 2019 18th IEEE Int. Conf. Trust. Secur. Priv. Comput. Commun. IEEE
is that the M T R can be reached. Note that from a certain Int. Conf. Big Data Sci. Eng. Trust. 2019, pp. 570–577, 2019.
value of the number of voters, the pout is practically one for [7] Y. Xiao, N. Zhang, W. Lou, and Y. T. Hou, “A Survey of Distributed
Consensus Protocols for Blockchain Networks,” arXiv, vol. 22, no. 2,
all simulated scenarios, this occurs when the average number pp. 1432–1465, 2019.
of transactions per second approaches the M T R. These results [8] H. N. Dai, Z. Zheng, and Y. Zhang, “Blockchain for Internet of Things:
allow determining the required number of transactions to be A Survey,” arXiv, vol. 6, no. 5, pp. 8076–8094, 2019.
[9] S. Gao, D. Zheng, R. Guo, C. Jing, and C. Hu, “An Anti-Quantum E-
supported by the system, depending on the number of voters. Voting Protocol in Blockchain With Audit Function,” IEEE Access, vol.
7, pp. 115304–115316, 2019.
[10] S. James, N. B. Gayathri, and P. V. Reddy, “Pairing Free Identity-Based
Blind Signature Scheme with Message Recovery,” Cryptography, vol. 2,
no. 4, p. 29, 2018.
[11] N. Faour, “Transparent E-Voting dApp Based on Waves Blockchain and
RIDE Language,” 2019 16th Int. Symp. ”Problems Redundancy Inf.
Control Syst. REDUNDANCY 2019, no. Redundancy, pp. 219–223,
2019.
[12] M. Salimitari and M. Chatterjee, “A survey on consensus protocols in
blockchain for IoT networks,” arXiv, pp. 1–15, 2018.
[13] M. S. Ali, M. Vecchio, M. Pincheira, K. Dolui, F. Antonelli, and M.
H. Rehmani, “Applications of Blockchains in the Internet of Things: A
Comprehensive Survey,” IEEE Commun. Surv. Tutorials, vol. 21, no. 2,
pp. 1676–1717, 2019.
[14] A. Kaci and A. Rachedi, “PoolCoin: Toward a distributed trust model for
miners’ reputation management in blockchain,” 2020 IEEE 17th Annu.
Consum. Commun. Netw. Conf. CCNC 2020, pp. 13–18, 2020.
[15] A. Kaci and A. Rachedi, “Toward a Machine Learning and Soft-
ware Defined Network Approaches to Manage Miners’ Reputation in
Blockchain,” J. Netw. Syst. Manag., vol. 28, no. 3, pp. 478–501, 2020.
[16] M. Khater, Al-Ahwal, M. Selim, and H. Zayed, “Blind Signature
Schemes based on ElGamal Signature for Electronic Voting: A Survey,”
Int. J. Comput. Appl., vol. 180, no. 30, pp. 21–28, 2018.
Fig. 3. Outage probability vs. Number of voters. [17] Q. ShenTu and J. Yu, “A Blind-Mixing Scheme for Bitcoin based on an
Elliptic Curve Cryptography Blind Digital Signature Algorithm,” Arxiv,
no. 1, pp. 1–17, 2015.
[18] E. Mohammed, E. Emarah, K. El-shennawy, and S. Member, “Blind
VI. C ONCLUSIONS Signature Scheme Based,” vol. 00, no. d, pp. 51–53, 2000.
[19] R. Krishnamurthy, G. Rathee, and N. Jaglan, “An enhanced security
This paper provides an efficient and secure solution for an mechanism through blockchain for E-polling/counting process using IoT
e-voting system using blockchain to store the data and a blind devices,” Wirel. Networks, vol. 26, no. 4, pp. 2391–2402, 2019.
signature protocol to ensure voter anonymity and privacy. The [20] S. T. Alvi, M. N. Uddin, and L. Islam, “Digital voting: A blockchain-
based E-voting system using biohash and smart contract,” Proc. 3rd Int.
use of blockchain and blind signature allows to fulfill the most Conf. Smart Syst. Inven. Technol. ICSSIT 2020, no. Icssit, pp. 228–233,
important requirements for an e-voting system. In all simulated 2020.
scenarios, the time it takes for a voter to complete the voting [21] W. J. Lai, Y. C. Hsieh, C. W. Hsueh, and J. L. Wu, “DATE: A
Decentralized, Anonymous, and Transparent E-voting System,” Proc.
process is less than 95 seconds in cases where the Outage 2018 1st IEEE Int. Conf. Hot Information-Centric Networking, HotICN
probability is higher than 0.9, and less than 60 seconds in cases 2018, no. HotICN, pp. 24–29, 2019.
where the Outage probability is lower than 0.5. These results [22] F. S. Hardwick, A. Gioulis, R. N. Akram, and K. Markantonakis, “E-
voting with blockchain: An e-voting protocol with decentralisation and
show that the protocol performs well in terms of computational voter privacy,” arXiv, pp. 1561–1567, 2018.
cost and scalability. [23] Python library pycrypto [online] Available:
https://pypi.org/project/pycrypto.
R EFERENCES
[1] S. K. Vivek, R. S. Yashank, Y. Prashanth, N. Yashas, and M. Namratha,
“E-Voting Systems using Blockchain: An Exploratory Literature Sur-
vey,” Proc. 2nd Int. Conf. Inven. Res. Comput. Appl. ICIRCA 2020, pp.
890–895, 2020.