Author

Topic: 5,000th post: How I use the Bitcoin blockchain for voting (Read 1342 times)

legendary
Activity: 1092
Merit: 1000
I believe that many people are confused about how BitPools actually works. I will try to give a very simple explanation of the voting portion of it.


BitPools is made up of groups of people pledging money toward a common cause.

When enough money is pledged, people with solutions come forward with proposals for the group.

When a proposal is submitted, an amount is set for the proposal to be passed and a minimum amount of bitcoins required per vote. At this time, a list of Bitcoin addresses is created with one address per user (or multiple if there are more options).

At this point, the list of Bitcoin addresses is encrypted and made available to everyone.

Between that time and the vote date people can vote by sending bitcoins to their assigned address.

Once the vote date passes, the decryption files are provided as well as the decrypted list of Bitcoin addresses.

From there, you can see the results of the vote by looking at each address and looking on the blockchain to see if the address has the minimum vote amount.

From there, if the vote passes the proposer gets the funds to put toward the solution (or is escrowed). Otherwise, the bitcoins are returned to the voters.

Gavin actually suggested this method to me, many thanks for such a simple solution.

TL;DR A list of Bitcoin addresses is created and one address is given to each voter, the list is encrypted and made available (people vote by sending bitcoins to their address). After the vote the decryption key is made available and votes can be checked via the blockchain.


What are your thoughts? Any vulnerabilities, other solutions this could be applied toward, could this work toward regular voting?




i think you have a very good idea. much better than the diebold scam or hanging chads.
legendary
Activity: 3598
Merit: 2386
Viva Ut Vivas

I'm very interested in this idea. I have run precisely 1 election and have another to run in a little bit.

My feeling is that ballots should be secret but that voters should be able to oversee the process themselves and prove that their vote was counted correctly and that the entire count is correct.

Are you aware of a block chain based system that would prevent me, the election administrator, from knowing who voted for which candidate?

I am no fan of trust and don't want any voter to be forced to trust me. What I like about block chain methods of voting is that you don't need a PhD to prove the vote was counted correctly...but if ease of verification requires trust that the admin didn't create 100 extra addresses to use himself, it's not worth it to me.

The key is getting the voting address(s) to each voter.

If a precinct has 100 voters. You generate one address per choice for each voter. So if you have 2 choices, you generate 200 addresses.

You could even do it on paper, print a QR code and address for choice A and one for choice B.

Print those out and have them available at the precinct polling station. Have them in sealed envelopes. Each voter comes in, they go into their booth and open the envelope, scan the QR code and send a bit to the address.
Then they drop the paper into a sealed box for verification later.

Or you could step it up and put it on a CD, USB, whichever...they plug it into the voting machine and make their choices.

Even less secure but more user friendly would be to have each voting machine loaded up with addresses. You keep track of how many people use it and ensure (with people) that each person only gets to vote once. Most secure would be them sending bitcoins themselves, less secure would be the machine having a bitcoin client to send bitcoins to the address for the voter (behind the scenes).

If you were able to verify each user online it could facilitate online (at home) voting. There are many ways to do this but definitely not foolproof nor hackproof.
donator
Activity: 1464
Merit: 1047
I outlived my lifetime membership:)

I'm very interested in this idea. I have run precisely 1 election and have another to run in a little bit.

My feeling is that ballots should be secret but that voters should be able to oversee the process themselves and prove that their vote was counted correctly and that the entire count is correct.

Are you aware of a block chain based system that would prevent me, the election administrator, from knowing who voted for which candidate?

I am no fan of trust and don't want any voter to be forced to trust me. What I like about block chain methods of voting is that you don't need a PhD to prove the vote was counted correctly...but if ease of verification requires trust that the admin didn't create 100 extra addresses to use himself, it's not worth it to me.
legendary
Activity: 3598
Merit: 2386
Viva Ut Vivas
So the trust is on Bitpools operator, e.g., he can send some of his addresses to some users, steal fund, and deny accusation ?

