Hackeando el Congreso

Hace un mes nos presentamos al encuentro de puertas abiertas del diputado Joan Baldoví en Madrid, aprovechamos la oportunidad para proponerle un experiencia de democracia líquida en el Congreso de los Diputados, y para nuestra sorpresa, Joan Baldoví aceptó el reto. Aun no está claro si finalmente podrá materializarse, las cosas en el Congreso cambian en el último minuto.

Desde aquel día hemos estado planteándonos los retos técnicos que supone para nosotros conseguir que este ensayo, de realizarse, tenga éxito, especialmente la autenticación, el cifrado y la escalabilidad; ¿cómo verificar la identidad de los votantes, cómo proteger su confidencialidad y cómo garantizar que el servidor soportará la carga a la que puede someterse?

Reunión con Baldoví

El miércoles pasado nos reunimos con Joan Baldoví en el Congreso y concretamos el formato de la votación:

  1. Se votará sobre la Ley de Transparencia. Se calcula que la votación podría ser a finales de septiembre o principios de octubre. Es posible que la tramitación de la ley se paralice en cuyo caso optaríamos por ver qué otras leyes podrían votarse como alternativa.
  2. Se votarían 4 o 5 preguntas, de las cuales 4 serán enmiendas a la ley, y la 5º sobre la ley en su totalidad.
  3. Podrían por una parte participar simpatizantes de Equo y Compromís, validando a cada simpatizante contra el censo de simpatizante que tienen ambos . También se permitirá votar a cualquier ciudadano español si se autentica con el certificado digital de la FNMT.

Necesitamos que participes

Todo esto no se monta solo, ¡necesitamos tu ayuda! Agora es un proyecto sin ánimo de lucro y desarrollado por voluntarios. A principios de septiembre vamos a organizar un hackaton donde esperamos que desarrolladores web, administradores de sistemas y expertos de usabilidad nos ayuden a que esta experiencia piloto pionera y única en el mundo sea un éxito. Vuestra colaboración es bienvenida, y podéis contactar con nosotros desde aquí mismo, en Facebook, Twitter o incluso en nuestra lista de correo.

I+D+i en Agoravoting

Además de escribir código con mayúsculas, en Agoravoting nos gusta enfrentarnos a problemas complejos e interesantes relacionados con la democracia líquida y la toma de decisiones. Estos son algunos aspectos que nos ocupan y preocupan actualmente:

Traducción del artículo Research at Agoravoting escrito por David Ruescas para este mismo blog.


  • Democracia líquida segura

¿Cómo se puede garantizar la seguridad[8] de la democracia líquida? ¿Se pueden extender los sistemas actuales de votación segura para que admitan la delegación de voto?

A pesar de que los votos de los delegados sean públicos, la propia elección de delegado debe permanecer en secreto. Si decides delegar tu voto, por ejemplo en “Richard Stallman”, dicha selección de delegado será secreta. Si decides crear un delegado llamado “José García” y delegas tu voto en tu propio delegado, dicha elección de delegado también permanecerá en secreto, aunque tu voto como el delegado “José García” será público. Resumiendo, los votos emitidos por los delegados son públicos, pero la elección de delegado no lo es.

El sistema de votación delegada que hemos diseñado se basa en el uso de una fase de votación continua y paralela que recuentan los votos que representan la elección de delegado de un votante.

  • Sistemas de democracia líquida

¿Qué métodos se pueden utilizar para implementar la democracia liquida? (por ejemplo, simple, transitiva, transitiva amortiguada, condicional) ¿Cuál es la relación entre complejidad y usabilidad de cada uno?

  • Inferencia de voto y elecciones recurrentes

¿Cuánta información sobre los votos emitidos se puede extraer analizando los registros históricos de los recuentos de elecciones recurrentes (especialmente, la delegación recurrente)?

Cuando se realizan elecciones recurrentes, hay información que se puede extraer de la diferencia de votos entre dos recuentos, incluso cuando los votos son secretos. Presentamos un algoritmo de deducción del voto basado en rutas, que recoge esta información para calcular la probabilidad con la que cada votante votó a cada candidato, y los resultados de aplicar este algoritmo en procesos electorales reales.

  • Recomendación de delegado y delegación automática

