https://github.com/psvz/clairvote
https://github.com/psvz/clairvote
e-voting e2ev elections evoting progressive-web-app proof-of-work secure-elections secure-element voting
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/psvz/clairvote
- Owner: psvz
- License: isc
- Created: 2022-12-05T20:17:57.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-10-09T10:11:31.000Z (over 2 years ago)
- Last Synced: 2024-01-28T01:10:26.882Z (over 2 years ago)
- Topics: e-voting, e2ev, elections, evoting, progressive-web-app, proof-of-work, secure-elections, secure-element, voting
- Language: JavaScript
- Homepage: https://clairvote.org
- Size: 16.8 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Power voting: transparent, secure, verifiable
[](https://zenodo.org/badge/latestdoi/574666861)
This is an implementation of a voting system that relies on Proof-of-Work by user devices. It has **absolutely _positively_ nothing to do with blockchain** (in case you were assuming). Polling stations are still part of this design to tackle coercion, although going fully electronic is possible.
Main points of value:
- Reduced opportunity for tampering incl. by state actors and organizers
- Available off the shelf equipment for polling stations
- Near-real-time transparency and audit
[systemDesign.pdf](https://github.com/psvz/clairvote/blob/main/systemDesign.pdf) **documents architecture and building blocks.**
[https://clairvote.org/demo.html](https://clairvote.org/demo.html) represents a demo polling station.
[https://clairvote.org/go.html](https://clairvote.org/go.html) is a voting app (in-browser/installable).
[https://clairvote.org/check.html](https://clairvote.org/check.html) provides results and some analysis.
Demo campaign is named `Solar` and themed after planets. You can download its raw data:
[https://clairvote.org/solar-vote.log](https://clairvote.org/solar-vote.log) list of votes.
[https://clairvote.org/solar-auth.log](https://clairvote.org/solar-auth.log) list of voters.
#### Python
You can try and do `source bin/activate` inside cloned folder to rely on `venv` virtual environment, although it is not very stable, and you will likely end up installing a few packages (I have put the links in comments to relevant imports):
[vote-simulator.py](https://github.com/psvz/clairvote/blob/main/vote-simulator.py) combines a voter and a polling station, casts a random vote.
[mandates.py](https://github.com/psvz/clairvote/blob/main/mandates.py) prints voting authorizations (mandates) in form of QR, base32, and hex.
#### [Crockford's Base32 codec](https://www.crockford.com/base32.html)
JavaScript implementation as functions defined [here](https://github.com/psvz/clairvote/blob/main/frontend/dyn.js).