Bitcoin Forum

Bitcoin => Project Development => Topic started by: kelemeno on June 11, 2019, 09:42:04 AM



Title: Digital voting
Post by: kelemeno on June 11, 2019, 09:42:04 AM

I know this topic comes up fairly often, e.g. :

https://bitcointalk.org/index.php?topic=771064.0
https://bitcointalk.org/index.php?topic=607445.0
https://bitcointalk.org/index.php?topic=5109385.80
https://bitcointalk.org/index.php?topic=5114912

Even so, I would like to propose my concept for digital voting, here it goes:

Protocol proposal:

Basic properties: a completely decentralized voting system, with identity verification (without a central authority), that gives 1 person 1 vote, and is flexible for the voter, allowing him to vote for anybody, and to change the vote anytime. The system crucially enables people to vote secretly.

Deficiencies: No coercion-resistance, or fairness ( i.e. people know how people who voted before them voted, even if they don’t know who those people were).

Using the Bitcoin protocol as the core of the project:
– keep the blockchain, mining, transactions, coins aspect of the protocol
– delete mining rewards, transaction fees. No coinbase coins.

Major changes to the protocol:

1st step:  Create a public database of voters, with self-assigned public keys (store database on the blockchain). These are the initial coins (instead of the old coinbase).  In order to prove authenticity, the voters have to sign each other's identities, with their own PK-s, to create a web of verifications. Optionally, new people can always be mined into the chain, after they have a certain number of verifications.

2nd step: using a simple coinjoin ( https://en.bitcoin.it/wiki/CoinJoin ) transaction, people can anonymize their coins. If the transaction is negotiated on a Tor network, then the identity of the partner in the transaction can remain anonymous. To create such a transaction, pick a partner from the blockchain, put Input 1, Input 2, Output 1 (all public keys) into the transaction, transmit it on the Tor network to the public, it gets added to the (unfinished) transaction pool, the unknown partner can then choose to participate, if yes, add Output 2 to the transaction, also broadcast it using Tor to the unfinished transaction pool, then they can both Sign the transaction and broadcast it in some random order in a similar fashion through Tor, and then broadcast the finished transaction, after which it can be added to the blockchain. Enough such secret swaps can make the identity of the Output coin holders secret. So we have a public database of Public keys, each with an unknown person attached to it.

3rd step: Voting. Using the anonymous public keys, the voters can sign declarations, stating which party/representative (Public key, assigned to a person) they want to delegate their votes to. Optionally, the representative themselves could delegate their acquired votes to someone else. This would all be stored on the blockchain. The result of the voting is a distribution of the votes, according to the declarations.

The result is a flexible, anonymous, vote delegation system.
-The first strength of the system is that the voter can delegate their vote to anyone, after which the representative can propagate the vote further up. In a sense, a large Pyramid could be formed, with people at the base, the representatives higher up.
-The second strength is that the voter could change their vote anytime they want.
-The third, most obvious strength (compared to other voting protocols), is the decentralized nature of the system, which makes it trustworthy since there is no central server to be manipulated by outside forces.
-The fourth strength, compared to cryptocurrencies, is the fundamentally political nature of the chain, which makes changing the chain much easier, including the maintenance of the voter database, to weed out fake identities.   

This system also raises a question, how would the people distribute votes, if they could delegate votes any way they liked. This is more similar to a delegative democracy: https://en.wikipedia.org/wiki/Delegative_democracy

This would make the system different from our current notion of elections, which are occasional events, replacing it with one constantly running program. The lack of coercion-resistance also makes it incompatible with multi-party elections, but it would be ideal inside a single party. 

____________________________________________________________________________


Thank you for reading, and for any opinions that you share.