¿Qué métodos de aprendizaje automático (p.ej. k-NN[1], PCA[2]) se pueden utilizar para recomendar los delegados que se correspondan a los votantes? ¿Cuáles son las condiciones de optimalidad necesarias para que la delegación sea efectiva?

El conjunto de los votos emitidos en una democracia líquida se puede utilizar para definir un espacio vectorial de los votantes. La similaridad de los votos se podrá especificar según la función de distancia, o métrica, de este espacio. La pregunta es, ¿cómo representar a los votantes como vectores?

La opción más obvia sería asignar una dimensión a cada votación. El contenido del voto emitido en la votación n sería el enésimo componente del vector…

  • Detección eficiente de bucle

¿Cómo se pueden detectar eficientemente los bucles de delegación para evitar que los votos correspondientes se pierdan en los ciclos?

En la detección preventiva de los bucles de voto temporales, el sistema debe calcular para cada usuario de la aplicación, qué opciones de delegación resultarían en un bucle de delegación. Por lo tanto, la ruta comienza en cada usuario posible. Este tipo de cálculo es demasiado costoso, por lo que debería realizarse “offline” antes de mostrar las opciones de delegados. El resultado de dicho cálculo se almacena entonces para que se pueda consultar para determinar delegados conflictivos cuando se muestre la interfaz de delegación de voto.

¿Se pueden visualizar las votaciones de forma escalable? ¿Qué formas de visualización son posibles para los sistemas más allá de la pluralidad simple (FPTP[7])?

  • Democracia líquida y análisis espectral [3]

¿Cuál es la relación entre lo métodos de análisis espectral (p.ej. PageRank[4], Katz centrality[5]) y los recuentos en democracia líquida?

  • Modelos democracia líquida y representativa basados en agentes

La democracia entendida como votaciones, se puede conceptualizar como un procesador de información social[6], compuesto por un conjunto de procesadores individuales (los votantes) y un integrador (el sistema de votación) que generan en conjunto las decisiones globales.

¿Se puede hablar con precisión sobre la calidad de estas decisiones? ¿Se puede definir de forma significativa el concepto de rendimiento y error?

  • Procesos holísticos de toma de decisiones

¿Qué procesos y herramientas pueden abarcar la toma de decisiones en su totalidad?

La democracia no solo es votar, incluye un problema más complejo que es la toma de decisiones en una comunidad. Los buenos sistemas de toma de decisiones tendrán una mayor probabildiad de emitir decisiones que reflejen las preferencias de la comunidad y se beneficien del conocimiento colectivo. Un sistema de toma de decisiones por lo tanto recibe como entrada las preferencias y el conocimiento y devuelve como salida una decisión. Dicho sistema de toma de decisiones es un agregador de información; las decisiones de mayor calidad son el resultado de sumar el máximo posible de información: no se ignora ninguna preferencia y no queda sin utilizar ningún conocimiento útil.

Si te gustan los retos, ¡ayúdanos a abordar algunos de estos problemas!


Referencias

[1] https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm

[2] https://en.wikipedia.org/wiki/Principal_Component_Analysis

[3] http://arxiv.org/abs/0912.0238

[4] http://en.wikipedia.org/wiki/PageRank

[5] https://en.wikipedia.org/wiki/Katz_centrality

[6] http://en.wikipedia.org/wiki/Social_information_processing

[7] https://en.wikipedia.org/wiki/First-past-the-post_voting

[8] http://www.ee.washington.edu/research/nsl/papers/JCS-05.pdf

Research at Agoravoting

Besides writing great code, at Agoravoting.com we like to think about interesting and difficult problems related to liquid democracy and decision making. Here are some of the things we have our sights on at the moment:

  • Secure liquid democracy

How can liquid democracy be secured[8]? Can existing secure voting schemes be extended to support delegation?

Despite the fact the delegates’ votes are public, the choice of delegate itself remains secret. If you decide to delegate your vote to, for example, “Richard Stallman”, that choice of delegate will be secret. If you decide to create your a delegate named “John Doe” and delegate your vote to your own delegate, that choice of delegate will also remain secret, although your vote as the delegate “John Doe” will be public. So in summary, votes cast by delegates are public, but voters’ choice of delegate is not.

The delegated voting system that we have designed is based on the use a parallel and continuous voting phase that tallies votes that represent a voter’s choice of delegate.

  • Liquid democracy schemes

What methods (eg simple, transitive, dampened transitive, conditional) can be used to implement liquid democracy? What is the complexity-usability tradeoff?

  • 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?

When having recurring elections there’s information that can be extracted from the changed votes between any two tallies, even if the votes are secret. We present a path-based vote inference algorithm that collects this information to calculate the probability with which each voter voted to each candidate, and the results of applying this algorithm to real elections.

  • Delegate recommendation and auto-delegation

What machine learning (eg k-NN[1], PCA[2]) methods can be used to recommend delegates that are likely to be a match for voters? What are the optimality conditions required for delegation to be effective?

The set of votes cast in a liquid democracy can be used to define a vector space over voters. Voter similarity can thus be specified in terms of a distance function, or metric, over this space. The question is, how to represent voters as vectors?

The most obvious approach would be to assign one dimension to each election. The content of the vote cast in election n would be the nth component of the vector…

  • Efficient vote time loop detection

How can delegation loops be efficiently detected such that votes are not lost in cycles?

In pre-emptive vote-time loop detection, the system must calculate, for every user of the application, what choices of delegate would result in a delegation loop.  Thus the path begins at each possible user. Because such a calculation is expensive, it should be done “offline”, prior to the display of the delegate choices. The result of such a calculation is then stored so that it can be looked up to determine problem delegates whenever presenting the delegation vote interface.

How can elections be visualized in a scalable way? What visualizations are possible for systems beyond simple plurality (FPTP[7])?

  • Liquid democracy and spectral ranking[3]

What is the relationship between spectral ranking techniques (eg PageRank[4], Katz centrality[5]) and liquid democracy tallying?

  • Agent based models of liquid and representative democracy

Democracy as voting can be conceptualized as a social information processor[6], composed of a set of individual processors (the voters) and an integrator (the voting system) that together produce global decisions.

Can one speak precisely about the quality of these decisions? Can the concept of performance and error be meaningfully defined?

  • Holistic decision making processes

What processes and tools can encompass decision making as a whole?

Democracy is not just about voting, but about the wider problem of making decisions in a community. Good systems for making decisions are more likely to yield decisions that reflect the community’s preferences and exploit its collective knowledge. A decision making system, therefore, takes as input preferences and knowledge and produces as output a decision. Such a decision making system is effectively an information aggregator; high quality decisions are the result of aggregating as much information as possible: no preferences are ignored, and no valuable knowledge is left unused.

If you’re up for a challenge, come and and help us tackle some of these problems!


References

[1] https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm

[2] https://en.wikipedia.org/wiki/Principal_Component_Analysis

[3] http://arxiv.org/abs/0912.0238

[4] http://en.wikipedia.org/wiki/PageRank

[5] https://en.wikipedia.org/wiki/Katz_centrality

[6] http://en.wikipedia.org/wiki/Social_information_processing

[7] https://en.wikipedia.org/wiki/First-past-the-post_voting

[8] http://www.ee.washington.edu/research/nsl/papers/JCS-05.pdf

Open proposal elaboration

(image from cartoonmovement.com)

Democracy is not just about voting, but about the wider problem of making decisions in a community. Good systems for making decisions are more likely to yield decisions that reflect the community’s preferences and exploit its collective knowledge. A decision making system, therefore, takes as input preferences and knowledge and produces as output a decision. Such a decision making system is effectively an information aggregator; high quality decisions are the result of aggregating as much information as possible: no preferences are ignored, and no valuable knowledge is left unused.

This brief description brings us to the distinction between voting and the general case of  decision making. In traditional voting, voters are asked to cast a vote which represents a choice between a predefined set of already existing alternatives. The alternatives presented to the voter are fixed prior to the vote, they have been previously elaborated by some other agent independent of the voters. The voters simply choose among the set presented to them.

