Can you use ethereum platform as digital voting system ?

pieroforpierofor Toronto , CanadaMember Posts: 6
Hi ,

I want to build a really democratic organization or a political party, but I need a software platform that allows everyone to vote for every important decision .

Can this be done with ethereum platform ?

Please find the main points of our the specs :

A) the vote should be secret .

B) every voter should see how her / his vote is counted .

C)The result of the election should be visible soon after the closing time .

D) In case of disagreement on results ,the audit team in charge should contact each voters and ask if her /his vote was correctly counted (see point B) :Every single vote should remain secret , but for the person that voted .


E) The software should be open source to assure the maximum amount of transparency .

F) The system should be very secure to avoid manipulations .

Thanks

Piero


Comments

  • mlacortemlacorte Los AngelesMember Posts: 27 ✭✭
    A and D are the hard parts. With Ethereum, it's easy to ensure that all votes are counted, since all transactions are publicly bound to the blockchain. The hard part is doing that in such a way that a person's vote is private, and yet all logic happens publicly. That would require some fancy cryptography. The only possible solutions that I could think of would involve zero-knowledge proofs and/or homomorphic encryption. It would depend on what kind of a voting system you want to build. Simple majority? More than two parties? What kind of a system did you have in mind?

    The other challenge is enforcing that one person can only make one vote. Unfortunately I have no idea how to go about solving this problem, Ethereum or otherwise. Did you have any thoughts on how to go about this?
  • pieroforpierofor Toronto , CanadaMember Posts: 6
    Hi Mlacorte,


    I have in mind the following :


    1) a system for companies / cooperatives , NGOs etc, where everybody express freely her / his opinion on several options .

    2) a system for political election where there are many parties .


    It should be possible to give the right of vote only to people that fulfill precise requirements .

    Every authorize elector could vote for the first choice , the second one and the third one and also could select also the worst ,second worst and third worst .

    The results should be corrected as Table 1 here below :


    Table 1
    Most voted as ===>Premium
    1st choice==>+ 10.00%
    2nd choice==>+ 5.00%
    3rd choice==>+ 2.50%
    3rd worst===> -2.5%
    2nd worst===> -5.00%
    1st worst===> -10.00%


    The scope of this system is to reduce the "career risk " that is one of the most dangerous and overlooked risk .

    In the political election the scope is to penalize the parties that want to increase the conflicts instead of looking for solutions .

    Ciao

    Piero



  • mlacortemlacorte Los AngelesMember Posts: 27 ✭✭
    edited February 2014
    It shouldn't be a problem to require that all voters must be manually certified by some sort of authority. I still need to give some more thought as to how to go about tallying the votes in a way that is both publicly auditable and doesn't compromise voter confidentiality. It's an interesting challenge, and if anyone else has any thoughts on this, I'd be interested in hearing them.

    As for your voting system, I'm not sure where those numbers came from or what they represent. Could you elaborate further? Also, are we assuming a single victor, or could there potentially be multiple?

    If you are still open to ideas about which voting system you'd like to use, CGP Grey has a few very informative videos explaining some of the pros and cons of different voting systems. Additionally, the Wikipedia page on Voting systems provides a fairly exhaustive amount of information on voting system theory. I confess that I'm not particularly knowledgeable about voting systems, but I found both of these resources to be extremely informative. I'll link them both below.

    CGP Grey:
    Wikipedia: https://en.wikipedia.org/wiki/Voting_system

    Edit: Wow, apparently YouTube links get embedded. Anyway, I just thought of something else. To what extent do you trust your authority who grants people permission to vote? Do you trust them to tally the votes? Do you trust them to verify that someone has indeed voted?
  • mlacortemlacorte Los AngelesMember Posts: 27 ✭✭
    The more I've been thinking about it, the more I'm not sure whether this is possible to accomplish using Ethereum. In order for votes to remain hidden until a specific time, a third party would have to hold onto a password/key/other secret until it's time for votes to be revealed. The problem is that with their secret, they could look at the results as votes are coming in to determine who's voting for who. If you're going to be trusting a third party to this extent, you might as well not use a blockchain in the first place.
  • creatinglakecreatinglake Member Posts: 8
  • koolzokoolzo Member Posts: 1
    @mlacorte, A) can probably be solved by Zerocoin's cryptography

    As for verifying whether you voted or not, surely that will be pretty trivial, given that the blockchain should know whether you voted or not into that system (again, anonymously with Zerocoin's system).
  • pieroforpierofor Toronto , CanadaMember Posts: 6
    edited February 2014
    Hi mlacorte , creatinglae,koolzo ,

    The blockchain should introduce transparency and confidence in any voting system , saving time and money and penalizing the most "hated" party /option .

    In my table "worst" is not the party / option that receives less votes , but one that the voters consider the most dangerous .


    To be sure that only the authorized people vote should be rather easy linking the right to vote to a precise parameter , but in a system where everybody can see who has to right to vote and as koolzo explains "given that the blockchain should know whether you voted or not into that system (again, anonymously with Zerocoin's system)."


    Thanks to everybody

    Piero




  • TuskTusk Member Posts: 33
    Can it not work like this? The voters will pre register to vote and are given public and private keys, at the time of voting they use the public key to vote. The system tally's the results without reveling which vote corresponds to which key. If a dispute arises the candidates by voting with their keys, generate a new key that is sent to the assigned auditors. Or have I overlooked something?
  • pieroforpierofor Toronto , CanadaMember Posts: 6
    Hi Tusk ,

    Can the voter with this system check that her/his vote is properly counted / assigned to the candidate selected by the voter ?

    Thanks

    Piero



  • TuskTusk Member Posts: 33
    edited February 2014
    Hi, Pierofo I think revealing your vote can be optional. I'm not technically qualified to say how this can be accomplished, but I would think by using your private key this can be done at the discretion of the key holder.

    Is it necessary for the system to even reveal both the Identity of the voter and the choice of their vote?

    The auditors need only variety the Identity of the voter and the voter need only confirm their selection is correct, without declaring to the auditor what the selection was unless they choose too.
  • pieroforpierofor Toronto , CanadaMember Posts: 6
    Hi Tusk ,

    A) The identity of the voter should be traceable to check that only authorized voters can vote and that every voter does not vote more than once.

    B) The choice of voter should remain secret , but the voter should be able to see if her/his vote was properly counted .

    C) The auditors should be able to check that the vote is properly counted .

    D) Nobody should be able to link the voter with her/his vote (the vote should be secret ).

    Thanks

    Piero
  • TuskTusk Member Posts: 33
    I think that is possible, but i'm not technical so am not qualified to say it is.
  • pieroforpierofor Toronto , CanadaMember Posts: 6
    Hi ,

    Can somebody build a pivot vote system as defined above?
    I am available to test it extensively and intensely .

    Thanks

    Piero
Sign In or Register to comment.