Distributed Online Voting
Robert Riemann with supervision of Stéphane Grumbach
Have you voted once in General Elections?
Yes | No | Don't tell | |
---|---|---|---|
# of votes | 45 | 100 | 12 |
Result:
The Voting Protocol shall provide legitimacy for the voting outcome.
Voting Protocol Properties
secrecy
eligibility
correctness
verifiability
Further protocol properties:
coercion-resistance, proof of participation, support for write-ins, etc.
1
2
- Badge Reader
- Buttons in black hole
Computer-Assisted Voting by Show of Hands
Implements:
- correctness
- verifiability
- eligibility
Lacks:
- secrecy
Traditional Online Voting Protocols
Advantages
- convenient for participants
- cost and time efficient
- available for everyone
- flexible ballot format
(translations,
versions for impaired)
Disadvantages
- vulnerable to hacking
- complicated
- intransparent
Online Voting Today
- PKI to identify every eligible voter
- voter encrypts and signs own vote
- encrypted votes are gather by voting server
- to ensure secrecy:
- Mix-Networks destroy link between vote and voter
- Homomorphic encryption allows aggregation of encrypted votes
- encryption
- verification with Zero-knowledge-Proofs
Issues of Today’s Online Voting Protocols
- need trusted experts to witness protocol properties
- crypto unproven
- centralisation of knowledge / single point of failure
- rely on procedure compliance of voting officials
- early decryption of single votes
However, Online Voting used in:
Estonia, Australia, Brazil, India
Distributed
Online Voting
Phases
- registration
- ballot casting
- ballot tallying
(aggregation) - compute outcome
- auditing
Entities
- central registry
- voters
Promises of Distributed Online Voting
- balance of knowledge among all voters
- balance of trust (no voting officials)
- no single point of failure
- interruption-resistant
Distributed Online Voting: BitBallot
Concepts
Tree Overlay
(Voters = Leafs)
Aggregation Algebra
Aggregation Algorithm
Basic BitBallot
(by Frénot, Reimert, Grumbach)
Assumptions
- only honest voters
- voters present
throughout the voting
Properties
- correctness
- secrecy
- verifiability
- without crypto!
Protocol Extensions
Absent Voters
- track aggregate completeness
- compute incomplete aggregates
- allow updates for more complete aggregates
Dishonest Voters
- public-secret key pair for
trusted registry and voters - registry blindly signs voter’s public keys
- voters sign aggregates
crypto only for correctness
Protocol Outlook
Scalability
- measure and reduce #
of exchanged messages - distributed tracker
Dishonest Voters
Colluding
- prevent exchange of
credentials (keys)
Applications
- distributed lottery
- distributed auction
Flexible Voter #
- add votes during voting
- use case: online petitions
BitBallot Implementation
Tools
- Server: Node.js, Meteor
- Client: JavaScript, AngularJS
HTML5
- LocalStorage to restore data
- WebSocket to register/find peers
- WebRTC for p2p communication
(unsupported by Apple Software)
Implementation Limitations
by today
- WebRTC, thus BitBallot, unsupported by Apple software
- Signaling server for p2p connections supports only 50 voters
- do not close your browser before you see the result
- complex browser environment is source for various bugs
Check out: http://bitballot.riemann.cc
Thanks to our Sponsors
Distributed eVoting: BitBallot
By Robert Riemann
Distributed eVoting: BitBallot
Introduction to a distributed online voting protocol
- 1,701