<p>The bitcoin concept has no method to limit anything to a single entity.  I am one person yet on bitcon network I have multiple addresses,  I have multiple wallets which contain multiple addresses, I make up multiple nodes, I have multiple rigs with multiple GPU each, I use multiple IP addresses.</p>

<p>Everything about the bitcon network was designed to allow such a scenario to take place.  evoting requires multiple concepts which are incompatible with current bitcoin network</p>

<p>1) authenticate the person voting (is this person a valid registered voter).
2) keep the authenticated person anonymous.
3) ensure votes can't be duplicated
4) ensure vote count is public, verifiable, and immune to abuse by central authority</p>

<p>eVoting not be solved "easily" by bitcoin network.  I would say eVoating can't be solved "easily" period.  There are some very non-trivial issues with the combination of the above requirements.  </p>

<p>The bitcoin network doesn't help to ensure that any of the 4 principles above are met.</p>

CC BY-SA 3.0
2011-10-14T17:17:14.497Z
Unhandled, I agree with the main point of your post -- that bitcoin does not address the hard parts of evoting.  **However, I think (1) and (2) are really the hard ones, and bitcoin can solve (3) and (4), which are the easy ones.**  I have to split this across two comments because it's too long...
eldentyrell
CC BY-SA 3.0
2011-10-14T17:17:57.460Z
Assuming you've solved (1) and (2), you have a list containing one bitcoin public key per voter but no way of correlating addresses with identities.  Now, publish two invalid bitcoin receiving addresses and **ask each voter to send a satoshi (smallest fraction of a bitcoin) to one address or the other** (thereby destroying the satoshi) in order to express their vote.  The earliest transaction in the blockchain from each voter's address is their vote.  **This ensures one vote per address (3), and is public/verifiable/immutable (4).**
eldentyrell
CC BY-SA 3.0
2011-10-14T18:18:47.000Z
I think the real difficulty is that (1) and (2) are nearly paradoxical. It might be possible, for example, to use some kind of GUID for each voter (say SSN here in the US) and deterministically generate a keypair from that GUID, but then anyone with the GUID and algorithm can de-anonymize that person's vote. Any method resilient against (2) would seem to violate (1) and vice versa.
David Perry
CC BY-SA 3.0
2011-10-14T18:46:40.113Z
@DavidPerry.  That is the paradox.  There are some methods but they have compromises. For example say you had a national smart card ID.  Voter could login to voting website using national ID to receive a "ballot key".   The website wouldn't maintain any records of which key is givent to which voter it would just ensure each voter is given only one key. 

Then on election day voter would use different site (or kiosk, or onsite voting terminal) to cast the ballot signing it w/ their ballot key.  The key would allow ballots to be verified as unique and valid but not who cast them.
DeathAndTaxes
CC BY-SA 3.0
2011-10-14T18:52:33.090Z
@theUnhandledException: it would also add centralization into the system at some point. I'd imagine some fair portion of the reason for using Bitcoin as a voting system would be to avoid centralization. Alternately, we may not have to control the addresses so much as the currency itself. If we used a closed-system built on the Bitcoin protocol (Votecoin?) then the coins themselves represent votes, so who cares how many addresses one generates so long as each person is given only one coin to spend.
David Perry
CC BY-SA 3.0
2011-10-14T12:38:46.140Z
2011-10-14T17:12:15.423Z
2011-10-14T17:12:15.423Z
DeathAndTaxes
<p>I think it could technically be solved using a cryptocurrency system like Bitcoin, but not the existing Bitcoin as it stands. It would need some adjustments to the clients and the rules of the blockchain.</p>

<p>If you think about how paper voting works (at least here in Canada), it goes like this:</p>

<ol>
<li>You present yourself with ID and are checked against the voters list for proof of eligibility.</li>
<li>Your blank ballot is torn from the stub. Nothing identifies your ballot to the stub number.</li>
<li>You have one ballot that goes in the box.</li>
<li>The officers keep the stubs to verify that the number of ballots in the box is valid.</li>
</ol>

<p>Now, online:</p>

