Voting system running on Ethereum Brockchain with improved BroncoVotes.
Electronic voting systems that have been developed so far have been mainly implemented in a client-server manner. This has led to a vicious cycle in which a dedicated server is required to verify the validity of the server, which inevitably increases the number of entities. In this study, we aimed to protect the privacy of voters by using blockchain for e-voting while maintaining the transparency, security, and cost-effectiveness of the voting system by eliminating the servers that play a centralized role from the components of the system. To the best of the author's knowledge, the only prior work whose source code is publicly available so far is BroncoVote by Dagher et al1. Specifically, BroncoVote requires a dedicated server for encryption of votes, which means that the validity of the server must be trusted, the voter whitelist does not work, and the key size is too small. In this study, we propose an improved protocol to solve these problems as a voting system called "PaitherVotes" and implement it on Ethereum using Solidity and on the client side using JavaScript (React). The paper link is in preparation.
- Node.js
- Truffle
- Ganache
- MetaMask
Assuming Linux/MacOS.
Node.js (via asdf)
brew install asdf
echo -e '\n. $HOME/.asdf/asdf.sh' >> ~/.zshrc
echo -e '\n. $HOME/.asdf/completions/asdf.bash' >> ~/.zshrc
asdf plugin add nodejs
asdf install nodejs latest
Truffle (via npm)
npm install -g truffle
Ganache
Install and Launch Ganache.
MetaMask
Install MetaMask in your browser.
Terminal 1
git clone git@github.com:Harxxki/paither-votes.git
cd paither-votes/client
asdf install nodejs # v14.15.4
npm i
npm run migrate
Now Backend (Blockchain) will be launched, press ⌘T
or Ctrl
+T
to open a new tab.
Terminal 2
npm run start
Now Frontend will be started.
Access http://localhost:3000/.
Open an issue.
Haruki MORI (@Harxxki)
I want to thank to the members of Mishima Laboratory and Dr. Mishima for their cooperation in conducting this research. We would also like to thank Dagher, G. G., Marella, P. B., Milojkovic, M., and Mohler, J. for their prior work, and the Truffle team for providing excellent tools for Dapp development.
MIT
Footnotes
-
Dagher, G. G., Marella, P. B., Milojkovic, M., and Mohler, J. (2018). Broncovote: Secure voting system using ethereum’s blockchain. ICISSP 2018: Proceedings of the 4th International Conference on Information Systems Security and Privacy, 96–107. doi:10.5220/0006609700960107 ↩