Distribute one coin to every citizen (this is the hard part). Each citizen votes anonymously by giving the coin to the candidate of their choice. The network verifies that no coin (vote) is spent (cast) twice. Done.
You still have solve
* How to stop someone from coercing your vote by being there while you vote
* How to distribute the coins evenly
* How to ensure that the vote was cast by the person you gave the coin to
* How to ensure that nobody can find out who you voted for afterwards
For the first one, I see the value in going to a centralized place that has taken measures to make sure there is no coercing involved. Someone with a gun could indeed come to your home, and make you vote for a certain candidate. I don't have a good answer for this, but I do feel that it would be a difficult strategy to pull off, as citizens can vote at any time, from any place.
For your second point, this is indeed the hard part. It can be rephrased as: how can you be sure no one was given 2 coins? I also don't have an answer here that doesn't make you associate an SSN or another unique identifier with a wallet address, which would ruin the anonymity feature. Maybe someone else reading has some good ideas to add?
This now means that if you can be forced to give up (or someone knows through other means) your coins "id" then they can see how you voted. This is something there are quite a few laws in place to try and stop with the current voting system, and it's considered to be a very important property.
Paper ballots guarantee none, but people accept it because hacking it is thought to be expensive. That cypto-currency vote, if I got the idea correctly, is verifiable, but fails on anonymity and lack of proof. It may be possible to fix anonymity by some coin-mixing algorithm, but I'm not sure the lack of proof is even possible in practice (for any algorithm).
But anyway, remember that paper ballots guarantee none...
but should it be done? i dont think so. with paper, you have many many eyes on whats going on. when something goes wrong, its not even 1% (maybe) of error. but on online, if something goes wrong, its can become a huge issue. it might be hard to convince the bulk of the population (court of public opinion) that the result is true/valid/reliable. because they cant see/touch/feel the raw parts that made up the sum.
another issue with high tech solutions, is that you end up targeting the high tech people. its hard for laggards and cavemen to adapt. but its easy for a tech-savvy chap to downgrade to a piece of paper. so it is possible that you dont get a true representative of the population in the results.
the last issue, governments suck. voting (almost) never makes things better.
2) Begin a publicity campaign to make the default vote a public vote. If you are worried about being fired, ostracized, or otherwise targeted because of who you vote for then walk your butt down to the polls and get in line with grandma and the guy in the tinfoil hat.
Meanwhile I'm going to roll my wheelchair over to the computer room and use my screen reader to cast my ballot publicly because IDGAF.
When Amazon gets duplicate orders, or uncast orders, they tell the "customers" to keep the goods.
And when an electronic vote is cast, along with the duplicates, the uncast votes, the hacks, the citizen get to keep the bad.
The difference is that:
Amazon has a financial interest in avoiding uncast orders.
Politicians have financial and power interests in having uncast votes for them.