Vote inference and liquid recurring elections, example solution

Quick recap of the problem presented in the last entry

Consider the following recurring election scenario:

  • Three candidates: Carl, Catherine and Colin
  • Three voters: Alice, Ann and Bob
  • Two elections: Election One and Election Two

In Election One, the following results are tallied

Carl 1
Catherine 1
Colin 1

In Election Two we have the following tallies

Carl 2
Catherine 1
Colin 0

furthermore we know from ongoing voting records that Alice and Ann may have changed their votes between Election One and Election Two while Bob did not.

Just one clarification. It may not have been clear why “we know whether voters changed their votes between elections”. The reason is found in the security scheme designed to support liquid democracy. Supporting liquid democracy requires that voters can specify a delegate, and that voters can change said delegate at any time. In such a scheme a bulletin board corresponding to the delegation votes contains ciphertexts that are valid for ongoing elections. Because a choice of delegate persists, a given ciphertext must be valid for several elections. Furthermore, the ability to change one’s delegate requires the ability to overwrite such ciphertext at any time.

Therefore, if a bulletin board contains a ciphertext that is not modified over a certain period of time, it implies that the corresponding voter has not changed delegate. Additionally, if a ciphertext does change at some point in time, it implies only that the corresponding voter may have changed their delegate from that point onwards. These implications are what were given as an additional ingredient in the problem statement.

we know from ongoing voting records that Alice and Ann may have changed their votes between Election One and Election Two while Bob did not.

Here’s the solved table, after Election One. The result is trivial given that there are three choices and three voters who each received one vote.

Carl

Catherine

Colin

Alice

33%

33%

33%

Ann

33%

33%

33%

Bob

33%

33%

33%

And here’s the solved table, after both elections

Election One

Election Two

Carl

Catherine

Colin

Carl

Catherine

Colin

Alice

25%

25%

50%

75%

25%

0%

Ann

25%

25%

50%

75%

25%

0%

Bob

50%

50%

0%

50%

50%

0%

One important thing to note is that after Election Two it was possible to obtain probabilities about Election One that were previously different[1]. In other words, information from a given election allows inference about elections other than itself, the information propagates backwards. 

In the next posts we’ll see how this works.

 


[1] Note that if we had added the “changed vote assumption” to the calculation, it would have been certain that Bob voter for Carl in both elections.

Vote inference and liquid recurring elections, an example

One of the things we’ve been thinking about here at Agora voting is vote inference and recurring elections:

How much information about casted votes can be inferred from analysing historical records of recurring (in particular, recurring delegation) election tallies?

Besides being an interesting problem in itself, this problem is relevant for the purposes of securing liquid democracy via parallel ongoing delegation tallies, as is our approach. Today we’d like to suggest a simple example that motivates the discussion. In the next post we will present some ideas and progress we’ve had in this area.

Consider the following recurring election scenario:

  • Three candidates: Carl, Catherine and Colin
  • Three voters: Alice, Ann and Bob
  • Two elections: Election One and Election Two

In Election One, the following results are tallied

Carl 1
Catherine 1
Colin 1

In Election Two we have the following tallies

Carl 2
Catherine 1
Colin 0

furthermore we know from ongoing voting records (see the voting scheme supporting delegation) that Alice and Ann may have changed their votes between Election One and Election Two while Bob did not.

The question is, what can be inferred about who voted for which candidate from the known data? What can be inferred after Election One, and what can be inferred after both Election One and Election Two? The table below summarizes all the questions that can be asked. Question marks stand for probabilities, given that in general there is insufficient information to answer these questions conclusively.

Election One

Election Two

Carl

Catherine

Colin

Carl

Catherine

Colin

Alice

?

?

?

?

?

?

Ann

?

?

?

?

?

?

Bob

?

?

?

?

?

?

Can you fill this in?

Agora development on windows

So, you want to hack on Agora but are stuck on Windows? Not to worry, just follow these simple steps and you’re ready to go!

  • Inside your machine create an empty folder named agora-ciudadana
  • Install virtualbox (you can use other virtualization software, but we will use vbox here)
  • Download a linux operating system image, here we will use Ubuntu
  • Run the vm and install the operating system
  • Set up port forwarding, for example on port 8000
  • From the running vm window, select Devices > Install Guest Additions
  • From the running vm window, select Devices > Shared Clipboard and set to Bidirectional
  • From the running vm window, select Devices > Shared Folders..
    • Add a shared folder (top right button) named agora-ciudadana that points to the folder created in step 1
    • Press Ok
  • Inside your linux vm, create a directory agora-ciudadana, this will mirror that created in step 1
  • Mount the windows directory with
sudo mount -t vboxsf agora-ciudadana agora-ciudadana

This allows you to access your windows directory created in step 1 from your linux vm. For best results, you want to set this up to run on vm startup. Depending on what Ubuntu you installed (Desktop or Server) you can do this via Startup Applicationsor /etc/rc.local.

  • from the parent directory of your agora-ciudadana directory, clone the agora repository
git clone https://github.com/agoraciudadana/agora-ciudadana.git

And that’s it. Now you can follow the standard linux agora installation as described in the INSTALL.md file. These and any other tasks should work just as they would in a native linux installation, with one exception: you should run the server like this

./manage.py runserver 0.0.0.0:8000

this allows you to access your application from windows at http://localhost:8000

With this set up the agora-ciudadana files reside in the host file system, meaning you can use your favorite windows text editing tools and browsers for development. It also means that if for whatever reason the vm breaks or is corrupted, the agora files will not be lost. And because of the Bidirectional clipboard setting, you can freely copy and paste between your vm and windows system.

Have fun!

Online Direct Democracy in Spanish Congress of Deputies

For the first time in history, a Spanish congressman has decided to transfer his vote directly to the citizens through an online voting platform.

Joan Baldoví, congressman for the Spanish green group in parliament (CompromisEquo),  will vote in Congress the “Transparency Act” according to what the public will vote using the web congresotransparente.com. The citizen voting process started on Sunday and will finish this Thursday 12th September 2013.

Your voice will be my voice, your vote will be my vote, do you want to enter the congress with me? If you want to participate in the first project of direct democracy  experience in Congress, then enter the web congresotransparente.com, a free space that allows your voice to be heard in the parliament, don’t wait four years to speak up. Do it now.

The voting process started on Sunday and will finish this Thursday at 0:00 local time.

 

Hacking the Parliament

Agoravoting is a free software project that started to allow direct and liquid democracy online. This initiative was launched this summer, when the developers of agoravoting proposed the congressman to use his vote in a first attempt of direct democracy in Spain. He accepted.
Joan Baldoví, congressman and Eduardo Robles, developer of agoravoting

Since then we have working hard to improve the software, adding cryptography and autentication.