<p>The first question is identity. This could be established beforehand via user login/password, or some offline validation process if necessary. Either way, the result is, if you're identified and eligible to vote, you provide your digital address and the election office's account transfers 1 Votecoin to you.</p>

<p>The second question is anonymity. The Votecoin you received is identifiable to you and acts as the "stub". Anonymization would need to happen by random exchange of Votecoins with peers to launder the Votecoins to new, anonymous addresses. A few rounds of exchange could take place so even the peers you exchange with have no way to identify you.</p>

<p>You then have 1 anonymous Votecoin to spend to the ballot box address. The record shows only that you were given a balance of 1 vote. Who ended up spending that particular Votecoin can't be known.</p>

<p>For this to work fairly, the blockchain would need to process only net-zero transactions so you always have 1 Votecoin after every anonymization and nobody can steal your vote. The clients could use P2P discovery to handle the anonymization automatically.</p>

CC BY-SA 3.0
2012-03-14T10:14:23.400Z
Namecoin or a similar Bitcoin fork could be used to achieve all (?) of this. https://bitcointalk.org/index.php?topic=66868
kermit
CC BY-SA 3.0
2011-10-17T08:49:08.787Z
2011-10-17T08:49:08.787Z
Andrew Vit
<p>This problem becomes alot simpler, and does lend itself to a bitcoin framework, if you realize one thing. your point (2) that requires anonymity is actually useless. voting does not require anonymity. it is an arbitrary requirement that has created a security theatre, albeit one for encouraging more people to participate.</p>

<p>we live in the 21st century. if one can not stand by their vote, i question their motives. fear lynching? i highly doubt that will be possible with online voting.</p>

<p>eliminate the anonymity and you have yourself a very solvable problem. 2012 is coming, AND I WILL BE VOTING FOR RON PAUL, one way or another...</p>

CC BY-SA 3.0
2011-10-18T09:31:18.313Z
Although I agree with you I think it's like collecting survey statistics, people are likely to be more honest if they feel that their opinion is private. Especially for extremely emotive things such as politics. Family have split due to political differences
barrymac
CC BY-SA 3.0
2011-10-17T20:35:56.573Z
2011-10-17T20:35:56.573Z
Edgar Gharibian
<p>I don't have a clean solution but have put a fair amount of thought into this question, which I'll try and summarize here.</p>

<p>The term "Bitcoin-based" could have different meanings. It could mean (1) using Bitcoin exclusively, (2) using Bitcoin as black box to provide some functionality to augment some other voting protocol, or (liberally) (3) using the same cryptographic toolset as Bitcoin without using Bitcoin itself explicitly. I'll deal with the cases in order (3), (1), and (2). </p>

<p><strong>Using Bitcoin's Toolset</strong></p>

<p>Let me start with (3): using the Bitcoin toolbox. There is a lot of promise to the idea of applying cryptography to voting. In fact, there is a large shared history between digital cash and cryptographic voting, including the origins of both in cryptographer David Chaum and many shared primitives developed over the past few decades. This is the most promising in my opinion but also the least interesting to Bitcoin enthusiasts, so I won't say much more about it here. I do try to summarize  the current state of cryptographic voting <a href="https://security.stackexchange.com/a/5798/382">over on Security.SE</a>.</p>

<p><strong>Using (Almost) Exclusively Bitcoin</strong></p>

<p>In terms of (1), as most of the answers so far point out, governmental voting requires some control over identity to ensure that only eligible voters vote and that they only vote once. This needs to be held in contrast with the right to a secret ballot.</p>

<p>It would be possible for the government to maintain a roster of voters with each eligible voter's name, accompanied by an encryption of their Bitcoin public key. Each candidate could set up an account and you could vote by moving a specified amount to the candidate (if the candidates are trustworthy, they can immediately return the money to you). When the election is over, the blockchain is parsed to count the unique addresses sending money to each of the candidates. </p>

