Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

(redmist) Re: Change the world with Perl

by redmist (Deacon)
on Dec 01, 2000 at 01:24 UTC ( [id://44225]=note: print w/replies, xml ) Need Help??


in reply to Change the world with Perl

Hmmmm...electronic voting is a tricky subject. There are many problems with it, maybe even more so than paper voting. A sample of the potential problems:
  • Needs to be encrypted VERY heavily.
  • Corruption can still occur (someone can always alter a DB after the vote to conform to their personal ideology).
  • Verification of geographical location.
  • Verification of identity.
  • Making sure it is "one man, one vote". If this is difficult with just-for-fun polls like the one at the Monastery Gates, imagine how difficult (and important) it would be to implement a proper checking scheme in real elections.

There would be all these problems plus the fact that someone could still screw things up at almost any point in the system. A liberal sysadmin could write a script to discard all Republican votes on the election server (or vice versa, but I don't know any Republican sysadmins).

I love the idea of a electronic voting system, but it must be looked into with great caution before implemented (if it is at all).

IDENTIFICATION DIVISION.
PROGRAM-ID.  redmist.
AUTHOR.  God (Larry Wall/Alan Cox hybrid).
CONTACT.  redmist@users.sourceforge.net

Replies are listed 'Best First'.
Re: (redmist) Re: Change the world with Perl
by amelinda (Friar) on Dec 01, 2000 at 01:51 UTC
Re: (redmist) Re: Change the world with Perl
by coreolyn (Parson) on Dec 01, 2000 at 01:52 UTC

    Actually I've an Application design that handles most of the problems. The trick is to base it around the way things are done now, and not to create a 'new' way around the existing checks and balances.

    Encryption -> dual keyed at two points the vote in the db itself is encrypted and there is no id linking the voter to the vote.

    Corruption -> While a vote can be virtual his ballot should never be. A voters vote would print out at their normal polling place where a voter could go pick it up and review it before it is scanned into the system (or change it). Or, a voter could elect to encrypt his pin number into a bar code on the ballot that would allow poll workers to automatically submit the ballot for him.

    Verification of geographical location -> Here's one of the beauties of my design THE LIBRARY CARD. The library card is a county protected document that carries the citizens age and address it would have to be checked (automated) against the voter registration list for validity. Likewise a registered voter must have a current library card. The majority of county library systems all ready have this information automated.

    One man, One Vote -> See above.

    This is a solution that only Open Source CAN provide. The benefits to overall security and cost to the government institutions could get Open Source recognition and acceptence by local and Federal Governments that it could never achieve otherwise.

    coreolyn Duct tape devotee.
    -- That's OO perl, NOT uh-oh perl !-)

      "Corruption -> While a vote can be virtual his ballot should never be. A voters vote would print out at their normal polling place where a voter could go pick it up and review it before it is scanned into the system (or change it). Or, a voter could elect to encrypt his pin number into a bar code on the ballot that would allow poll workers to automatically submit the ballot for him."

      The crux of the problem, IMHO, is that whether electronic or not, you cannot remove the human being screw-up factor (on purpose or by accident), from the election process. Whenever you get humans involved, things get messy...puny humans.

      As far as library cards are concerned, what is to stop me from breaking into the Library's system and altering data (such as making all registered Republicans "deceased")?

      I am super interested in your thoughts on implementing this system, can you go into more detail?

      IDENTIFICATION DIVISION.
      PROGRAM-ID.  redmist.
      AUTHOR.  God (Larry Wall/Alan Cox hybrid).
      CONTACT.  redmist@users.sourceforge.net
      

        I completely agree on the problem with interfacing with puny humans. I sent you a copy of the design to the sourceforge address you have listed you might want to check that mail box.

        As fo the altering of Library system db you'd have to know who's a republican, which is information the library wouldn't have, the county election commision would hold that info and they wouldn't know the citizens library card number. The validation check for voter registration <=> library card would be an automated check that would not carry any data with the transaction other than the "Yes this voter has a valid library card".

        Further more a voter would have access to the library card account on-line 24x7x365 (Well 364 days actually, the ability to change PIN numbers would have to be shut down on election day, and changable only at the polling place via a secure network connection). Any inconsistencies could be checked by the voter anytime

        I've got tons of details. Check out the app design I sent. Hrmm maybe I should have posted this with the programming 'Challenges' :)

        coreolyn Duct tape devotee.
        -- That's OO perl, NOT uh-oh perl !-)

      I like your idea - it's well thought out and simple. I was thinking it would be a good idea to have data going into two servers not one - double redundancy in case one goes down. This way you have one set of data for analysis, one for backup and one untouched that could be used to resolve issues of vote discrepencies.
      For the analysis end, you would do it in duplicate again. If there's a dispcrepency between the two totals, you go back to your other untouched server and look at that data.
      How do you deal with the process of making sure that the machines have not been tampered with, the scripts used to count the votes are not altered, etc? Perl would work well here - you can examine the script at any time, unlike compiled programs.

      MadraghRua
      yet another biologist hacking perl....

        As for redundancy I was thinking that the system that scans in the ballots at the polling place would also contain a local db, it also occurred to me that the counties might demand holding a db as well.

        As for altered data. I confess I haven't taken it to that level yet, while I started to flesh out the exzact way the encryption keys were exchanged between the review board and the library (so no audit trail/db existed) it became overwhelmingly clear that this thing absolutely had to be Open Source down to the OS. I suddenly had a vision of a Florida situation only the lawyers were all huddled around a pile of source code arguing the constitutionality of how X came to equal Y.

        Since that point I've backed off and stayed at pretty much a project level with this thing. I've only showed it to 2 people so far you and Kim Alexander of the California Voter Foundation. I know this thing is allot bigger than I, and will require more politics than expertise in getting anywhere, and I've got so little time as it is.

        My little 'meditation' here was a sort of feeler for what kind of attention the monks might have in this type of project. I'm hoping that in the end the idea is passed to Universities that collectively start and Open Source project toward achieving making peacetrain a reality

        And if my favorite lang --perl and open source get help and respect along the way then yeee hawww! :)

        coreolyn Duct tape devotee.
        -- That's OO perl, NOT uh-oh perl !-)

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://44225]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (8)
As of 2024-03-28 12:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found