So I have been thinking about this for only a couple of days, take this with a grain of salt.
I know that, in general, electronic voting is a bad idea for a number of reasons. But I think that there has to be a way of doing this safe and securely, maybe not though.
Lets try to imagine a decentralized voting system. Each individual, who has the right to vote, gets a public/private key pair (maybe there is a way of doing it so that only the government can generate those pairs, therefor ensuring that every vote is legal). Then we would have a block chain, where a block consists of a list of votes. A vote is just a public key tuple (and some signature), the first is casting their vote for the second. You would only be able to vote during a certain time period (every vote outside of this period gets discarded). The actual decentralization happens as soon as votes get counted, because now anyone in this system can count votes.
Now the main problem here is how do you get your vote into the block chain. Because if you use any electronic device connected to the internet, a man-in-the-middle attack might be possible (changing the vote before sending it out to the network). You might have to design a specific device solely for voting and make it open hardware/software but I don't know if that's not safe either.
In any case, what do you think of this idea? Do you think it could be theoretically done? Also, do you know if there have been similar suggested systems? I don't seem to find anything on this topic (except for electronic voting of course)