<p>To make sure voters are eligible takes a little work (done outside of Bitcoin): the encrypted public keys from the roster are <a href="http://en.wikipedia.org/wiki/Mix_network" rel="nofollow noreferrer">cryptographically shuffled</a> (this anonymizes the list so you lose track of which encrypted key corresponds to which registered voter). The accounts who cast votes are encrypted (along with their choice of candidate) and also cryptographically shuffled. The election authority can then compare the encrypted signing key of each registered voter with the encrypted singing key of each voter who submitted a vote. This is done <em>under encryption</em> (using a "plaintext equality test"). Only when there is a match between the two lists is the vote actually counted. For each step, the EA publishes a publicly verifiable proof demonstrating it is done correctly.</p>

<p>If a voter is coerced or wants to sell their vote (while not actually selling it), they just make up a new bitcoin account and vote from it, knowing the vote will be discarded because it is not the account they registered (and no one can tell, because the account they registered is under encryption, and votes are only checked for registration after shuffling/anonymization). </p>

<p>This all is a fairly direct translation of an existing system, <a href="http://www.rsa.com/rsalabs/node.asp?id=2860" rel="nofollow noreferrer">JCJ</a> / <a href="http://www.cs.cornell.edu/projects/civitas/" rel="nofollow noreferrer">Civitas</a>, to Bitcoin.</p>

<p><strong>Using Bitcoin as a Primitive</strong></p>

<p>In the above example, we didn't use Bitcoin exclusively but it still featured fairly prominently. We could instead use a smaller piece of what Bitcoin provides. For example, the blockchain is an excellent append-only broadcast channel with timestamping and "<a href="http://people.scs.carleton.ca/~clark/projects/commitcoin/" rel="nofollow noreferrer">carbon-dating</a>." Many cryptographic voting systems (nearly all of them) use a primitive like this which is typically called a "bulletin board."</p>

<p>A bulletin board is a place to post encrypted values and proofs that encrypted values are processed in the correct way to produce the tally.</p>

