Take an existing online registration, allow a user to login, and "create a password". Take the password, hash it with the users registration id, and a salt, and that becomes the id for a ballot. Now a user can always login, and view their existing vote (as long as they remember their password) however no outside or inside user could directly link a ballot with a voter.
In addition, allow all online votes, and registered users (who voted) to be instantly publicly accessible via API by 3rd party non government organizations so that all results can be monitored.
The hashing algorithm can be the same used by any traditional password system.