Electronic transformation of political systems has become a challenging task in recent years. Applying cryptography to voting and electoral processes is crucial for democracy. The lack of trust placed in Remote Electronic Voting (REV) systems poses the main obstacle to adoption. Transparency measures and additional public security tests (e.g., public intrusion tests), such as the publication of the source-code, actively contribute towards public verifiability, and hence, trust placed in REV systems. Serving as a transparent, immutable, and distributed ledger, Blockchains (BC) offer new benefits for REV. Instead of relying on a single, centralized authority, a system of distributed, equivalent authorities can be used. Further, BCs serve as a highly replicated, tamper-proof audit trail, which enables the verification of cryptographic proofs, crucial for REV.
In order to evaluate the feasibility of deploying a BC-based REV system, in 2018, the first version of Provotum 1.0 was proposed and implemented in the context of a Master's Project. Currently, the Provotum 2.0 prototype is documented below, showing a fully end-to-end verifiable voting process, implemented using a dedicated public permissioned Proof-of-Auhtority BC, based on Ethereum. Also, different new directions are explored as well, for instance, deploying a custom-built BC, developed in Rust, in order to achieve Universal Cast-as-Intended Verifiability.
|Source of funding:||UZH|
|Project Duration:||Since 01.03.2019|
Approach (Provotum 2.0)
The tutorial on a "Practical Introduction to Blockchain-based Remote Electronic Voting" as presented at the IEEE International Conference on Blockchain and Cryptocurrency (ICBC 2020), May 2-6, 2020, Toronto, Canada, as a Virtual Conference refined the technical details.
- Docker and Docker Compose
- Make sure you create a github.json with a valid access token, otherwise you won't be able to pull from GitHub packages
- Even though the full tutorial code is dockerized, it takes (a) some Docker expertise and (b) sufficient RAM and CPU to make it run smoothly on Linux or Windows.
- Unfortunately, macOS is not supported
- Thus, if you don't want to locally deploy it, simply follow the tutorial and take a closer look the code as you see fit.
Setting up a short demo election on your local OS
git clone firstname.lastname@example.org:christiankiller/master-project-evoting.git
- Set up your github.json
docker psand verify all components are running by visiting the following links with your favorite web browser
- Voting Authority on http://220.127.116.11:4001
- Sealer 1 on http://18.104.22.168:4011
- Sealer 2 on http://22.214.171.124:4012
- Sealer 3 on http://126.96.36.199:4013
- Voter Frontend on http://188.8.131.52:3000
If everything is running smoothly so far, you can continue by following the tutorial steps.
Setting up a demo election on a remote VPS
- Make sure the image is Docker-ready, which saves you some time
- Follow the steps above for the local OS
ssh -D 5000 -C -q -N [REMOTE-IP]to enable
-DDynamic application-level port forwarding,
-NmacOS specific (Do not execute a remote command. This is useful for just forwarding ports.)
- Set up a proxy in your browser as shown in the screenshot here
- Christian Killer, Bruno Rodrigues, Eder John Scheid, Muriel Franco, Moritz Eck, Nik Zaugg, Alex Scheitlin, Burkhard Stiller: Provotum: A Blockchain-Based and End-to-End Verifiable Remote Electronic Voting System; IEEE 45th Conference on Local Computer Networks (LCN), Sidney, Australia, November 2020, pp 1–12.
- C. Killer, B. Rodrigues, E. Scheid, M. Franco, B. Stiller: Practical Introduction to Blockchain-based Remote Electronic Voting; IEEE International Conference on Blockchain and Cryptocurrency (ICBC 2020) - Virtual Conference, Toronto, Canada, May 2-6, 2020, Tutorial 2. Tutorial Repository
- C. Killer, B. Rodrigues, R. Matile, E. Scheid, B. Stiller: Design and Implementation of Cast-as-Intended Verifiability for a Blockchain-based Voting System; 35th Annual ACM Symposium on Applied Computing (SAC 2020) - Virtual Conference, Brno, Czech Republic, March 30 - April 3, 2020, ISBN 978-1-4503-6866-7, pp. 286-293. Open Access (PDF, 2 MB) ACM
- C. Killer, B. Stiller: The Swiss Postal Voting Process and Its System and Security Analysis. 4th International Joint Conference on "Electronic Voting" (E-Vote-ID 2019), Bregenz, Austria, October 1–4, 2019, In: R. Krimmer, M. Volkamer, V. Cortier, B. Beckert, R. Küsters, U. Serdült, D.Duenas-Cid (eds.) "Electronic Voting", Lecture Notes in Computer Science (LNCS), Vol. 11759, Springer International Publishing, Cham, Switzerland, pp. 134–149. Paper + Presentation
Master Project Reports
- R. Matile, C. Killer: Privacy, Verifiability, and Auditability in Blockchain-based E-Voting, 2018, Master’s Project, University of Zurich, Project Report
- M. Eck, A. Scheitlin, N. Zaugg: Design and Implementation of Blockchain-based E-Voting, 2020, Master's Project, University of Zurich, Project Report