"e-ballot" -- Proposal for Electronic Voting, Version A

Brian High kv9x at scn.org
Wed Dec 16 10:03:50 PST 1998


"e-ballot" -- Proposal for Electronic Voting, Version A

        INTRODUCTION
This is a rough outline for how electronic voting could be done.  It
will be described as an automated process, but could also be implemented
as a manual process.  For the purposes of discussion, the following
case will be used: Organization=SCNA, Committee=USER SERVICES, 
Voting-Pool=VOLUNTEERS.

        OVERALL DESCRIPTION
This system will use an email account, "e-ballot", that will be used
soley for the purpose of electronic voting.  It will also have a program
running as a cron job to scan the mail file for specific types of messages
and will maintain a few files and archive messages.  The program will
respond to a small set of commands and send out mail automatically based
on commands it receives.  In this way it will operate similar to majordomo.
It will work completely through email and will use voter validation, but
not require special tools or knowledge.

        HOW IT WORKS
The email account (e-ballot) will accept 8 types of messages, all others 
will be ignored and deleted.  The 8 types are: 

1.  voter registration (must be member of "pool" -- see below)
2.  voter unregistration
3.  "move" to vote, including e-ballot phrasing
4.  "second" the move to vote
5.  ballot
6.  request for help file (includes list of groups to register for)
7.  create a new voting group (that would be listed above after creation)
8.  delete a voting group (must be person who created it)

(Voting pool updates will be mailed directly to the "vote-master"
for manual installation.  The must come from an organization leader who
has been designated by the organization for this purpose.  For SCNA 
volunteers, the Volunteer Coordinator would send a list of volunteers
to the votemaster.  These are volunteers who have signed the volunteer
agreement and who are not in trouble for conduct violations.)

It would send confirmation messages, "move to vote" messages to registered
voters of the group the vote pertains to, "second" messages to
the group and e-ballots to the group.  It would also send tabulated
voting results to the group.  (Here we use "group" to mean the subset
of organization/committee members who have registered to vote and who
have been accepted.  See below.)  [As you can see it works a lot like
majordomo and could possibly be done by majordomo with the proper
modifications.  However, it may be easier just to write a single
perl (or other) script to do it.]

        VOTER REGISTRATION
A voter registration message body would look like this:

================ BEGIN MESSAGE BODY =================
register scna user-services volunteers First-name Last-name
================  END MESSAGE BODY  =================

FORMAT: register org-name sub-group voter-pool First-name Last-name

... and would "subscribe" the sender to the "voters" list
for that organization/committee pair.  A file would be maintained
in the /home/e-ballot directory for voters_scna_user-services and
the email address of the sender would be stored there, but first the
name will be checked against a list of approved_scna_voters-volunteers which
is a list provided by the volunteer coordinator and contains names
of everyone who has signed the volunteer agreement.  (This list is
not to be confused with approved_scna_voters-members.)  So, if they are
on that list, they will receive their unique voter password, which is
generated randomly.  For their e-ballots to be honored, the ballot must
have the same name and password on it.  The voters_scna_user-services 
file will store the names and passwords and be readable only be e-ballot
and by root.

        VOTER UNREGISTRATION
Unregistering would work the same way, but backwards.  

================ BEGIN MESSAGE BODY =================
unregister scna user-services volunteers First-name Last-name PASSWORD
================  END MESSAGE BODY  =================

FORMAT: unregister org-name sub-group voter-pool First-name Last-name pass

A confirmation letter would be sent saying that the person had successfully 
unsubscribed if the name and password matched the voters_scna_user-services 
file entry.  They would then be deleted from that file.


        MOVE TO VOTE, SECOND THE VOTE AND VOTING
If a registered voter for a particular "committee" sends a message
to e-ballot of the following format, it is a movement to vote:

================ BEGIN MESSAGE BODY =================
move scna user-services volunteers First-name Last-name PASSWORD 
start
I move that we should abandon holding physical meetings altogether
and henceforth conduct all committee business using e-ballot.
stop
================  END MESSAGE BODY  =================

When e-ballot got the message, it would save it in scna_user-services-move
and would assign it a vote number.

A message would then be sent to all registered voters in scna_user-services
that would say:

To: <list of voters>
From: e-ballot at scn.org
Subject: scna user-services volunteers MOVE to vote 0001
================ BEGIN MESSAGE BODY =================
REPLY WITHIN THREE DAYS TO SECOND THIS MOVEMENT

First-name Last-name moves that we vote on the following:

I move that we should abandon holding physical meetings altogether
and henceforth conduct all committee business using e-ballot.
================  END MESSAGE BODY  =================

If a reply to e-ballot comes for this message within three days, by
a registered voter, then the message is stored in scna_user-services-moved
and the following message is sent:

To: <list of voters>
From: e-ballot at scn.org
Subject: scna user-services volunteers CALL to vote 0001
================ BEGIN MESSAGE BODY =================
REPLY BY NEXT SUNDAY (date) AT MIDNIGHT TO VOTE ON THIS
==> vote on first line of message body
==> EXAMPLE: vote YEA First-name Last-name PASSWORD
==> EXAMPLE: vote NAY First-name Last-name PASSWORD
==> EXAMPLE: vote ABSTAIN First-name Last-name PASSWORD

First-name Last-name proposed that we vote on the following:

I move that we should abandon holding physical meetings altogether
and henceforth conduct all committee business using e-ballot.
================  END MESSAGE BODY  =================

When the messages are read by e-ballot, messages with "CALL to vote 0001"
in the subject line will be checked for voter validation and the voted will 
be counted and stored in scna_user-services-0001.  The vote count will be 
sent to the "committee" (people in voters_scna_user-services).  If duplicates
are received, the last one from any given voter will be accepted -- all
others form that voter will be ignored.  If the vote comes after the stated
date and time, the vote will be ignored.  If the name/password combo is
wrong, an error message will be sent to the voter, the "vote-master", and the 
person who called the vote will be CCed.  (No passwords will be ever be sent by 
e-ballot.)

At this point, the e-ballot is complete for that vote.  Any action to
be taken will be done so separately by those involved with the issue
voted upon.

        SUMMARY
This voting system would take several hours, probably 40 or more to
program and test.  However, it need not be automated.  A person
could do all of this work manually, but over time the work involved
would exceed the time to write the program.  Also, I encourage everyone
to search the 'net for a program that could perform the same functions,
namely:

* register voters in a way that would be hard or impossible to "cheat"
* ensure confidentiality
* conduct all voting and other operations entirely by email
* keep accurate and thorough records
* work for many groups, not just one
* clean up after itself  :-)

Personally, I am just barely at the point where I could write such a 
program.  I know there are other out there whose programming skill
and knowledge far exceeds mine.  I encourage anyone who possess such
resources to speak up and take the the challenge.

Also, if you have a modified or entirely different proposal, let's 
hear it!

--Brian High
  Chair, SCNA User Services Committee



* * * * * * * * * * * * * *  From the Listowner  * * * * * * * * * * * *
.	To unsubscribe from this list, send a message to:
majordomo at scn.org		In the body of the message, type:
unsubscribe scn
==== Messages posted on this list are also available on the web at: ====
* * * * * * *     http://www.scn.org/volunteers/scn-l/     * * * * * * *



More information about the scn mailing list