Glenn Stok is a systems analyst with a Master’s Degree in Computer Science. He writes instructive articles to help educate his readers.
This essay analyzes a method to use cryptocurrency blockchain technology to ensure the accuracy of election results. Is it feasible? Let’s discuss it.
The reliability of election results has been an issue for decades and has become further acknowledged with the 2020 election in the USA. Suppose we used a blockchain to tally votes.
Let’s consider a blockchain whereby election data can be safely stored and tallied without being manipulated, similar to that used for cryptocurrency. Let’s call it an Election Blockchain.
What Is Blockchain?
Blockchain has become a well-known technology that began as a protocol used for cryptocurrencies such as Bitcoin and Ethereum. It’s a list of blocks (data records), each containing a hash count of the previous block, a time stamp, and exchange information.
Its technology allows for a shared system where everyone can see and enter data, but no one can alter any of the blocks. If anyone modifies a block or adds a fake block to the blockchain, the hash count would not match the previous block, and the data would automatically be disqualified.
The technology has already been adopted to keep healthcare records, track food and beverage supplies, and verify public records such as property titles, birth, death, and marriage certificates.
What’s the Point of Using it for Elections?
The point of using a blockchain for elections is that it’s a distributed ledger that ensures the security of transactions.
The benefit is that every entry by a voter would be secure and cannot be changed by someone else.
The Technology of an Election Blockchain
Synchronizing election data with a blockchain can be done through two methods, using JSON-RPC1 and WebSocket2 protocols:
- Placing voting data on the blockchain does not need two-way notification. Therefore JSON-RPC allows data to be sent to the Central Election Server without the requirement for a response.
- The Internet Engineering Task Force (IETF) had standardized WebSocket protocols in 2011. WebSocket servers validate the "Origin Header” during the establishment of the Internet connection. That avoids cross-site WebSocket hijacking attacks.3
The Central Election Server would be similar to a Cryptocurrency Wallet. Only it would be an election wallet where all the election results are available for viewing.
Why Is a Cryptocurrency Wallet Required?
Well, it wouldn’t be a wallet for cryptocurrency. It would be a wallet to maintain a distributed ledger of ballot data.
With the protocols in place using JSON-RPC and WebSockets that I explained above, the data is secure in a blockchain where no one can interfere with the results. But one would see the tally of the election data in a wallet similar to those used for cryptocurrencies.
The “Election Wallet” would function in the same way as a crypto wallet, with a public key address and private key address:
- Public Key: As with any cryptocurrency wallet, the public key allows anyone to send transactions to the wallet. That key would be in the server at each polling station to automatically send entries to the election wallet.
- Private Key: The election wallet must also have a private key that election officials need to tally the votes. It produces a unique signature when verified through a hash function, so it’s extremely difficult for hackers to duplicate the required signature for access.
How To Prevent Anyone From Voting Multiple Times
The accuracy of data on the blockchain is assured in the same way as cryptocurrency blockchains. That is, the data is verified by miners who run complex algorithms to check hash counts on all blockchain data blocks.
To avoid anyone voting multiple times, everyone needs to sign in with their social security number, which is saved encrypted on the blockchain along with the voting information.
If a second data block appears on the blockchain with a previously used social security number, the mining algorithms will detect that and drop it from the blockchain by marking it invalid.
How To Avoid Votes From People Who Are Dead or Had Moved
This is a problem that was found in recent elections. The only way to deal with it is to verify the data alongside a database of available reports. That has not been done in real time with any election, but it should be implemented no matter how elections are conducted.
As I see it, that can be done in a blockchain with an algorithm that miners use to verify the entries. The algorithm needs to interface with a server that provides data to identify deceased persons and those no longer living in the voting district attempting to add to the blockchain.
Final Thoughts and Outstanding Concerns
The security inherent in blockchain technology would stop those who might wish to change election results in favor of their preferred candidate. However, the application I described above is not complete by any means.
There are remaining issues that we need to resolve:
- Privacy, for one, needs to be addressed. The fact that social security numbers would be used to identify every voter might create a problem with identity theft. Possibly assigning an alternate identification number for every registered voter might work. But all states would need to approve voter identification no matter which method is used.
- Another issue is that various election laws differ from state to state. Conflicts with the interpretation of laws can unravel the usefulness of an election blockchain due to confusing local requirements.
- We also need to handle the different practices of submitting ballots. Those scanned at the polls go direct to the blockchain, but ballots from absentee voters need to be scanned by hand when they arrive.
- And finally, recent laws passed by 27 states and Washington D.C. allow ballot harvesting.4 That would need unique identification of ballot collectors to register valid entries on the blockchain without being rejected.
The technology I suggest is obviously not complete or foolproof. It’s merely meant as an initial proposal for further consideration with a project to create an ultimate solution.
- JSON-RPC Working Group. (January 4, 2013). “JSON-RPC 2.0 Specification”
- "Definition of WebSockets" – Mozilla.org
- "Cross-site WebSocket Hijacking" – PortSwigger Web Security Academy
- "Ballot Harvesting" – Lawyers Democracy Fund
© 2021 Glenn Stok
Glenn Stok (author) from Long Island, NY on April 14, 2021:
That's right Linda. An alternate identification number assigned to every registered voter might be a solution. Thanks for your input.
Glenn Stok (author) from Long Island, NY on April 14, 2021:
That's one of the problems Pam. The laws differ from one state to another too, which makes it even more difficult to create a simplified system.
Linda Crampton from British Columbia, Canada on April 14, 2021:
Your ideas sound very interesting and useful. The only thing that worries me is the use of social security numbers. As you say, that’s a problem that needs to be addressed.
Umesh Chandra Bhatt from Kharghar, Navi Mumbai, India on April 14, 2021:
Pamela Oglesby from Sunny Florida on April 14, 2021:
I think the technology you suggest is good, Glen, as I think we have major problems with many of our voting laws.