Revocable (alterable) anonymous voting

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 :slight_smile:
I have been told that this touches similar issues to what is discussed here.