<p>The idea of <a href="http://people.scs.carleton.ca/~clark/papers/2012_fc.pdf" rel="nofollow noreferrer">CommitCoin</a> (mentioned in another answer; disclaimer: I'm an inventor of it) is to use Bitcoin to provide a bulletin board service. The heavy lifting is done by the <a href="http://en.wikipedia.org/wiki/Scantegrity" rel="nofollow noreferrer">Scantegrity</a> cryptographic voting system.</p>

CC BY-SA 3.0
2012-02-07T20:19:57.093Z
2012-02-10T08:15:30.437Z
2017-03-17T10:46:12.247Z
PulpSpy
<p><a href="https://www.cryptocoinsnews.com/secure-voting-solution-unites-bitcoin-blockchain-and-paper-ballots/" rel="nofollow">VoteWatcher</a> is a new solution being worked on now, using bitcoin blockchain. </p>

CC BY-SA 3.0
2016-09-06T14:32:37.700Z
I don't have more details to add about the implementation as of yet
barrymac
CC BY-SA 3.0
2016-09-06T14:32:22.440Z
2016-09-06T14:32:22.440Z
barrymac
<p>At least one group has at least claimed to develop a voting system based on Bitcoin.</p>

<p><a href="http://www.newscientist.com/article/mg21328476.500-bitcoin-online-currency-gets-new-job-in-web-security.html">http://www.newscientist.com/article/mg21328476.500-bitcoin-online-currency-gets-new-job-in-web-security.html</a></p>

<p>According to the article:</p>

<blockquote>
  <p>The pair have used their method, known as CommitCoin, to close a
  loophole in a voting system they helped develop. In the Scantegrity
  system, voters receive a confirmation code from the list that is
  cryptographically linked to their selected candidate and can be used
  to check on the election website that their vote is counted.</p>
</blockquote>

CC BY-SA 3.0
2012-01-20T22:20:26.723Z
I've edited your answer to include a bit of detail and information. As a general guideline, answering questions with only a link is a bad idea: not only does it look like spam but if the page you link to goes down, your answer has lost 100% of relevant information. Thanks for participating, though, and welcome to the Bitcoin StackExchange!
David Perry
CC BY-SA 3.0
2012-01-22T19:12:38.007Z
Excellent, this is an interesting development!
barrymac
CC BY-SA 3.0
2012-01-20T21:45:39.853Z
2012-01-20T22:18:57.710Z
2012-01-20T22:18:57.710Z
Eric
<p>It occurred to me the other day that the difficult problem of electronic voting could possibly be solved quite nicely using a bitcoin system. I believe it's transparent enough to be trusted. I found a few threads discussing this already.</p>

<p>Has any work been done in this area yet? I think it's worth investigating.</p>

<p>Some threads I seen are <a href="https://bitcointalk.org/index.php?topic=36807.0">here</a> and <a href="https://bitcointalk.org/index.php?topic=46130.0;all">here</a></p>

CC BY-SA 3.0
2011-10-14T10:11:59.900Z
Why are you asking if anyone has attempted and then stating that you have already read the threads about it? Also, if you are going to reference other threads, you should link to them.
osmosis
CC BY-SA 3.0
2011-10-14T10:23:10.657Z
Please add reference links, many of us dont know what you already know (also help educate us on the topic / proposal)
MaxSan
CC BY-SA 3.0
2011-10-14T12:33:56.637Z
@osmosis the threads don't talk about projects, they talk about the ideas. I'm also not sure if I have read everything on the internet yet but I suspect not. I will link what I have seen
barrymac
<alternatives><services>
Has anyone attempted to make a working voting system using a bitcoin based system?
barrymac
# Has anyone attempted to make a working voting system using a bitcoin based system?

(Asked by: username_0 on 2011-10-14)

It occurred to me the other day that the difficult problem of electronic voting could possibly be solved quite nicely using a bitcoin system. I believe it's transparent enough to be trusted. I found a few threads discussing this already.

Has any work been done in this area yet? I think it's worth investigating.

Some threads I seen are [here](https://bitcointalk.org/index.php?topic=36807.0) and [here](https://bitcointalk.org/index.php?topic=46130.0;all)

**Tags:** alternatives, services

> **Comments:**
> **username_1**: Why are you asking if anyone has attempted and then stating that you have already read the threads about it? Also, if you are going to reference other threads, you should link to them.  
> **username_2**: Please add reference links, many of us dont know what you already know (also help educate us on the topic / proposal)  
> **username_0**: @username_1 the threads don't talk about projects, they talk about the ideas. I'm also not sure if I have read everything on the internet yet but I suspect not. I will link what I have seen  

---

## 6 answers

### Answer by username_10 on 2012-01-20. Score: 8 | Accepted answer

At least one group has at least claimed to develop a voting system based on Bitcoin.

<http://www.newscientist.com/article/mg21328476.500-bitcoin-online-currency-gets-new-job-in-web-security.html>

According to the article:

> The pair have used their method, known as CommitCoin, to close a
> loophole in a voting system they helped develop. In the Scantegrity
> system, voters receive a confirmation code from the list that is
> cryptographically linked to their selected candidate and can be used
> to check on the election website that their vote is counted.

> **Comments:**
> **username_5**: I've edited your answer to include a bit of detail and information. As a general guideline, answering questions with only a link is a bad idea: not only does it look like spam but if the page you link to goes down, your answer has lost 100% of relevant information. Thanks for participating, though, and welcome to the Bitcoin StackExchange!  
> **username_0**: Excellent, this is an interesting development!  

---

### Answer by username_3 on 2011-10-14. Score: 12

The bitcoin concept has no method to limit anything to a single entity. I am one person yet on bitcon network I have multiple addresses, I have multiple wallets which contain multiple addresses, I make up multiple nodes, I have multiple rigs with multiple GPU each, I use multiple IP addresses.

Everything about the bitcon network was designed to allow such a scenario to take place. evoting requires multiple concepts which are incompatible with current bitcoin network

1) authenticate the person voting (is this person a valid registered voter).
2) keep the authenticated person anonymous.
3) ensure votes can't be duplicated
4) ensure vote count is public, verifiable, and immune to abuse by central authority

eVoting not be solved "easily" by bitcoin network. I would say eVoating can't be solved "easily" period. There are some very non-trivial issues with the combination of the above requirements.

The bitcoin network doesn't help to ensure that any of the 4 principles above are met.

> **Comments:**
> **username_4**: Unhandled, I agree with the main point of your post -- that bitcoin does not address the hard parts of evoting.  **However, I think (1) and (2) are really the hard ones, and bitcoin can solve (3) and (4), which are the easy ones.**  I have to split this across two comments because it's too long...  
> **username_4**: Assuming you've solved (1) and (2), you have a list containing one bitcoin public key per voter but no way of correlating addresses with identities.  Now, publish two invalid bitcoin receiving addresses and **ask each voter to send a satoshi (smallest fraction of a bitcoin) to one address or the other** (thereby destroying the satoshi) in order to express their vote.  The earliest transaction in the blockchain from each voter's address is their vote.  **This ensures one vote per address (3), and is public/verifiable/immutable (4).**  
> **username_5**: I think the real difficulty is that (1) and (2) are nearly paradoxical. It might be possible, for example, to use some kind of GUID for each voter (say SSN here in the US) and deterministically generate a keypair from that GUID, but then anyone with the GUID and algorithm can de-anonymize that person's vote. Any method resilient against (2) would seem to violate (1) and vice versa.  
> **username_3**: @username_5.  That is the paradox.  There are some methods but they have compromises. For example say you had a national smart card ID.  Voter could login to voting website using national ID to receive a "ballot key".   The website wouldn't maintain any records of which key is givent to which voter it would just ensure each voter is given only one key.   Then on election day voter would use different site (or kiosk, or onsite voting terminal) to cast the ballot signing it w/ their ballot key.  The key would allow ballots to be verified as unique and valid but not who cast them.  
> **username_5**: @theUnhandledException: it would also add centralization into the system at some point. I'd imagine some fair portion of the reason for using Bitcoin as a voting system would be to avoid centralization. Alternately, we may not have to control the addresses so much as the currency itself. If we used a closed-system built on the Bitcoin protocol (Votecoin?) then the coins themselves represent votes, so who cares how many addresses one generates so long as each person is given only one coin to spend.  

---

### Answer by username_6 on 2011-10-17. Score: 4

I think it could technically be solved using a cryptocurrency system like Bitcoin, but not the existing Bitcoin as it stands. It would need some adjustments to the clients and the rules of the blockchain.

If you think about how paper voting works (at least here in Canada), it goes like this:

1. You present yourself with ID and are checked against the voters list for proof of eligibility.
2. Your blank ballot is torn from the stub. Nothing identifies your ballot to the stub number.
3. You have one ballot that goes in the box.
4. The officers keep the stubs to verify that the number of ballots in the box is valid.

Now, online:

The first question is identity. This could be established beforehand via user login/password, or some offline validation process if necessary. Either way, the result is, if you're identified and eligible to vote, you provide your digital address and the election office's account transfers 1 Votecoin to you.

The second question is anonymity. The Votecoin you received is identifiable to you and acts as the "stub". Anonymization would need to happen by random exchange of Votecoins with peers to launder the Votecoins to new, anonymous addresses. A few rounds of exchange could take place so even the peers you exchange with have no way to identify you.

You then have 1 anonymous Votecoin to spend to the ballot box address. The record shows only that you were given a balance of 1 vote. Who ended up spending that particular Votecoin can't be known.

For this to work fairly, the blockchain would need to process only net-zero transactions so you always have 1 Votecoin after every anonymization and nobody can steal your vote. The clients could use P2P discovery to handle the anonymization automatically.

> **Comments:**
> **username_7**: Namecoin or a similar Bitcoin fork could be used to achieve all (?) of this. https://bitcointalk.org/index.php?topic=66868  

---

### Answer by username_8 on 2011-10-17. Score: 4

This problem becomes alot simpler, and does lend itself to a bitcoin framework, if you realize one thing. your point (2) that requires anonymity is actually useless. voting does not require anonymity. it is an arbitrary requirement that has created a security theatre, albeit one for encouraging more people to participate.

we live in the 21st century. if one can not stand by their vote, i question their motives. fear lynching? i highly doubt that will be possible with online voting.

eliminate the anonymity and you have yourself a very solvable problem. 2012 is coming, AND I WILL BE VOTING FOR RON PAUL, one way or another...

