ployed, it can be used to create multiple, different bal-
lots. The Registration Contract lists the eligible vot-
ers; and the Voting Contract allows eligible voters to
vote for a candidate.
User interfaces ease a voter’s experience. For
instance, (McCorry et al., 2017) created three po-
tential HTML5/JavaScript pages voters can access
through a browser. This ease of use and access in-
creases the system’s probability of adoption. Bit-
Congress (A.J. Varshneya, 2015) utilizes an applica-
tion called Axiomity as the graphical user interface
through which users create elections and vote; Ax-
iomity also keeps a voting record history for users to
review on demand. Similarly, voters in the BroncoV-
ote system cast their ballots through an HTML web-
site.
The voting processes in (McCorry et al.,
2017), (Rockwell, 2015), (Andrew Barnes and Perry,
2016), (Ernest, 2014), and (A.J. Varshneya, 2015)
are described below. The system in (McCorry et al.,
2017) executes in five stages. In the first stage, the
election administrator creates a list of eligible vot-
ers and creates the election, including setting the
election’s applicable timers, registration deposit, and
the optional commit stage. Next, voters register for
the election. The next stage is the optional commit
stage, where voters store a hash of their vote onto the
blockchain before progressing to the stage where they
publish their vote and a zero proof of knowledge onto
the blockchain. Lastly, the result of the election is
computed and revealed. It is important to note that
in this system, voters can only vote for two options,
typically “yes” or “no” (McCorry et al., 2017).
A similar process is followed in Bit-
Congress (Rockwell, 2015). In BitCongress,
every “yes” or “no” token and candidate has an
address. Voters send their tokens to a candidate’s
address; once the election ends and the results are
tallied, the tokens are returned to the voters. The
system outlined in (Andrew Barnes and Perry, 2016)
supports on-line and off-line voting; this system uses
two separate blockchains: one to store registered
voters and one to store the actual votes. By using
two separate blockchains, (Andrew Barnes and
Perry, 2016) ensures voter privacy and anonymity.
Regardless of how a voter registers (whether on- or
off-line), the same information is required such as
their social security number and mailing address.
Assuming the voter decides to vote on-line, the
voter’s registration is stored on the blockchain for
government miners to verify the voter. Once verified,
the voter is sent a ballot card and password to
submit a vote, which is stored on the blockchain as
a transaction. In both (Ernest, 2014) and Follow
My Vote discussed in (A.J. Varshneya, 2015), voters
can access and update their vote until the end of the
election. Additionally, in Follow My Vote, voters
can vote for multiple candidates. An election in
BroncoVote is established when an administrator in
the system deploys the Creation Contract in order to
set up the ballot; this include defining the candidates
of the election and the election timer. Next, the
administrator defines within the Registrar Contract
who is eligible to register. Lastly, the voters cast their
ballots through the Voting Contract, which encrypts
each ballot to provide security and privacy to the
voters. Unlike the systems in (McCorry et al., 2017)
and (Rockwell, 2015), BroncoVote allows users to
vote for multiple candidates.
BroncoVote is currently a university-scaled voting
system employed on the Ethereum Blockchain. Voter
privacy is handled by homomorphic encryption; in-
tegrity of votes is ensured through passwords. To
guarantee voter accessibility, voters cast their votes
on an HTML website that can be accessed anywhere
with Internet access. BroncoVote also has the abil-
ity to be used to conduct polls: similar to elections,
polls allow individuals to voice opinions on matters.
However, individuals are able to view poll statistics
in real-time. BroncoVote is a secure, economical vot-
ing system with the potential to be expanded from a
university scale to a larger scale.
7 CONCLUSIONS AND FURTHER
WORK
In this paper, we have presented a proof of con-
cept system for BroncoVote that utilized the Ethereum
blockchain and Paillier homomorphic encryption.
Our implementation was tested on the Ethereum test-
net network with different types and sizes of bal-
lots. BroncoVote used the smart contracts in Ethereum
blockchain to keep a record of every user in our sys-
tem as well as all the ballots and the information re-
garding them. We also utilized the smart contracts to
achieve access control. We integrated Paillier homo-
morphic encryption into our system to preserve voter
privacy. With the deployment of our system on the
testnet for experiments we showed that our system
can easily be deployed and setup to use as a voting
system for universities or other similar settings.
In future work, we will investigate the possibility
of implementing Paillier cryptosystem as a library in
Solidity. With the system we currently have, moving
the cryptography to a library in Solidity could largely
improve our individual ballot verifiability. Having the
Paillier library in Solidity would help us generate a
ICISSP 2018 - 4th International Conference on Information Systems Security and Privacy
106