I am looking for a voting scheme that has the following properties:
* Users are anonymous
* Users can verify their vote
* Users can change their vote
Current Scheme - Users are not anonymous in the system. They are a real person linked to a token, such as a wallet token. However, voting must be anonymous and revocable.
My current scheme, which I am testing for statistical attacks:
When User A wants to vote on issue X, User A sends a request to the blockchain for a token to vote for issue X. The blockchain hands back a voting token for the issue, if valid. Also, a list of other voters with unblinded tokens for this issue is delivered to the voter. Peers communicate to supply a list of public keys, one for each voter, to the blockchain.
This happens in the client automatically in a vast majority of cases, and no client can link the votes to voters.
Now the tokens are blind, but trusted, and the vote can be revoked. This is all assuming a TOR type connection.
I am looking for simpler schemes, and I'm not sure this is impervious to tampering yet.
I have a way to implement delegation in this scheme, so that's not an issue.
Any help would be appreciated
I have been told that this touches similar issues to what is discussed here.