> **Comments:**
> **username_0**: Although I agree with you I think it's like collecting survey statistics, people are likely to be more honest if they feel that their opinion is private. Especially for extremely emotive things such as politics. Family have split due to political differences  

---

### Answer by username_9 on 2012-02-07. Score: 3

I don't have a clean solution but have put a fair amount of thought into this question, which I'll try and summarize here.

The term "Bitcoin-based" could have different meanings. It could mean (1) using Bitcoin exclusively, (2) using Bitcoin as black box to provide some functionality to augment some other voting protocol, or (liberally) (3) using the same cryptographic toolset as Bitcoin without using Bitcoin itself explicitly. I'll deal with the cases in order (3), (1), and (2).

**Using Bitcoin's Toolset**

Let me start with (3): using the Bitcoin toolbox. There is a lot of promise to the idea of applying cryptography to voting. In fact, there is a large shared history between digital cash and cryptographic voting, including the origins of both in cryptographer username_5 Chaum and many shared primitives developed over the past few decades. This is the most promising in my opinion but also the least interesting to Bitcoin enthusiasts, so I won't say much more about it here. I do try to summarize the current state of cryptographic voting [over on Security.SE](https://security.stackexchange.com/a/5798/382).

**Using (Almost) Exclusively Bitcoin**

In terms of (1), as most of the answers so far point out, governmental voting requires some control over identity to ensure that only eligible voters vote and that they only vote once. This needs to be held in contrast with the right to a secret ballot.

It would be possible for the government to maintain a roster of voters with each eligible voter's name, accompanied by an encryption of their Bitcoin public key. Each candidate could set up an account and you could vote by moving a specified amount to the candidate (if the candidates are trustworthy, they can immediately return the money to you). When the election is over, the blockchain is parsed to count the unique addresses sending money to each of the candidates.

To make sure voters are eligible takes a little work (done outside of Bitcoin): the encrypted public keys from the roster are [cryptographically shuffled](http://en.wikipedia.org/wiki/Mix_network) (this anonymizes the list so you lose track of which encrypted key corresponds to which registered voter). The accounts who cast votes are encrypted (along with their choice of candidate) and also cryptographically shuffled. The election authority can then compare the encrypted signing key of each registered voter with the encrypted singing key of each voter who submitted a vote. This is done *under encryption* (using a "plaintext equality test"). Only when there is a match between the two lists is the vote actually counted. For each step, the EA publishes a publicly verifiable proof demonstrating it is done correctly.

If a voter is coerced or wants to sell their vote (while not actually selling it), they just make up a new bitcoin account and vote from it, knowing the vote will be discarded because it is not the account they registered (and no one can tell, because the account they registered is under encryption, and votes are only checked for registration after shuffling/anonymization).

This all is a fairly direct translation of an existing system, [JCJ](http://www.rsa.com/rsalabs/node.asp?id=2860) / [Civitas](http://www.cs.cornell.edu/projects/civitas/), to Bitcoin.

**Using Bitcoin as a Primitive**

In the above example, we didn't use Bitcoin exclusively but it still featured fairly prominently. We could instead use a smaller piece of what Bitcoin provides. For example, the blockchain is an excellent append-only broadcast channel with timestamping and "[carbon-dating](http://people.scs.carleton.ca/~clark/projects/commitcoin/)." Many cryptographic voting systems (nearly all of them) use a primitive like this which is typically called a "bulletin board."

A bulletin board is a place to post encrypted values and proofs that encrypted values are processed in the correct way to produce the tally.

The idea of [CommitCoin](http://people.scs.carleton.ca/~clark/papers/2012_fc.pdf) (mentioned in another answer; disclaimer: I'm an inventor of it) is to use Bitcoin to provide a bulletin board service. The heavy lifting is done by the [Scantegrity](http://en.wikipedia.org/wiki/Scantegrity) cryptographic voting system.


---

### Answer by username_0 on 2016-09-06. Score: 0

[VoteWatcher](https://www.cryptocoinsnews.com/secure-voting-solution-unites-bitcoin-blockchain-and-paper-ballots/) is a new solution being worked on now, using bitcoin blockchain.

> **Comments:**
> **username_0**: I don't have more details to add about the implementation as of yet  

---

