Hacker News new | past | comments | ask | show | jobs | submit login

This is the answer. You should never trust any one given voting machine. But it is much, much harder to corrupt large consensus networks, and blockchain based voting lets you maintain pseudonymity and it lets you verify the results with whatever computer you want.

Some neat features you can bake into a blockchain based voting protocol:

* You can have temporary identifiers in the confirmation stage. IE, you cast your vote, you can use other computers for the first couple minutes to verify that vote, but after that your vote is added to blocks as a signature rather than direct identifier tied to the block, meaning once committed neither you nor anyone else has a concrete correlation between you and your vote.

* Alternatively, you can have a dual ledger of voter and vote, where the two are not correlated, but you can identify who has or has not voted but not what they have voted for. This gives you less verification integrity but guarantees anonymity to prevent voter coercion.

* You can have kill switches built in, generated hash keys at vote time that will cancel a vote out unique to the vote, either in the confirmation phase or even when committed (basically the same as adding something to a balance and then removing it again).

* You can use one single protocol implementation for all public record voting, and then have membership restricted groups that define constituencies through sidechains. That way you can leverage an international network of computers to secure all votes you want secured, rather than have easily 51% attacked small chains for each vote or constituency. It would be distinct from trustless models in that you would need some kind of parent organization to arrange membership in voting groups and to establish vote blocks.




As I said elsewhere in this thread, blockchains/consensus algorithms won't work. If the computer/phone that the software is running on is compromised and the attackers have control of the video and/or input devices, there are many ways of misdirecting the voter to make the wrong selection - in that case the whole stack of protocols and algorithms work just as they were intended, but it doesn't matter because the selection of the candidate was decided by the virus, no the voter.

And it doesn't take much to swing an election - you don't need to compromise many machines. So you end up needing 100% security on almost 100% of the voters' devices. That's simply not possible.

People have a hard time believing that we can't fix the security problems with online voting. We can't fix them.


Your claims are too broad for the evidence you present.

A trivial solution would be when you vote online you get texted/emailed confirmation. If you don't respond to the confirmation you get a call. The confirmation gives you a candidate you voted for and a blockchain signature and an opportunity to report error.

In the event you report error you could always show up at your local voting booth and get a paper copy.


Please explain to my mother how this system would work.

And should this system fail, or simply be faked, how would I know?

PublicVotes' first claim is to be "fair". Fairness is a property of the form of election (eg approval voting vs first-past-the-post), not the voting system. I'll scan the docs, see if there's any merit, but right out of the gate the starting assumptions are way off base, so don't have much hope for the rest.


> Please explain to my mother how this system would work.

Instead of casting your vote by giving it to a single person you give it to many different groups interested in keeping the election fair. These groups can be anyone -- advocacy groups, political parties, independent auditors, or local governments. They all receive your vote, verify that it's correct, and sign their name below your vote on a public ledger which can't be tampered with without everyone knowing.

Hell, you don't even really need a digital blockchain for this kind of system to work.


I mean the best way to explain it is to say "I put my vote on several pieces of paper, and give it to several people. One person could edit it, but that would conflict with everyone else. Everyone can see who I gave my anon vote to, and can verify that it all matches up." It's abstracted by a lot, but blockchain is basically just a public ledger.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: