Author

Topic: I want feedback on yet another Distributed Voting System (Read 361 times)

newbie
Activity: 6
Merit: 0
I know there has been a lot of ideas/attempts at taking Bitcoin and translating it directly into a voting system using money as votes but I don't like the idea of mining votes(though the following solutions requires solving a proof of work for each vote cast to reduce spam) and then distributing them, a vote is essentially speech, your voice of support for a candidate, party, idea or course of action - you should not have to be gifted your free speech from the government.

Edit: The reason I have posted this to Alternate cryptocurrencies is that the competing ideas seem to be almost all alt coins right now. If there is somewhere else this should be, let me know.

I've taken the following from here: http://www.reddit.com/r/Bitcoin/comments/1h6shd/national_voting_system_through_decentralized/carnspt

I see potential in the idea and I would like to see it go somewhere - Reddit may not be the greatest venue for serious for development discussion - I'd like to hear from people with an interest.

Quote
I'm a developer and I've been thinking about this for a while and I have collected a mountain of thoughts, potential technical solutions and some philosophical musings. I'll apologise in advance for the lack of the real juicy technical bits, I'm typing this on my phone as I am travelling.

You ask: How can we issue votes

Philosophically, I say the people shouldn't get their vote from the government, the government should get their vote from the people.

I see that translated to tech like this: anyone can create a vote and cast it, but the government wouldn't need to count every vote they recieved, just the votes of everyone eligible - more later.

A decentralised voting network would secure all votes and voting for everyone (this is in contrast to each country getting their own implementation or running their own).

Why? In places without free elections the people could run their own anyway. Even if the anonymous nature of these elections open them to some abuse, you can still use it to communicate dissent with other dissenters and get an idea if you are a fringe group or a majority without sticking your neck out.

These elections wouldn't be how we counted votes from now on, they would be parallel to official elections.

A shadow government of the masses allowing people to gauge how much their government is really representing them.

When it eventually becomes time to use the distributed voting network in real politics, you will take your public key with you to the place you'd have cast your paper ballot.

Instead of handing you a ballot the official would then sign that public key. In the same way they don't write your name on paper ballots they wouldn't record what key they were signing, just that yours was signed.

If you don't trust them to sign keys you shouldn't trust them to hand out the ballots and stop people voting twice.

You could then submit your vote to any node in the world, encrypted.

There would be two types of signiture - one that allowed people to participate in all votes until the next signing event, one where each public key was only useful for one specific voting event.

That way you could have one key signed for local elections and one signed for the national elections if you wanted that level of privacy but would be prevented from using the local election key in the national election, or the convenience of having one key for everything if privacy isn't your worry.

Essentially, for additional privacy you could have a group of public keys signed however each election would only allow you to use 1 of those keys, having 2 signed keys would not give you two votes in this case.

This would also be key in electoral systems where in addition to voting on members of the government you also got to vote on indivdual laws because otherwise you would be using the same key over and over.

Their key would be signed by their boss and so on.

The authorised signers of the public's keys would also be published with the area they were responsible for.

That would mean you couldn't fake votes by adding them to a specific area because you would see 10,000 people voted in a district with only 5,000 people living there.

It would also mean you could trace a group of people to the people who signed their key, which means that person could not use their key to illicitly sign more keys than they should.

A record of the number of people eligible to vote and how many of those officially had their keys signed can be compared to the number of keys signed by that official present in the election results.

You could create different key pairs for different elections so no one could ever prove you voted.

Governments announcing results of the election do so by signing all the votes they are counting as a collection.

Anyone could verify whether or not their own vote was included and challenge it by producing their government signed key and showing that the government ommited it from the results.

Anyone could publish alternative voting results, but as a rule they don't become law or official, just someone's opinion.

Such collections could be derived from election results and be published to the network anonymously if they proved or indicated fraud for example.

The election results would only count votes from signed keys as valid however unsigned votes could still be pushed to the network, creating an unofficial election for comparison.

Each election occurs on a tree, each node can decide which branches to subscribe to. Maybe you only want your country's elections and your world of warcraft guild's, maybe you also subscribe to China's branch to support voting reform.

Spam can be ignored at will by nodes, unlike Bitcoin the tree is not linear, you've no obligation to download all of it.

Each vote is a mini block - after the vote is signed against a specific event or outcome from a given keypair the person submitting that votes needs to solve that vote to the current difficulty before they can submit it.

This isn't completely abuse proof but it can raise the cost of faking or spamming significantly.

Sure, you could build spam generating ASIC rigs, so to combat that voting events can be created by anyone.

That means at the drop of a hat if fraud was found another election could be held, potentially with a different algorithm used for the proof of work and a higher difficulty, making the ASICs useless.

As anyone can create voting events these can also be signed or unsigned.

That means if someone was barred from entering an election he could post his public key and people could vote for him with their government signed keys anyway.

If an alternative government wanted to rise up, they could just do it - create an organisation, publish that organisation's root private key (I imagine the head creates their own key for each election, and signs their underlings with it who then signs their underligns, all the way down to the person working in the polling station).

It could also be used by open elections(such as parlimentary members voting on laws) if participants published their public key.

I think I also touched on some of the questions you had in your other posts.

There is a lot of technical discussion on cutting out spam and fraud.

On this I say sunlight is the best disinfectant.

Things voted on don't just automatically get accepted into law, people are given a chance to view and challenge the published results and because they are completely public they can do so with a little more faith than they would have otherwise.

Sure, people could attempt voted fraud, but at least we would have a chance to catch them and an opportunity to fix it without throwing another few hundred million dollars on an election - a new voting event could be posted and people could use their already signed keys.

The idea isn't that we just blindly obey what the system kicks out, the idea is that if we need to challenge results or methods everything is open to us and we can do so anonymously, pointing out voting irregularities with access to real data without exposing ourselves to the people who would cause those irregularities.

The idea is that one system works for every system of voting, of all sizes, for all countries, whether it is first past the post, additional member system, single transferable vote, etc.

That way each country can run itself the way it sees fit while benefiting from group security.

It allows democracy to spread virally from the countries where the system is running to the countries where it isn't by way of unofficial elections - a feature I think is sadly missing from the alternative solutions I have seen where the idea is basically Bitcoins are now votes and each country runs its own alt coin.

My biggest problem just now is that there are a lot of competing ideas and I've little to no support for my version - on one hand I'm not accustomed to discussing unfinished work, on the other hand without significant public support there would be no point in dedicating my time to this, I want to hear from people.
Jump to: