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.
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?
The coercion could and would take the effect of requiring you to vote while the coercier was watching you. If you voted before then, you'd suffer the consequences.
This is an absolute bar to on-line voting as far as I'm concerned; in the US it would likely spark the hot civil war we're sliding towards.
Yes, and it's not the "gun to the head" type scenario but voting with family, partners, friends that would be more typical. Or voting at work, knowing your boss is right next to you and hates party X that you want in...
Voting on paper in a booth is antiquated and low-tech, but it works. It's simple, pretty easy for interested parties to watch for misconduct, understandable by everyone. It's hard to fake on a large scale, too.
In the case of voting, we want to be able to prove that a person voted, with no knowledge of the actual vote. If you can count the number of votes cast that should be enough to be confident in the result.
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...