If I sign a vote with my private key, and my public key is used exactly once, and is registered with the electoral body, and a list is printed of signed votes by candidate, I can validate that my key was used to sign a vote for the person / issue I voted for, and we can also know that everyone only voted once.
Key distribution could be based on the current registration system we have in place now, and you could use the key they send you to change your key pair so the state can't forge your vote. One could even automate this, even with an open source app we could all inspect.
It seems conceptually simple.