Passports would need to become like hardware wallets with screens such as Trezor. Who's firmware and design are open source.
The screen means I can see what I'm signing and later be shown what I signed.
Now, I don't want people to know who I vote for. So we make it e-passport gate so that no one can enter with me.
Now I want to be able to verify my vote at a later date but not let others know it was me. Well this too is solved by multiple cryptocurrencies like monero and z-cash.
I can go to my local town hall enter a room alone using a e-passport style gate and check my vote at the machine. My device can verify my vote.
Someone with the vote can only see that 1 of N voters did it. Where N is so large they can't identify me.
No duplicate vote is possible.
Literally no one would agree to this however.
- confirms (paper goes down the box) and exits the booth
or
- cancels (paper is burned) and votes again
I can't claim to be a crypto expert.
But hiding a transaction and it's value among other transactions is perfect for voting.
As I understand it Monero uses ring signatures to make it so it's not possible to know which individual of a group initiated a transaction, and it's zero knowledge proof system means it can be verified that a particular transaction is valid despite this.
To my layman mind that seems to be good enough, every vote can be verified by any party as valid (no double spending or double voting took place).
You can never narrow down who made a particular vote beyond a large pool of people.
You can't tell where any transaction went (you don't know who was voted for).
At the same time with my private key I can see my vote.
The only thing needed for voting is the e-passport style gates.
Certainly it won't just get a case of use monero, they would need to design the system for voting.
Since I'm able to retract my vote, I cannot sell it. And since I can retract my vote, I cannot be coerced in any way.