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”.
A checksum takes data and “hashes” it through a known industry algorithm, such as MD5. The algorithm creates a string of characters that the ONLY way to create the same string of characters is if the input data is the same.
Take this simplified payload of ballot data as an example:
"President": "Jane Smith",
Running this data through the MD5 algorithm results in the checksum:
Now, let’s imagine a ballot that is altered to record a different option to what the voter submitted for ‘Proposition62’:
"President": "Jane Smith",
Running this data through the MD5 algorithm results in a checksum that is, of course, different than the original:
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.
At this point in considering modern software design in the cryptographic and cryptocurrency era we live in today, most entrepreneurs seem to come to the conclusion that they must now launch a new coin and/or blockchain and manage the data there, call it a “decentralized” system and start marketing their new “innovation”. It’s intellectually dishonest.
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
As mentioned in the second page of the white paper, Bitcoin core developer Peter Todd created OpenTimestamps to facilitate data is in a certain state based on something known — time. OpenTimestamps verifies data based on the time the data is hashed to the state of the Bitcoin blockchain at that time and provides a ‘Verified’ status if the data has been unchanged based on the ‘stamp’ it issued at the time it was hashed.
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
TrueVote is building tools to enable anyone to download the ballot data, run the same algorithm that TrueVote uses to generate the checksum, and then validate the checksum stamp on any node running Bitcoin blockchain.
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.