Ask HN: Online vote using blockcahain?

13 points by artonge ↗ HN
How come there is no initiative to build an online voting system that use a blockchain as a mean to secure the process ? You would sign your vote anonymously with a key given by your government (stored in a USB key for example). Afterwards everybody would be able to check the result and also check that their vote is really taken into account. I feel like I miss something because it doesn't seems that complicated.

15 comments

[ 1.8 ms ] story [ 37.9 ms ] thread
> You would sign your vote anonymously with a key given by your government

So the government knows who you voted for?

No, that would be terrible ! I see it this way : they give you a USB key containing a key (pub and private). It is not affiliated to you in any way. It's just generated and stored on the USB key. One problem I start to see is : how can you prevent somebody that has a key, but is not allowed to vote, from voting ? This could be done by keeping a record (mabay again on a blockchain) of the allowed keys. Therefore, each key would have an expirity date.
> It is not affiliated to you in any way.

How can I know/trust that? These things are proposed a lot, and they all tend to fail around ease of use, properly establishing anonymity, and trust into their implementation.

A guess you trust this system the same way you trust people from not looking in the urn after you put the envelop in. Or not altering the count when they open it. Do you have an example of failure like you said ?
> How come there is no initiative to build an online voting system that use a blockchain as a mean to secure the process ?

Because the very idea of using document timestamping service to vote is stupid. Voting has different needs and thus cryptographers developed different protocols.

https://en.wikipedia.org/wiki/Electronic_voting#Cryptographi...

I don't see how it would be stupid. Timestamping would be an other way to check that my vote wasn't altered. But I guess I is not very useful in practice. The main advantage I was seeing in blockchain is that it's immutable and distributed. Is there some other systems that offer those features ?
> I don't see how it would be stupid.

What computer-related fields call merely impedance mismatch between the tool and the job, in cryptography always ends up as catastrophic results. This is how it would be stupid. And add to that blindly following a fad (blockchain in this case), this is stupid, too.

> The main advantage I was seeing in blockchain is that it's immutable and distributed.

So would be DHT. No need to waste energy in calculating hashes.

And you don't need the voting system to be distributed, you just need it to produce results verifiable for everybody that took part in voting. If you had checked the link I provided, you would know that and if there are any systems that provide appropriate features.

The problem is that people interested in manipulating the election could come to your place and offer you money in exchange for your vote.

That's a damn good reason for using polling booths in public places.

The method you propose has no means to prevent ballot stuffing.

Anyone who has compromised the private key used to generate vote tokens could use it to generate a million tokens to create a million fake votes.

You can't have anonymous votes and prevent ballot stuffing. The paper ballot system just raises the difficulty of ballot stuffing to a point where it's reasonably uncommon.

1. Assign a set of public/private key to each person.

  This ensures that people can validate that their vote was taken into account.
2. Make the list of all public keys and their owners public.

  This ensures that there can only be one vote per person.
3. Let people trade their keys with other people.

  This ensures that people who want to remain anonymous can do so.
Am I missing anything?
Generally, "x but on a blockchain" is a way to generate bad new ideas.

I've seen inchoate proposals to put voting on Bitcoin and now on blockchain for years, but nothing that is a concrete proposal, and more importantly how blockchain solves whatever the actual problem is.

(comment deleted)
Voting is best with pencil and paper, exemplary security, and transparency. Anything less and you give texture to your threat surface and somewhere for bad actors to grip and turn.
A friend of mine had such an idea and implemented it on his undergraduate thesis. He used the technology for voting system in Indonesia called Pemilu. But, Pemilu is a manual voting system. He wants to bring blockchain technology to electronic voting system or E-Vote. From his research, the results:

1. This technology can prevent vote data tamper attempt inside the voting system.

2. There is elimination for invalid data through many validation process.

3. We can request copy of similar data from another node as a backup if there is any tampered or broken data.

I would like to share the paper. But, it's not available in English.