Stirme

From OLPC
Revision as of 13:20, 17 April 2007 by Xavi (talk | contribs) (categorization)
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. While the use of GPG makes the process transparent, it doesn't provide anonymity which would be a desirable option to add in the future.

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 developer help at the design level 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.