Distributed Online Voting

image/svg+xml

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

  1. Badge Reader
  2. 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

Thanks to our Sponsors

Distributed eVoting: BitBallot

By Robert Riemann

Distributed eVoting: BitBallot

Introduction to a distributed online voting protocol

  • 177
Loading comments...

More from Robert Riemann