Stirme

From OLPC
Revision as of 21:00, 16 April 2007 by Nolambar (talk | contribs)
Jump to: navigation, 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. This must be done completely from the beginning, i'll require some experienced developers help if available.

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.


Some Case Uses for this application.

  • Juan is a schoolteacher and his class needs to choose a president. He creates a new election on the voting centre in his computer and invites the class to vote. He takes the opportunity to show the students the multiple ways election mechanisms can directly effect their lives.
  • Pepe and a few friends see problems with the current school system. They create an election in an independent voting centre on a public server for their schoolmates where they can propose and decide in a representative way about actions they can take.
  • Andrea's class breaks into an argument about how to approach a school project. They don't seem to be reaching an agreement, so Andrea quickly sets up a vote on her laptop and invites everyone to decide in a representative way.
  • An open source community grows and its leader wants to open up the project for a more democratic representation. He provides the software for download on the project's page and invites the community to vote for a constitution on the project's online voting centre.
  • An ONG wants volunteers around the world to decide quickly on certain course of action and it provides an online voting centre for volunteers to subscribe to.