technically feasible. multiple ways of proving your identity on a device and a combination of ways must be used. FB+bank or gplus+DMV or whatever. then you can SSL the connection up to the hilt. some fancy algorithms to copy your choice to independent systems to make sure redundancy or system.
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.
Verifying someone's identity is certainly possible, but how do you deal with malware flipping votes before they leave the computer? You could design the most theoretically secure voting system in the world, but how do you truly secure it when you don't control the hardware and OS that it is running on?
1) Do away with "voting day". I cast my vote, and I get snail mailed a receipt. If its wrong, I can call in and cast my vote over the phone. If its right, do nothing.
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.
Seems like a great application for cryptocurrencies, though maybe better with those using proof of stake rather than proof of work.
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.
Many cryptocurrencies have your last two points as part of their design.
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?
"but I do feel that it would be a difficult strategy to pull off, as citizens can vote at any time, from any place"
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.
> 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.
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.
I think we need some kind of Zero-knowledge proof[1]: "a method by which one party (the prover) can prove to another party (the verifier) that a given statement is true, without conveying any information apart from the fact that the statement is indeed true."
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.
That actually seems like an interesting idea, but I'd like for the public to be able to view the list of unique coins for each candidate and verify theirs went where they wanted it to. Wouldn't the 1-coin-to-1-person connection be vulnerable to manipulation, since you wouldn't want someone (perhaps on the inside) to be able to generate coins and spam-vote?
> That actually seems like an interesting idea, but I'd like for the public to be able to view the list of unique coins for each candidate and verify theirs went where they wanted it to
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.
At the end, those are three features we want from a voting system: that it's anonymous, verifiable, and that one can not prove what he voted for. Well, they are conflicting features, and we just can't have all three.
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...
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.