Blockchain

A simple guide to to Blockchain and a compelling use case: Voting Election Democracy Worldwide Zero-Fraud

Mandel_zoom_07_satellite

(Mandelbrot Set signifying the alarming simplicity and yet powerful possibilities of some simple math)

The Blockchain is useful for financial, legal and other applications in general not just for Bitcoin.    It is a new enterprise grade technology that disrupts a lot of existing trust and transactional  systems.

Properties of the Blockchain:

1) You have a unique code which nobody can fabricate themselves from anything you do.  They can’t “be you” without stealing it from you.

2) Other people have a way of determining that you and only you have the code, so assuming you haven’t lost it, other people know you are who you say you are.

3) When you do a transaction (buy something, send someone money, vote, sign your will, sign a contract) the information recorded on the blockchain in an indelible manner and copied hundreds/thousands of times.  The blockchain is publicly viewable by all proving that you have done the thing you did and it is very very hard for anyone to erase or change your transaction no matter what access they have to any system or data.   This includes governments, large corporations, banks, rich people or despots.

This is the basis of the blockchain and its usefulness for instance to do currency transactions.    In a sense the blockchain is more secure than a bank or government could ever be.  There is no known way to use your unique code without stealing it from you.   There is no way to change (or delete or add) a transaction to the blockchain, it is inviolable and permanent record of transactions.

Use Case:   Fraud-less Voting

D_Blt3

An example of how to use the blockchain for another application is “voting.”   In a voting system we want to insure:

1) each person can only vote once and only once

2) each person is a “valid” voter

3) We are 100% sure that the ballot that we have is exactly the ballot the voter cast without necessarily having to know the identity of the voter

4) The ballot box cannot be stuffed with fake id’s

5) The votes of each person are confidential

This is a pretty straightforward usage of the blockchain.

Registration

Each voter when they register engages in a process where they generate a public/private key pair of which the government keeps the public key for the registered voter.   It is desirable that the government simply keep the public key but not associate any personal information with the public key identifying the person.  They can have a separate database with lots of personal information on who the voters are but the public key should not necessarily be associated with the particular voter.   The number of registered voters should match the number of public keys.  Other than that it is not needed that the public keys be associated with individuals.   The list of valid public key voters should be made public and downloadable.

Getting the ballot and filling the ballot

Any person can request a ballot.  They are publicly available anywhere on the web and could be in any form including a basic text file or whatever.  Once downloaded the voter can fill in the ballot with any software of their choosing which will “mark” the ballot.   It is desirable that the source code of valid ballot filling programs are published on the internet in open source.  It is also important the binary hash of the executable ballot program is compared against the hash of the official ballot program.  There should be identification programs which make sure that the hash code of the ballot voting program and the ballot itself are checked by a third program which validates you have official material.  These programs should run on web sites run by independent international agency authorities that keep a database of the official ballot hashes and the ballot filling applications.  An invalid voter can vote and put on the blockchain but their vote wouldn’t be counted unless they had a valid public key associated with a valid voter.  Alternately the voting software could check a list of valid voters public keys before putting the ballot on the blockchain.

Submitting your ballot

You submit your ballot through a ballot submission service provided by submitting your ballot to the blockchain.   The ballot filling application will also give you a hash code of the completed encrypted ballot.    Once the ballot is submitted the submission service will return the hash code of the received ballot.   In case there is any concern that somehow the incorrect ballot (or fudged ballot) was somehow submitted the ballot filling program can also verify that the blockchain does show that your ballot with the correct hashcode has been added to the block chain.

Counting the Ballots

Since we have the public key for your ballot we can decrypt your ballot and every other ballot submitted.  We can therefore sum the votes as well as almost anybody could do this.  They would all be on the block chain and visible.  We cannot determine who filled out which ballot because there is no association between public key and individuals.   All we know is that the public key is a valid voter as identified by the registration process.

Other forms of fraud that are impossible with this system

Nobody can vote your ballot because they don’t have your private key.  Public/private keys are unique so they can’t be mass manufactured without having a disconnect from the number on the roles and since real people will have registered they will have a set of public keys which go with those voters (not individuals but voters in general) Using alternate keys won’t work because only the correct public/private ones will work on the block chain (voting roll.)    The ballots won’t decrypt.     It is impossible to “lose” votes since all votes will be on the block chain copied hundreds of times worldwide potentially.

Advantages of such a system

This system has massive advantages which could transform democracy throughout the world.

1) Impossible to stuff the ballot box

2) impossible to modify a ballot

3) the ballots are all visible publicly so that any third party can count the votes anywhere in the world

4) no ballot is identifiable to any individual

5) Ballots cannot be lost

6) The voter is certain at the time of voting their unmodifiable ballot exactly as they filled it out is on the blockchain and counted

7) The system is open source entirely

8) International and national organizations can verify the integrity of the system and the entire process from start to finish

 

Here are some articles suggesting the same:

danish-political-party-may-first-use-block-chain-internal-voting

Advertisements

3 replies »

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s