Bitcoin Forum
August 14, 2020, 12:48:29 AM *
News: Latest Bitcoin Core release: 0.20.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: A fraud-proof voting system based on Bitcoin and Zerocoin  (Read 8963 times)
amincd
Hero Member
*****
Offline Offline

Activity: 772
Merit: 500


View Profile
January 13, 2014, 05:07:55 AM
Last edit: January 13, 2014, 05:23:23 AM by amincd
 #1

This post in Reddit inspired me to come up with a way to use Bitcoin technology to create a voting system that is both fraud proof and private (conceals who people voted for).

I believe this is possible using a blockchain modeled on Bitcoin and the Zerocoin extension.

Here's how it would work:

There would be a public record showing the name of each voter and the public key that is linked to them. The public key is provided by the voter themselves, so they can be certain that only they have the private key for it.

It would be something like this, just more comprehensive in terms of the personal details posted about the voter (it has to be enough information to identify each person):

Voter nameVoter pubkey
Alice1D7JGuHSq3oTzLPnD4VEFuGhunM2FcMfMq
Bob1FxpXuFQw5nVHBt5rdmC4c8FgCbZ9NXQ1a
Carol12aTDVyvthfLtxSeJHVbJ8MG5GRhVJr6Lo
Dan12bKM37peormM5anhKeBB4qVdVKotmfNUw
Erin186P6ZnpiERtpcv5GoVQiW3ns5DK1pQL8D

Next, each voter would be credited with 1 VoteCoin to their public address. Before a certain date, all voters would be required to mint a ZeroVoteCoin, which must be paid for with their 1 VoteCoin (which they can spend using their private key), similar to the Zerocoin scheme where a bitcoin is spent to mint a zerocoin. They would save the secret serial number they used to mint the ZeroVoteCoin, for later use.

On election day, each voter uses their secret serial number to create a zero knowledge proof that they minted a ZeroVoteCoin, in order to redeem their ZeroVoteCoin for a VoteCoin, and credits the new VoteCoin to the public key of the candidate they want to vote for. The candidate with the most VoteCoins is elected. Since the Zerocoin scheme obscures which VoteCoin credited the ZeroVoteCoin that was later redeemed, the public knows that a particular VoteCoin was used, by a particular person, but not which candidate they voted for.

See a graphical representation below (click for large version):




1597366109
Hero Member
*
Offline Offline

Posts: 1597366109

View Profile Personal Message (Offline)

Ignore
1597366109
Reply with quote  #2

1597366109
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1597366109
Hero Member
*
Offline Offline

Posts: 1597366109

View Profile Personal Message (Offline)

Ignore
1597366109
Reply with quote  #2

1597366109
Report to moderator
1597366109
Hero Member
*
Offline Offline

Posts: 1597366109

View Profile Personal Message (Offline)

Ignore
1597366109
Reply with quote  #2

1597366109
Report to moderator
1597366109
Hero Member
*
Offline Offline

Posts: 1597366109

View Profile Personal Message (Offline)

Ignore
1597366109
Reply with quote  #2

1597366109
Report to moderator
mpattison
Member
**
Offline Offline

Activity: 98
Merit: 10


View Profile
January 13, 2014, 05:14:50 AM
 #2

That... looks absolutely fantastic.

If you can patent that, I would suggest you do so. Shocked
remotemass
Legendary
*
Offline Offline

Activity: 974
Merit: 1003



View Profile
January 13, 2014, 05:24:19 AM
 #3

Could the same key-pair be used for different votings or for each voting you would need a new key-pair to be associated with each voter identity?

Would be great there was a torrent file of all referenced materials of the paper: "How to Build Time-Lock Encryption" by Tibor Jager. And having its magnet link published on bitcoin blockchain!
HairyMaclairy
Legendary
*
Offline Offline

Activity: 1218
Merit: 1962


Degenerate bull hatter & Bitcoin monotheist


View Profile
January 13, 2014, 05:26:29 AM
 #4

Very interesting
amincd
Hero Member
*****
Offline Offline

Activity: 772
Merit: 500


View Profile
January 13, 2014, 05:27:45 AM
 #5

That... looks absolutely fantastic.

If you can patent that, I would suggest you do so. Shocked

Thanks  Cheesy Hmm, it hadn't even occurred to me that it might be patentable. I'm borrowing everything from already existing schemes.

Could the same key-pair be used for different votings or for each voting you would need a new key-pair to be associated with each voter identity?

The same key-pair could be used for different votes. The important thing is that the private key remain secret.

remotemass
Legendary
*
Offline Offline

Activity: 974
Merit: 1003



View Profile
January 13, 2014, 05:45:46 AM
 #6

Seems good, despite the fact that you could still sell your voting right to someone else...

Would be great there was a torrent file of all referenced materials of the paper: "How to Build Time-Lock Encryption" by Tibor Jager. And having its magnet link published on bitcoin blockchain!
HairyMaclairy
Legendary
*
Offline Offline

Activity: 1218
Merit: 1962


Degenerate bull hatter & Bitcoin monotheist


