TrueVote

Why TrueVote chose Bitcoin for immutable proof-of-ballot

As described in the TrueVote White Paper, a fundamental property of secure elections is a provably tamper-proof immutable ballot. TrueVote accomplishes this through a data integrity pattern known as a “checksum”.

Checksums

Take this simplified payload of ballot data as an example:

{
"BallotId": "1217",
"President": "Jane Smith",
"Proposition62": "No"
}

Running this data through the MD5 algorithm results in the checksum:

3f378d775cf6eda6f3aeee94c7342b69

Now, let’s imagine a ballot that is altered to record a different option to what the voter submitted for ‘Proposition62’:

{
"BallotId": "1217",
"President": "Jane Smith",
"Proposition62": "Yes"
}

Running this data through the MD5 algorithm results in a checksum that is, of course, different than the original:

abba8fbcd5b52ddc6361d5f66f961e39

Now imagine, instead of just one ballot, there are hundreds of millions of ballots and hashing those into a single checksum. Once the MD5 hash is run, again you are presented with a checksum such as those above. This checksum assures that given the point in time the hash was generated, the ballot data was exactly in a certain state, and if any one piece of that data is changed, it will generate a different checksum.

All TrueVote ballots are hashed, that checksum is stored, and all the data used to generate the hash is available for anyone to generate the hash and compare it to the stored hash. This process provides for a repeatable way of determining that data (e.g. ballots) have not been altered.

Enter Bitcoin

* DILBERT © Scott Adams. Used By permission of ANDREWS MCMEEL SYNDICATION. All rights reserved.

There are many reasons to not do this. Decentralism is not a buzzword. It’s a really, really hard goal to achieve and only Bitcoin has done it. Jimmy Song lays it out quite well in his seminal piece, Why Blockchain is Not the Answer. It’s a worthy read.

At TrueVote, we’ve taken a much more sensible, pragmatic, and truly decentralized approach. We use Bitcoin.

Bitcoin + OpenTimestamps = Immutable Data

This is exactly what TrueVote is using to validate ballot data. Periodically, depending on the volume of data, TrueVote takes all the ballot hashes, hashes those to generate a single hash (aka Merkle Root), and then uses OpenTimestamps SDK to generate an attestation stamp based on the current time and state of the Bitcoin blockchain. The only way the stamp could have been generated is if the data was a certain way at that time.

As Bitcoin is the only truly decentralized blockchain, we never need to be concerned that the state of the blockchain at the time of stamp will ever be altered or removed. It will be provable as long as Bitcoin exists.

I think timestamps is the most interesting and the most important non-monetary use of Bitcoin” Aaron van Wirdrum — Technical Editor, Bitcoin Magazine

Conclusion

THIS is how we have an immutable, provable, trustless, election system, secured by the most powerful monetary network in the world, Bitcoin.

“Blockchain” is not the magic solution looking to solve all the worlds’ problems, but the Bitcoin blockchain can solve at least two of them. Bitcoin has started to fix money. Voting is up next, and TrueVote is bringing it to the world.

If you liked this blog post and would like to learn more, please visit us at TrueVote.org and follow us on Twitter @TrueVoteOrg.

To ensure a true democracy, what’s needed is an open, fully digital, tamper-proof, verifiable system. TrueVote is designed to fill that need.