# liquid: an idea about how to implement liquid democracy

i always had problems with politics and voting. my problem with today's form is that the system is way too simplistic and rigid. in the end the choice usually boils down to choosing between two parties, the one you hate less. then wait and hope things do not go way too bad. this is a false choice to me. i feel completely disconnected from the process and therefore i feel like abstaining until i see a better alternative.

i came across the liquid democracy idea which is pretty neat. i will not go too deep into the details or merits of the idea but the main idea is that people can vote on directly on the issues or appoint delegates that can vote on their behalf in issues related to specific topics. people can change these delegations at any moment. this makes campaign circus every 4 years somewhat obsolete which is also a nice benefit.

it is also important to note that it is actually quite easy to migrate to a democracy like this if people wish so. one can create party that provides the above system and then commits to vote in the office according to the people's wishes. if a person wants to vote for party x, they could still vote for this proxy party and in the system they would set their preferences to follow party x's votes. i understand politics is more than just voting but for the sake of brevity i only want to focus on this part for now.

there is only one problem with this idea: it is not obvious how to maintain anonymity in this system. i did a quick internet search but did not find much discussion around the topic. i did find a lot of blockchain mumbo jumbo as if it would solve anything in this aspect of the problem. or the other things i found was questioning this feature of democracy which is also quite absurd. i am sure there are lot of good solutions to this but before searching deeper, i like to give it a thought of my own: how would i reinvent things with zero practical knowledge. writing down just helps me make the ideas more concrete. i will get everything wrong but at i might learn something out of this when i am reading about serious solutions.

my system would have couple important concepts:

had i a website for this, i would not allow much discussion to happen on the site other than casting the votes. this way there is no need for moderation which can avoid a lot of problems and makes the site lightweight. as to where the votable issues coming from: that is a bit outside scope of this brainfart but the general gist is that it would go through formal channels and the only people that can suggest votable issues are the people who then agree to be held accountable for the outcomes.

one familiar with the concepts of liquid democracy can probably already imagine how one could create a system using the above concepts: after people log in, they can see issues, cast their votes directly, or set up delegations to public profiles for specific topics (e.g. healthcare, education, or just education/highschoolers). they also see their historical votes, and what delegation chain led to that vote if any.

however two issues remain: how to ensure one person can have only one account and how can someone verify that their vote counted.

i assume that the country already has a way to uniquely identify its citizens with some sort of official id card. i imagine this algorithm after i decided that i want to participate in the voting anonymously:

my main goal here is to ensure the fact that there is no computer system that somehow associates my identity to my profile in the voting site. in order to achieve this my idea is to split the registration into two steps done at a different time by different organizations.

for simplicity let's assume the registration part happens in january (no voting during that time) and voting happens during the rest of the year, from february until december.

in january the first organization checks my identity and then it records this fact into their database. this registration fails if i am already in the database. the only thing the database records is the unique identifier on my id card (e.g. social security number). then as a proof they (or some other trusted organization) issue me a ticket which is a pair of public and private keys which i can use as a proof that i correctly proved my identity. the ticket's public key goes into a separate database so that the ticket is not linked to my id number. the organization throws ticket's private key away, only the voter keeps it.

on the 1st of february this organization would release the list of people who registered for voting and the list of public keys of the tickets the system generated. the two lists are not connected but they should have the same number of elements. this way people could check who registered for voting and also ensure that there are no invalid tickets maliciously generated (or if there are, it's obvious). though the only way to audit the lack of invalid registrations would be to confirm with every registered voter that they indeed registered. independent auditors can probably use some statistical methods to estimate the number of invalid registrations.

the second organization is the one that runs the voting site. in order to register here you need a valid ticket from the first organization. you need the private key for the registration and one ticket gives one registration only. this way no person can register as another person unless they stole their private key but in that case the former person cannot register. again, this error is detectable even if not correctible. this system also does not collect anything other than a (perhaps randomly generated) username and password. no email address even to avoid the possibility of linking data after a leak (again: users should use separate sites to keep informed about what is going on; i am imagining an infrastructure service, not a social networking site). even the ticket's public key is not linked to a specific user other than marked as used in a separate table.

the registration is valid only for a year. people will lose passwords or have their accounts hacked. since the system itself does not link accounts to the real people, those accounts will be lost until their expiration. this would be the cost of people not being careful with their password (a sort of perverse democratic darwin award). however the damage is only temporary because next year people can re-register.

the other problem is accountability of the votes. i think the solution for that is just public dumps of the actual votes. after each vote the system releases a big file that contains a row with 2 elements: random unique number identifying the voter and the actual votes (the delegation chain would not be public, the system resolves those automatically, only the final votes remain). the unique id for the voters would change after each vote so that it is impossible for anyone to track voters over time yet each voter can independently verify that their vote is in the official dump.

and that would be the gist of it. obviously as it stands there are a lot of rough edges that need careful thought. it does not rely on any wasteful blockchain crap though. sure, it requires a trusted central authority running this but as long as that authority is transparent, i do not see a problem with this. if a society cannot arrange this, then no amount of blockchain technology can save it. if it can then the blockchain tech is not really needed.

i can see a bunch of parties starting up. the only sad part of it that although most of them embrace blockchain as the savior of earth, they do not care much about anonymity. or at least they are not doing good job explaining why they ask for my name and other data and how can i be sure that it will never leak away: linking my votes and my identity. not that i particularly care about my votes being public or not, i just want to make sure the system gets this aspect right. i will look out for stuff like this and see how it goes.

by the way, speaking of blockchain. one of my annoyances with blockchains is that they unnecessarily burn lot of computation away. it's wasteful. i'm using a fully central solution here. i think that's a fair tradeoff in exchange for greater efficiency. the whole system i'm describing here could run on a single raspberry pi even for multi-million users. usually centralization happens for saving resources. i don't have much qualms about this as long as centralized component's scope and features are very limited.

and the actual decisionmaking might slow down, one won't be able to make unpopular things into law since people won't vote on it. i think that's fair compromise. if someone wants to make an unpopular change affecting the whole population, i think it's fair that they should first convince the whole population to want it rather than forcing it down their throat (as opposed to convincing only a few politicians). or maybe try to convince smaller communities to willingly canary some changes and only try for the global change if the canary was successful. in any case, it might not be perfect, but i think it would make people more interested in the whole political process.

update from 2021: ha! such parties actually exist just as i suspected! examples:

published on 2019-12-22, last modified on 2021-05-09


posting a comment requires javascript.

to the frontpage