Part of the point of voting machinery is to make it impossible for the government to see which way a specific person voted. (Excepting a totally unanimous vote, I suppose.)
But I figure we could tag each vote with a unique hash that's generated by, and known only to, the voter.
Then, when all votes are cast, the database can be made public, including the hashes. Then each voter can check that their vote has been registered correctly, without the government knowing who voted what way.
This wouldn't be good enough, though. We want to make it impossible to confirm to anyone else which way you voted, even if you want to, in order to prevent vote-selling.
> But what about someone who claims their vote was eliminated after voting occurred? There's no way to verify that either way.
You mean someone who cast a vote but then doesn't see it turn up on the public voting database? I imagine we could solve that with crypto. In my model: when you vote, you are given a cryptographically-signed proof-of-vote that is tied to your unique hash.
> would not be possible using a blockchain
Unless I'm missing something (which is entirely possible), I've shown that blockchain isn't the only solution.