Cryptography-supported voting mechanisms have already been proposed with solutions to all of the problems, even being forced to reveal your vote (so that you could never prove who you voted for to someone who paid you to vote for them).
Unfortunately the problem is always in the "make it easy, secure and understandable for everyone" part.
Also, governments are traditionally great fans of security by obscurity. That's what made the last large-scale electronic voting trial in my country a spectacular failure. They spent large amounts of money to advertise the system which was based on smartcards and closed source software - yipieh!
Even if the system would be sound from a theoretical point of view, as long as the actual implementation is not _absolutely_ transparent (ie. I can compile my own voting program with my own toolchain, on my own hardware and can generate my own private key from my own RNG) then I would fight tooth and nail against it! I would never accept government provided smartcards with my personal private key!
I understand that making such a thing workable for everyone is really really hard but there's simply too much at stake here...
I fear however, that most governments are not yet ready for 21st century democracy...