In the terms presented above, the knowledge and preferences that voters input into the system only serves to discriminate between a predefined set of options. If the process by which the options were elaborated has not previously already aggregated this information and materialized it into the options themselves, that information could be lost.

In other words, voting is too coarse grained to aggregate the information in all its richness. The grain is determined by the options, if these options do not previously already represent the best quality decisions, the resulting decision will be suboptimal. The optimal decision implicit in the lost information is unavailable as a choice.

The rise of information technology is very relevant to this problem. It is clear, nominally speaking, that a problem of aggregating information is directly related to information technology. More specifically, the communication possibilities that the modern day internet afford are precisely those that are necessary to open up the possibility of aggregating information from hundreds of thousands of sources in a much more refined way than the coarse grained procedure of voting allows.

The key idea is this: information technology and the internet allow extending voters’ participation from just the voting phase, back in time to include the proposal drafting/elaboration (what before were merely fixed options) phase. In contrast to the coarse grain input that voting allows, contributions to a proposal as it is being written are fine grained; modifications to proposals can be arbitrarily small and precise. From adding (or removing) a comma, to a sentence, to a paragraph, to an entire proposal.

We call this opening up of proposal elaboration to the general voter population Open / Distributed / Federated proposal elaboration.

It is open because anyone can contribute. It is distributed/federated because there is no central authority that drafts proposals and imposes them on the voters. Proposals are drafted spontaneously in a distributed fashion. In conclusion, Open/Distributed/Federated proposal elaboration is a decision making medium that need not suffer from information loss that can affect democracy-as-voting. This strong focus on participation makes this approach strongly related to ideas such as collaborative governance[1] and participative democracy[2].

There are two sides to the coin, however. In opening up proposal elaboration to the general public, the gates to more information are opened, but they are also opened to too much information. The key then, is to balance the benefits of the extra possibilities and ideas that this system allows with the extra noise and less useful contributions that can potentially flood the medium. If the signal to noise ratio is too low, optimal decisions can be discarded, not because the required information was not present as we discussed,  but because those decisions were buried under noise that makes them impossible to find.

In summary, a three stage model of information aggregation as decision making is proposed. Although we use the term stage, these three opportunities need not occur chronologically, they may occur in any order and repeatedly.

  1. The first stage of decision making occurs when a set of individuals sets about collaboratively writing[3] or modifying an existing proposal. Ideally this occurs in realtime, these individuals discuss and debate the changes as they are being made. Or they can exchange views or ideas with more traditional means of interaction, offline. In any case, the proposal is the result of their collaboration and contribution, information in terms of preferences and knowledge is integrated to yield the proposal.
  2. The second stage is proposal cross-fertilization[6]. Whereas the focus on aggregation in the first stage was accross individuals collaboratively writing a proposal, in this stage the aggregation occurs across proposals. Proposals may be forked, merged, recombined and mutated. Sections from one proposal may be imported/transcluded into another one. Although the process is still carried out by individuals, proposal cross-fertilization does not  only gather contributions from a subset of users collaboratively making modifications, but rather contributions are drawn from the entire proposal pool.
  3. The third stage is proposal selection, which corresponds to our traditional idea of voting. Having a given pool of proposals that have evolved during the other two stages of aggregation, the voting population is asked to vote for one (or many).

Due to the problems of noised mentioned above, it may be necessary to add extra stages that act as filters. For example, a filter could discard proposals that are not supported by a threshold number of participants.


References

[1] http://en.wikipedia.org/wiki/Collaborative_governance

[2] http://en.wikipedia.org/wiki/Participatory_democracy

[3] By collaborative proposal editing we mean realtime online editing of document by several individuals. The most common examples of this today are found in Google Drive and Etherpad.

[4] http://en.wikipedia.org/wiki/Google_Drive

[5] http://en.wikipedia.org/wiki/Etherpad

[6] Tools that support this model are for example Wikis[7] and Version control systems[8]. The idea of cross fertilization has been suggested in [9]

[7] http://en.wikipedia.org/wiki/Wiki

[8] http://en.wikipedia.org/wiki/Version_control

[9] http://zelea.com/w/Stuff:Votorola/p/position_space_rationalization