The key weakness of early online voting systems was the inability to solve what cryptographers called the “double spend problem.” When we send a file on the internet, we’re actually sending a copy of that file; the original remains in our possession. This is acceptable for sharing information but unacceptable for recording votes in elections. The possibility that individuals could cast their ballots multiple times for a candidate made these systems useless — just as vulnerable as paper ballot systems. Points of failure included susceptibility to hackers, coding bugs, and human error. With enough resources, any rogue could “stuff” a digital ballot box with illegitimate votes.

The good news is that building a workable, scalable, and inclusive online voting system is now possible, thanks to blockchain technologies. A blockchain is a peer-to-peer network for exchanging anything of value, from stocks, money, intellectual property, and, yes, votes. In a blockchain-based system, public trust in the voting process is achieved not by faith in one single institution, but through cryptography, code, and collaboration among citizens, government agencies, and other stakeholders.

Traditionally in elections, trust is concentrated in the hands of state and federal agencies and other civic institutions, which are prone to hacking, fraud, or human error (think the Democratic National Committee, the Election Assistance Commission, or the California Department of Motor Vehicles). On a blockchain, a distributed network of computers works to verify transactions, with batches of them ordered and recorded in blocks. Each block is linked cryptographically to the preceding block, forming a secure chain or ledger that anyone in the network can see but no single entity can hack or manipulate.

An attacker who wanted to spend the same dollar twice or cast the same vote twice would need to take command of 51% of the computers in the network simultaneously and rewrite the entire history of each dollar or vote on the blockchain in a short time frame, which is exceedingly difficult. Since the network is widely distributed, it could survive a natural disaster or an attack on critical infrastructure. Thus, blockchain prevents double-spending, enabling us to run secure, trustworthy online transactions including voting.

In elections run on blockchains, citizens use digital voter IDs to prove who they are. Each digital ID is unique to each person, cryptographically secured with a private key (a unique password) on the person’s device, and made up of multiple data points, or factors: proofs of residence and citizenship, biometric data, and voter registration, to name a few. Citizens open their app with their thumbprints or retinal scans and then cast their vote with their private key. The more data points used to create the digital ID, the harder the identity is to replicate and hack. Though voter registration is still required in most states, a robust multi-factor voter ID could eventually replace the registration altogether, as the combination of many data points would make it highly reliable.