mckmk outlined a lot of issues with online/blockchain voting that I echo, but I have some additional concerns.
It maybe feels dismissive when I put it this way, but you're describing HTML forms. I know you're arguing "votes on the blockchain [are] immutable and publicly verifiable", but there's nothing preventing a political regime claiming mass coercion or hacking and forking the history. Everything else is just a web app (we can even cover immutability, given INSERT only privileges and a UNIQUE constraint):
- You can vote from your phone
My phone has a browser.
- Votes can be counted instantly in real time:
This is how web apps work.
- Votes can be independently verified
Web apps generate logs and store information for later verification.
- You can verify that your vote is counted correctly and included
Ditto.
- You should also be able to make your identity private using zero knowledge proofs...
Either there's a way to map votes to people, unmasking their votes, or the government can pad the votes with junk IDs and no one can verify it. This system fundamentally cannot work.
===
Aside from these intractable, fundamental issues, the two main reasons we don't have online voting yet are:
- Not everyone has a computer or internet access
- It's extremely, dangerously insecure
And before you get into how secure blockchains are, please keep in mind we're not simply talking about technological security. There are so many ways to game this system, the primary one simply being you steal someone's BankID and vote for them. Personal information is stolen by malware all the time. And sure, when the victim goes to vote themselves and finds their vote was already cast, they can alert the authorities. But what if this is the case for a significant percentage of black people in Georgia? Will authorities fix the issue on Election Day? Will they fix 8 million of these issues on Election Day? What if an attacker files 8 million of these "someone voted for me" complaints in the last hour? This adds fragility to an election system that simply can't afford it.
All in all, you need to do a lot more research into the history of online voting proposals before you can seriously propose publishing votes on the blockchain. Which is my entire point about blockchain technology -- whenever someone wants to put something on it, two things are true:
- Other existing technology is a better fit
- The proposer is not an expert on the system they want to replace