Unfortunately there is a lot of trust put on BitPools when it comes to the vote right now. The address the senders use is controlled by BitPools, they then forward those funds on to the winning proposal. Though those funds are only held during the duration of the vote.

But just like any centralized business structure, stealing funds makes no business sense. Once the vote passes and the funds are not transferred, BitPools would no longer be trusted for further votes.

More security would come via multi-sig transactions or something like Mike Hearn's distributed project lighthouse. But I have found that the concept is complicated enough at the moment and adding much more security at this point is not necessary until large amounts of funds are being transferred.
legendary
Activity: 1078
Merit: 1002
Bitcoin is new, makes sense to hodl.
So the trust is on Bitpools operator, e.g., he can send some of his addresses to some users, steal fund, and deny accusation ?
newbie
Activity: 7
Merit: 0
Very interesting concept!

Maybe the explanation can be polished but the idea is really good.. Good luck on the project!
sr. member
Activity: 378
Merit: 250
This sounds kind of like a crowd funded bounty program when people get to vote on if the bounty is paid.

I don't think it would ever be a way that people could vote as it is too complicated for the 'average' person to understand. If the process to vote is too complex then the process could be considered to be an unconstitutional "test" that voters must take in order to be able to vote

From the user perspective they just receive an option and a Bitcoin address to send to if they agree. A simple web interface uncomplicates things, but there is a lot going on behind the scenes to make it secure and transparent.
That parts simple enough, it's the whole concept that confuses people, as clear as your OP was to me now that I finally understand it, in hindsight I actually had to read it about 3-4 times just to wrap my head around it.

None the less I like it and I'll be the first to admit that I may be wrong here, maybe I'm just having a dumb day today and it actually is really is Smiley
hero member
Activity: 508
Merit: 500
Jahaha
Seems nice.
legendary
Activity: 3598
Merit: 2386
Viva Ut Vivas
This sounds kind of like a crowd funded bounty program when people get to vote on if the bounty is paid.

I don't think it would ever be a way that people could vote as it is too complicated for the 'average' person to understand. If the process to vote is too complex then the process could be considered to be an unconstitutional "test" that voters must take in order to be able to vote

From the user perspective they just receive an option and a Bitcoin address to send to if they agree. A simple web interface uncomplicates things, but there is a lot going on behind the scenes to make it secure and transparent.
legendary
Activity: 1036
Merit: 1000
Thug for life!
This sounds kind of like a crowd funded bounty program when people get to vote on if the bounty is paid.

I don't think it would ever be a way that people could vote as it is too complicated for the 'average' person to understand. If the process to vote is too complex then the process could be considered to be an unconstitutional "test" that voters must take in order to be able to vote
legendary
Activity: 3598
Merit: 2386
Viva Ut Vivas
legendary
Activity: 3598
Merit: 2386
Viva Ut Vivas
I believe that many people are confused about how BitPools actually works. I will try to give a very simple explanation of the voting portion of it.


BitPools is made up of groups of people pledging money toward a common cause.

When enough money is pledged, people with solutions come forward with proposals for the group.

When a proposal is submitted, an amount is set for the proposal to be passed and a minimum amount of bitcoins required per vote. At this time, a list of Bitcoin addresses is created with one address per user (or multiple if there are more options).

At this point, the list of Bitcoin addresses is encrypted and made available to everyone.

Between that time and the vote date people can vote by sending bitcoins to their assigned address.

Once the vote date passes, the decryption files are provided as well as the decrypted list of Bitcoin addresses.

From there, you can see the results of the vote by looking at each address and looking on the blockchain to see if the address has the minimum vote amount.

From there, if the vote passes the proposer gets the funds to put toward the solution (or is escrowed). Otherwise, the bitcoins are returned to the voters.

Gavin actually suggested this method to me, many thanks for such a simple solution.

TL;DR A list of Bitcoin addresses is created and one address is given to each voter, the list is encrypted and made available (people vote by sending bitcoins to their address). After the vote the decryption key is made available and votes can be checked via the blockchain.


What are your thoughts? Any vulnerabilities, other solutions this could be applied toward, could this work toward regular voting?
Jump to: