Add SSI to PryVote
TTitcombe opened this issue · 0 comments
Feature Description
Incorporate SSI from PyDentity to the PryVote notebooks (prioritise Shamir Secret Sharing, as it is the more robust voting protocol), to verify that voters have the right to vote. A voter with incorrect credentials should be included in the notebooks to demonstrate what happens in that scenario.
Is your feature request related to a problem?
The PryVote notebooks currently only demonstrating vote encryption protocols.
identity management (through SSI) is a key piece missing from the PryVote notebooks for PryVote to be an end-to-end voting demo we can show off.
What alternatives have you considered?
N/A
Additional Context
The idea for incorporating SSI is to have each potential voter verify their right to vote with an independent vote arbitrator. If correct credentials are provided, the arbitrator assigns the voter a random, unique key, and sends this key to each vote counter.
When a voter votes, they send their encrypted vote and their key to each vote counter. If the key is not verified by the vote counter, the vote is visibly (to the voter) not included by the vote counter; otherwise it is visibly accepted.
Do not worry about mitigating attacks which attempt to learn a voter's identity from the unique key; that is later work.