Stirme

From OLPC
Revision as of 00:23, 17 April 2007 by Nolambar (talk | contribs) (initial edition)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The idea behind this project is to provide the means for an instant electronic vote that is trustable, representative and is not dependant on a central authority. Any node can serve both as a voting centre or as a voting booth. This software should be extremely easy to use so that we could target the OLPC project (but not exclusively). It could then be used as a mean of teaching about democracy as well as an actual tool that will allow any community, whether it be local (classrooms, schools) or virtual (ONGs, open source projects) to participate in any decision process.

Every XO acts as a node when this application is loaded. Each node is capable of behaving as a voting booth and a as a voting centre. It's planned to use the mesh networking capabilities to auto-discover other nodes and accessible voting centre. For further scalability the voting centre module can be loaded into an Internet server to which nodes can subscribe.

Every node can load "identities" which identify each voter. These identities are in fact cryptographic keys associated with the voter. A node downloads a signed (by the election's creator) election data (about the options and such) and sends back a signed vote (by the voter). After the election expires, the voting centre publishes the signed election bundle which includes both the original election data, the results, and, on demand, all the actual votes cast, so that each node can independently count the votes and verify if its particular signed vote was counted. For this GPG will be used. The use of GPG just lets us make the process transparent, but it doesn't provide at this point in our specification any kind of anonymity.

For the communication between the nodes, the client and server side, will be through a Web Service protocol.

There are many voting mechanisms and ways to count votes, but initially it will be just developed for the Schulze method. These other methods should be cleanly added in a modular way.