Hacker News new | ask | show | jobs
by EGreg 1097 days ago
When we were implementing blockchain-based voting, we assumed that since people trust banking apps with their money, they should be able to trust a crypto wallet with their vote.

But the biggest security flaw, it turns out, is systemic, not individual: people simply don’t care about securing their one measly vote as much as they care about securing $100,000 in their bank.

So while people were motivated to secure large individual balances, they were not motivated to secure their votes.

Which is why we have to force people to confirm their votes on another device, so that Apple or Google couldn’t theoretically steal the election by lying to you about who you voted for, let alone some random website like stackoverflow (which people trust in their moderator elections etc.)

It turns out that this is also necessary for Web3 — the current state of security is dismal, the vast majority of people don’t actually check they are interfacing with the right contract or calling the right method or sending the right parameters before they hit “Submit” to sign the transaction. So even there, people have to be forced to double-check the details on another device, depending on the value of the transaction.

For more info see my article from 2020: https://www.coindesk.com/tech/2020/03/12/in-defense-of-block...

1 comments

How do you imagine a blockchain-based voting but still a secret one? Everything is totally visible in any blockchain.
Personally, I think we will move beyond blockchains. There are new technologies out there (DAG, HashGraph, and our own: Intercloud). There is also "sidetree protocol" that is used to secure Merkle trees with a blockchain, used by Microsoft's DID-compliant new ION for identity, and also I think by bluesky. But at the moment, Blockchain is widespread, kind of like PHP is widespread.

Polygon is probably going to be the winning provider of the space: https://community.intercoin.app/t/polygon-overtakes-ethereum... (although there are smaller ones, such as Arbitrum, Cardano)

I imagine that, in the future, we will simply have an "embarrassingly parallel" set of append-only logs, which is already possible with projects like Hypercore. And we will run consensus with those.

As for your question - the way you have secret voting is by using ring signatures. (Monero has ring signatures.) You just have to indicate that you're part of a group, and that you used your one vote, but it doesn't say who you are https://en.wikipedia.org/wiki/Ring_signature

This was known since 2004, and doesn't require blockchains in fact: https://eprint.iacr.org/2004/281.pdf

A blockchain-based way would be to use a mixer (like Tornado Cash does) to mix up the tokens so each person still has exactly 1 but now it's harder to trace who has which one.