Settings

Theme

Ask HN: How does a Bitcoin based voting app works?

6 points by dcarmo 9 years ago · 16 comments · 1 min read


I've been thinking about this for a while. From my understanding, each vote cast would create an entry on the global blockchain. But the minimum one can spend to create a node is a Satoshi, which is frowned upon on the community, and even so when you get to millions of votes, it'd become a bit expensive to keep the app working. Did I get this right or is there a better approach to scale?

olegkikin 9 years ago

If you want fair voting (one person - one vote), instead of rich voting (one dollar - one vote), you absolutely must map actual people to their voting mechanism.

You could, for instance, create 1 billion private keys, and distribute them individually among 1 billion people. And then they would vote by signing their voting choices on your voting website. Of course, you don't even need Bitcoin for this scheme.

It's much more complex than that though, since you have to deal with things like

1) Private key theft

2) Private key sales (rich people buying individual votes)

3) Issuing new keys to the new voters

4) Blocking keys of the dead voters

5) Make sure your DB of everyone's private keys doesn't get stolen

6) Not issuing multiple keys to the same person

7) Making sure individual voting records don't become public, only the aggregates

And all of these organizational things are much much harder than the secure voting code.

matt_wulfeck 9 years ago

At 3.2 maximum transactions per second it would take approximately 500 days of non-stop voting to get through all 146m registered voters in the USA (and during that time the BTC market would be doing nothing but voting). So to answer the question a BTC-based voting system where a transaction is used to cast a vote won't work.

For this to work you'd need a different network with different speeds and abilities, but then you lose the benefits of the distributed BTC network.

We can't even get all states to do an ID check before voting because of disenfranchisement concerns. I don't think a block chain idea is going to get very far.

  • ccarter84 9 years ago

    Could probably run a side-chain and have secretaries of state host it on their servers with federal oversight and auditing....but you're right about the voter-ID stuff (from a number of angles is a nightmare).

PichlerD 9 years ago

This wouldn't take place on the Bitcoin Blockchain, at least not in an on-chain manner as it would be way to slow and costly.

Voting itself comes in different forms. If you mean voting for a head of state to curb election fraud I could imagine this (for now) to be done in a more traditional way.

1) You go to vote in a normal voting booth 2) In the booth you have an offline computer, allowing you to pick a candidate and create a hash on a flash drive. 3) You enter the drive into an online computer infront of the voting scrutineers and the transaction is pushed to a blockchain.

The advantage of such a system might be that you can verify that your vote was counted by keeping the public key, while on the other hand it avoids vote selling if it makes sure that you can't check again who was voted for in the transaction.

quickben 9 years ago

Scale it for your own voting requirement.

Maybe Bitcoin will fit as a template, maybe it won't. Can you take the blockchain as an idea , and start with an empty one?

sly010 9 years ago

It doesn't.

There is no such thing as fair and anonymous voting, digital or otherwise. If you can't tie a person to their vote, you will never know if they sold their vote, at best you can limit the number of total votes.

Bitcoin makes it very hard to tie a physical person to a digital identity, therefore makes it very easy to sell your vote.

dozzie 9 years ago

Please learn first how cryptographers attempt to solve problems in voting, and, more importantly, what these problems actually are. Blockchain is just a timestamping protocol. Voting has nothing to do with timestamps and everything with (1) not knowing how your neighbour voted and (2) validating that your vote was properly counted.

  • davidgerard 9 years ago

    This precisely fails to answer the question. Voting is commonly put forward as a use case for blockchains and indeed Bitcoin, so a simple "how on earth does that even scale" is hardly an unreasonable question. A helpful answer would be something more than "lol read up n00b" and probably more like pointing at a real-life working example.

    • dozzie 9 years ago

      > This precisely fails to answer the question. Voting is commonly put forward as a use case for blockchains [...]

      Commonly and incorrectly. It's like asking how to weld steel using milk and pasta -- the very question is ill-formed. Voting has very different problems than what distributed timestamping (a.k.a. blockchain) solves.

      > A helpful answer would be something more than "lol read up n00b"

      And I didn't specify the field the OP should read about? And on what problems? I think I did. It really takes one trivial query in Google to get a grasp, and I provided the necessary keywords.

  • ccarter84 9 years ago

    Secrecy of the vote is necessary to prevent against such things as vote buying and manipulating others to vote a certain way through intimidation (these days more of a problem outside of US).

    The validating that a vote was counted appropriately probably could be used in a block chain type mechanism, but may need to be more with a zcash type of implementation.

    I'm a true believer that more tech is not the right answer for voting security. (At least for the near term). Voter-verified paper ballots, that can be run through open-source tabulators and then stored for a subsequent mandatory audit would be ideal (3-5% is the target I think we've gone for in Cali).

  • yaacov 9 years ago

    Can you recommend specific resources?

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection