Bitcoin Forum
June 14, 2024, 09:57:32 PM *
News: Voting for pizza day contest
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Model for Bitcoin Blockchain Elections  (Read 515 times)
QuickBT (OP)
Newbie
*
Offline Offline

Activity: 9
Merit: 0


View Profile
April 20, 2015, 08:20:29 AM
 #1

Model for Bitcoin Blockchain Elections

Bitcoin enables you to publicly track transactions on it’s blockchain. These transactions can also have arbitrary meaning. For example, a vote one way or another.

You could vote for Option A or Option B by sending a tiny dust amount to Address A or to Address B. These options could each represent candidates seeking election.

Imagine that the address with the greatest number of incoming transactions during the specified time wins the vote, regardless of ending balance.

Voters can periodically check their vote transaction to make sure it still exists and is confirmed. Each voter can see the total vote counts and perform blockchain analysis of the election as desired. This means we can reasonably assume every vote is counted, and no votes can be redirected to another candidate.

Problem 1: How do you ensure voters don’t vote twice? Bitcoin addresses can be generated at will.

Bitcoin addresses can be pre-qualified, and only pre-qualified addresses can have their vote transaction counted.

A Bitcoin address is pre-qualified by having a published “master election address” send a transaction to it before the election starts. The address is now provably linked to the election and now has a balance that can be re-allocated during the election.

All voters can see the “master election address” and every Bitcoin address it’s pre-qualified. Votes from addresses that not pre-qualified are not counted. Only the last vote from a pre-qualified address is counted.

Now we can ensure that only a limited number of votes can occur.

Problem 2: Distributing control of the pre-qualified addresses to voters.

We already have a system of distributing ballots to voters - polling stations – let’s use them.

The pre-qualified address keypairs are printed to paper wallet ballots. The paper wallet ballots are distributed to the polling stations and have no personally identifiable information on them. They may have some basic security features to them – such as folded and then connected perforated edges that need to be broken (like a paystub).

Each polling station receives an extra % of ballots - for sampling, new voter registrations etc. This surplus amount must be enough to cover logistics issues of voters, but not enough to allow “ghost votes”.

The government publishes a spreadsheet ahead of the vote, documenting each address that has been pre-qualified and it’s associated polling station. This allows everyone to see how the addresses have been allocated, and to ensure that the right numbers are delivered to each polling station. This can also be cross-referenced with the Bitcoin blockchain. On election day, polling station staff can randomly draw ballots and ensure they have been allocated properly on the spreadsheet.

This spreadsheet can also list published voting destination (candidate) addresses for each polling station and other pertinent information. Each candidate has a pre-authorized address made public for the sole purpose of the election. Those addresses will be monitored during the election time to determine the outcome. Any transactions sent before or after is disregarded.

It is assumed that pre-qualified addresses will be loaded with enough coin to pay dust and a reasonable transaction fee. The voting transaction does not need to confirm in the next block. Today, 1 cent would be enough. Destination addresses could be controlled by the government or provided ahead of time by a candidate.

We now have three groups of addresses, all created specifically for one election:

1) The one "Master Election Address"
2) Millions of pre-qualified Bitcoin addresses as ballots
3) Destination addresses for each candidate running for election

Election Day

Voters appear at their polling stations, identify with ID and are given a ballot. The ballot contains a public and private key, and associated QR codes.

They can use a “voting machine” to scan the QR code of their private key and easily choose from a list of options to vote for. Once they confirm their vote, a transaction is broadcast from their pre-qualified address to the candidate's address. A receipt is printed with TX info, that they can lookup at home.

This means that any issues with voting machines will be immediately identifiable, as it’s reasonable to assume some percentage of people will actually verify their transaction. Current electronic voting machines have a reputation for re-directing votes or not counting them at all.

Alternatively, voters could use a government created mobile App to scan their paper wallet, cast their vote easily with the same public, pre-programmed destination addresses for that election and store a copy of their TX details. This can be done outside of the polling location, reducing the load on the location’s resources.

Finally, voters can use their own Bitcoin wallet and some expertise to import the private key (not sweep!) and place their vote using the publicly available data.

Only votes cast within the election time are counted. Votes from non-pre-qualified addresses are not counted. Only the last transaction from a pre-qualified address is counted.

Polling station staff watch the un-used ballots until the election time is over, at which point they are only worth the dust on them and sent back to main office. Transactions sent after the election time are not counted.

Anyone can now see the results and check to see if their vote was manipulated. They can also track voter turnout and suspicious polling station activity (all ballots used etc). As long as a blockchain with enough power like Bitcoin is used, votes can be considered secure.


Outstanding thoughts:
The election time may need to be longer than 12 hours if 300 million Americans attempted to vote in 12 hours (not enough space in blocks for all votes).

Voters can see how other voters are voting in real time. Some voters may then hold out until later in the election time when partial results are available, compounding the effect.

Deal breaker? Still seems better than what we do now. Any thoughts on pre-qualified addresses, ballot distribution, vote tracking etc?
RocketSingh
Legendary
*
Offline Offline

Activity: 1662
Merit: 1050


View Profile
April 20, 2015, 12:45:02 PM
 #2

As a solution to the problems you have depicted in this thread, you should contact Elwar of www.bitpools.com.

Elwar
Legendary
*
Offline Offline

Activity: 3598
Merit: 2386


Viva Ut Vivas


View Profile WWW
April 20, 2015, 01:12:08 PM
 #3

Yes, like RocketSingh said. This has been done at BitPools.com though not for the purpose of national elections. I would rather move forward than focus on making a failed system of governance more "efficient". Using the blockchain for electing new tyranny is like using the blockchain to improve banking operations.

With BitPools voting, we take a group of people voting on something and provide them with proposals. When a proposal is submitted for vote each person in the group has a public address assigned to them.

The list of all of those public addresses is then encrypted into a single file and released to everyone.

Once the vote date passes, the decryption key is released as well as the unencrypted file with all of the public addresses used for the vote.

Then it is just a matter of tallying the vote from the list of addresses on the blockchain.


If you wanted to do this for electing your new master you would just need to ensure that each person is given their public address for voting in a way that people don't see what address they are given. Some sort of automated hologram sticker thing could probably work.

First seastead company actually selling sea homes: Ocean Builders https://ocean.builders  Of course we accept bitcoin.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!