View Profile
January 13, 2014, 06:21:15 AM
 #7

Seems good, despite the fact that you could still sell your voting right to someone else...

Yes because you retain the private key you can prove you voted for X.  So the system breaks down. 
jubalix
Legendary
*
Offline Offline

Activity: 2128
Merit: 1007


View Profile WWW
January 13, 2014, 07:06:18 AM
 #8

hmm  I think I made a similar proposal in a thread a bit back, but not with the zerocoin bit.

Admitted Practicing Lawyer::BTC/Crypto Specialist. B.Engineering/B.Laws

https://www.binance.com/?ref=10062065
amincd
Hero Member
*****
Offline Offline

Activity: 772
Merit: 500


View Profile
January 13, 2014, 07:15:39 AM
Last edit: January 13, 2014, 07:40:11 AM by amincd
 #9

Seems good, despite the fact that you could still sell your voting right to someone else...

True, if you consider vote buying a type of electoral fraud, the scheme is not fraud-proof. I think a variation of this scheme could probably be made that's resistant to vote buying too, using tamper-resistant hardware devices that generate and store a random private key and serial number, and limit the voter's access to them. The device could be designed to destroy the private key and serial number upon use, and each voter would return their device to the electoral body, who would be responsible for verifying that it hadn't been tampered with, after they've voted.
domob
Legendary
*
Offline Offline

Activity: 1117
Merit: 1116


View Profile WWW
January 13, 2014, 07:26:39 AM
 #10

I always thought that it would be possible to implement a public, verifiable and still "private" voting system based on blind signatures only, without the need of such complicated constructs like Zerocoin?  It needs a central authority, but I presume that this is inevitable for votes anyway because someone must be in charge of putting the voted-for government into office and things like this.  (And one needs a registry of voters, as already specified in the OP.)

Then each voter can (authenticated by their public key) can have their vote blind-signed by the authority, which keeps track that no-one votes twice.  But because of the blinding, they cannot determine who voted for which candidate.  In the end, everyone publishes their unblinded vote through some anonymous channel (e. g., Tor).  All votes are displayed publicly, such that everyone can check the result, that each vote is signed by the authority, that their own vote is contained and that the number of votes matches that of participants and whatever else they want.

What's the advantage of a blockchain based protocol?

Use your Namecoin identity as OpenID: https://nameid.org/
Donations: 1domobKsPZ5cWk2kXssD8p8ES1qffGUCm | NMC: NCdomobcmcmVdxC5yxMitojQ4tvAtv99pY
BM-GtQnWM3vcdorfqpKXsmfHQ4rVYPG5pKS | GPG 0xA7330737
amincd
Hero Member
*****
Offline Offline

Activity: 772
Merit: 500


View Profile
January 13, 2014, 07:28:09 AM
 #11

What's the advantage of a blockchain based protocol?

You don't need to trust a central authority. The vote is publicly auditable.
domob
Legendary
*
Offline Offline

Activity: 1117
Merit: 1116


View Profile WWW
January 13, 2014, 07:51:33 AM
 #12

What's the advantage of a blockchain based protocol?

You don't need to trust a central authority. The vote is publicly auditable.

It is also in this case.  And as I explained, I'm of the impression that you need a central authority for voting anyway (at least to specify who is allowed to vote, like a citizen registry).  The only real need for the central authority in the blind signature scheme is for signing votes, which corresponds basically "only" to this function of voter registry.

Use your Namecoin identity as OpenID: https://nameid.org/
Donations: 1domobKsPZ5cWk2kXssD8p8ES1qffGUCm | NMC: NCdomobcmcmVdxC5yxMitojQ4tvAtv99pY
BM-GtQnWM3vcdorfqpKXsmfHQ4rVYPG5pKS | GPG 0xA7330737
p2pbucks
Hero Member
*****
Offline Offline

Activity: 646
Merit: 500


Evolution is the only way to survive


View Profile
January 13, 2014, 08:11:24 AM
 #13

Is this vote anonymously ?
amincd
Hero Member
*****
Offline Offline

Activity: 772
Merit: 500


View Profile
January 13, 2014, 08:42:21 AM
 #14

What's the advantage of a blockchain based protocol?

You don't need to trust a central authority. The vote is publicly auditable.

It is also in this case.  And as I explained, I'm of the impression that you need a central authority for voting anyway (at least to specify who is allowed to vote, like a citizen registry).  The only real need for the central authority in the blind signature scheme is for signing votes, which corresponds basically "only" to this function of voter registry.

If the central authority cheats, how would you know? With a blockchain, the evidence is in the inconsistency between the results the authority announces, and the results indicated by the blockchain. With a central authority that "keeps track that no-one votes twice", there's no way to know if the central authority is doing its job.

Is this vote anonymously ?

Yes, it's totally anonymous, because the step where the ZeroVoteCoin is redeemed for a VoteCoin doesn't reveal which VoteCoin was used to mint the ZeroVoteCoin that's being redeemed.
domob
Legendary
*
Offline Offline

Activity: 1117
Merit: 1116


View Profile WWW
January 13, 2014, 09:55:00 AM
 #15

What's the advantage of a blockchain based protocol?

You don't need to trust a central authority. The vote is publicly auditable.

It is also in this case.  And as I explained, I'm of the impression that you need a central authority for voting anyway (at least to specify who is allowed to vote, like a citizen registry).  The only real need for the central authority in the blind signature scheme is for signing votes, which corresponds basically "only" to this function of voter registry.

If the central authority cheats, how would you know? With a blockchain, the evidence is in the inconsistency between the results the authority announces, and the results indicated by the blockchain. With a central authority that "keeps track that no-one votes twice", there's no way to know if the central authority is doing its job.

This is partially true (and may indeed be an advantage of the blockchain-based system, although I would still accept it if my government did the blind-signature thing).  However, even in the system described by me (which is of course not my invention, but I don't find a good link at the moment) every participant can check that their vote was actually counted, and that not too many votes have been cast in total.  It is true, though, that the authority could publish fake votes for those voters that don't exercise their right to vote (and that it could get away with forging votes if the voters don't check them).  It needs active control by the voters, but the possibility is there to uncover any fraud attempts.

Use your Namecoin identity as OpenID: https://nameid.org/
Donations: 1domobKsPZ5cWk2kXssD8p8ES1qffGUCm | NMC: NCdomobcmcmVdxC5yxMitojQ4tvAtv99pY
BM-GtQnWM3vcdorfqpKXsmfHQ4rVYPG5pKS | GPG 0xA7330737
greyman
Newbie
*
Offline Offline

Activity: 40
Merit: 0


View Profile WWW
January 13, 2014, 03:27:47 PM
 #16

I vaguely remember MemoryCoin uses some type of voting, using the similar schema.

For this to work on a national scale, the following problems must be solved:

1) someone could be coerced to vote in a certain way
2) someone can sell his vote (buyer and seller meets, buyer shows him how he is voting in a desired way, and seller pays him for that).
gollum
Sr. Member
****
Offline Offline

Activity: 434
Merit: 250


In Hashrate We Trust!


View Profile
January 13, 2014, 03:32:24 PM
 #17

So I need to buy 1 BTC for 1000$ to make a vote? Smiley

We need a new coin with unlimited inflation to keep it's price at 0$ so it can be used for coloring without any other costs than transaction fees.
amincd
Hero Member
*****
Offline Offline

Activity: 772
Merit: 500


View Profile
January 13, 2014, 09:36:49 PM
Last edit: January 13, 2014, 09:49:18 PM by amincd
 #18

This is partially true (and may indeed be an advantage of the blockchain-based system, although I would still accept it if my government did the blind-signature thing).  However, even in the system described by me (which is of course not my invention, but I don't find a good link at the moment) every participant can check that their vote was actually counted, and that not too many votes have been cast in total.  It is true, though, that the authority could publish fake votes for those voters that don't exercise their right to vote (and that it could get away with forging votes if the voters don't check them).  It needs active control by the voters, but the possibility is there to uncover any fraud attempts.

Not having to trust a government at any stage of the election is tremendously valuable. It eliminates one of the major sources of civil strife, by elevating the perceived legitimacy of elections, and guarantees that one man indeed = one vote.

So I need to buy 1 BTC for 1000$ to make a vote? Smiley

We need a new coin with unlimited inflation to keep it's price at 0$ so it can be used for coloring without any other costs than transaction fees.

This would be its own blockchain. There's also probably no need to use proof of work for a block chain that's used only within one country.
remotemass
Legendary
*
Offline Offline

Activity: 974
Merit: 1003



View Profile
January 13, 2014, 09:58:06 PM
 #19

It would be nice to have a website - could be something with a name like radiobuttondemocracy.com, or something - that you would login with facebook to assign your desired public key to be associated with your facebook username.
Then you would have a list of questions for all sorts of things for each country/nation/state like:

USA
Do you want gay marriage to be legal there?
Do you want cannabis to be legal there?
Do you want abortion to be legal there?
etc.
etc.
...
...

Canada
Do you want gay marriage to be legal there?
Do you want cannabis to be legal there?
Do you want abortion to be legal there?
etc.
etc.
...
...

UK
Do you want gay marriage to be legal there?
Do you want cannabis to be legal there?
Do you want abortion to be legal there?
etc.
etc.
...
...

It would use this provably fair system or similar so you could just login with your facebook to keep the answers updated and on the day of voting you would just sign the voting with your private key and all votes would be sent at the same time on that voting day.

Would be great there was a torrent file of all referenced materials of the paper: "How to Build Time-Lock Encryption" by Tibor Jager. And having its magnet link published on bitcoin blockchain!
Sitarow
Legendary
*
Offline Offline

Activity: 1778
Merit: 1043



View Profile
January 13, 2014, 11:12:09 PM
 #20

That... looks absolutely fantastic.

If you can patent that, I would suggest you do so. Shocked

I can see ideas to use bitcoin protocol and network to solve modern day issues being patentable.
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!