I'm neutral on web voting, because I basically agree with all the observations you make. But I think it's important to look at things from the individual perspective as well. Voting by mail seems like the best option to me at present.
As an aside, all these discussions miss something significant: even if you can vote with ease, it's too damn complicated. Most people just don't have the time or knowledge to properly evaluate all the various ballot initiatives at the local and state level in many jurisdictions, nor are most people able to properly evaluate candidates for all the various offices in local elections. Frankly I don't think people should even be allowed to vote for offices like judgeships and public prosecutors, since almost nobody has the education required to assess any of the candidates properly and almost invariably end up choosing whoever happens to be the most photogenic candidate instead.
Most banking -- "home" or multi-millions -- is done electronically. It's safer.
Banking is a completely different problem. The secrecy requirements are different - in fact, audit trails of all individual transactions are expected. Big transactions are typically individually reviewed by humans. People/organizations can choose their bank. There are multiple banks -> no single target. Transactions can be traced and rolled back, so coercion is less of a problem. Risk is mostly financial.
Do any of those exist? Is this possible in practice, in this decade?
And voting through a web app is wrong on so many levels:
- "Electronic voting": Electronic voting machines already have a bad enough track record. If nothing else, it makes large-scale attacks easier. Voters have to trust the ballot operators (different from home banking, where (a) you can choose your bank and (b) manual banking wouldn't be better either).
- "Electronic voting, at home": Assuming [1], it wouldn't be coercion resistant, wouldn't be independently verifiable, couldn't guarantee vote secrecy to voters and be susceptible to ballot stuffing, open against technical attacks (eg. as simple as DDOS, or malware).
- "Electronic voting, at home, in a web app": No local (non-attacker-controlled) code means you must trust server completely. And its basically impossible to really isolate the voting from everything else.
All these problems for what? Paper ballots really aren't so bad. Especially if you eliminate two of the obvious problems US elections have: get rid of voter registration, and move votes to sundays.
[1] Assuming you don't use a cryptographic voting scheme; these have their own problems. It's an entire field of research that just can't be summarized in an HN post, but key problems are: a) impossible to understand by voters, b) some desirable properties are mutually exclusive, c) computationally prohibitively expensive (even with state level resources), d) some problems aren't technical in nature and can't be solved technically (think coercion).