Blockchain Elections Open Source Software Voting

Unblocking Blockchain Voting

On this day, we’d like to officially announce that Follow My Vote’s journey on the road to building and launching an elections-grade blockchain voting system has come to an end.

Admittedly, this article is a bit of a novel but, it’s what was required, in order to properly pass the torch on to other pioneers out there that may wish to pick up from where we left off.

The aim of this article is to educate the people of the Earth.

It’s to help people understand what is technically possible, in terms of developing the next generation of voting systems. It’s to hold your hand, as we walk through the changes that could be made to the user experience of the voter, when it comes to voting in an election, changes that may greatly benefit the people while explaining how so along the way. Perhaps, most importantly, it’s an attempt to bring to light what we are truly up against when it comes to securing our elections and making election results verifiable, so that we can trust that our elected officials have honestly been elected.

In this article, we give all of our secrets away.

Gift To Humanity

By secrets, I mean all of Follow My Vote’s trade secrets and intellectual property related to blockchain voting. This also includes our blockchain-based voting system designs, the nitty gritty technical details of how our blockchain voting system would work, and the reasoning behind why we have taken such an approach to our designs.

It also contains the details around our blockchain industry innovations that include how we would approach creating a decentralized application (dApp) development platform on which blockchain voting applications could be quickly and securely developed and deployed.

Even more, this article includes links to our open-source software code that exists online and is freely accessible to anyone who wishes to review and/or use it in their blockchain voting software projects. 

Table of Contents

  • Setting The Stage
  • The Voting Problem and Blockchain Voting Solution
  • The Ideal Blockchain Voting User Experience (UX)
  • Deep Dive Into The Technical Weeds:
    • The Blockchain Voting System Designs
    • The Anonymous Voter Registration Process (Protocol)
    • Cryptography Used In These Blockchain Voting System Designs
    • How To Revoke A Voter’s Vote From The Blockchain
    • Things To Keep In Mind About These Blockchain Voting Designs
  • Secure Software Application Development Recommendations:
    • Secure Software Application Development – Front-End
    • Secure Software Application Development – Backend
  • Blockchain Technology Industry Innovations:
    • The Blockchain Abstraction Layer (BAL)
    • The Secure Decentralized Application Development Platform
  • Blockchain Voting Software Development Core Competencies
  • Overcoming The Challenges With Blockchain Voting Adoption
  • The Blockchain Voting Go-To-Market Strategy
  • Final Thoughts

Setting The Stage

After 10+ years of trying to motivate a team to focus solely on solving this problem beyond figuring out how it could be solved (for the specific use case of voting in political elections), I’ve come to realize that our team won’t be the one (and only one) to actually solve it, nor should we be.

The transparency problem with respect to political elections is a global problem that exists within each country. However, in my opinion, it shouldn’t be solved on a global level by any one person, team, or nation. This problem needs to be solved by the people within each nation for each nation.

I would argue that a nation is not considered an independent/sovereign nation, until the people within that nation have worked together to solve this problem for their nation.

The people have this problem. Therefore, the people need to solve it, on behalf of the people.

The good news is that, when taking the open-source approach to software development, the people within each nation don’t have to start over from scratch.

To get a head start, as the people of each nation begin tackling this problem, they could begin their blockchain voting projects by copying open-source software code that people from other countries have already developed and make changes to the code from there. This open-source software code could then be shared, back and forth, from one country’s blockchain voting project to another.

The key is that the people of each nation will need to have independent control over their own open-source software code (i.e. their code base). It’s mission critical to ensure that more than one person is able to understand how to read the code, how each piece of the code works, and how the pieces work together. Their team should be able to detect bugs in the code and be able to fix those bugs.

They will need to understand how to continuously develop the blockchain voting software so that the code evolves to meet new needs, as new needs arise, over time. There is no finish line. This will be a constant effort that enables the people to secure their independence indefinitely.

Solving this problem won’t happen overnight. It will happen though. This solution to this problem makes too much sense for it not to happen. I’ve already seen it all play out in my mind.

There will be a different timeline for each nation. It may take years, decades, or even generations. It all depends on the will of the people and their resolve to solve this problem.

The idea is to make as much progress with respect to solving this problem as you can, know when it’s time to pass the torch to the next team, and be willing to pass the torch when that time has come, as Follow My Vote is doing here.

If the people of this planet can solve this problem for their respective nations, it will change everything, right down to our nations’ very foundations.

My deepest hope is that this issue becomes so important to the people of this planet and their respective nations that it will be treated with as much attention and sense of urgency as the international space race did during the 1960’s (which it rightfully deserves, at least in my opinion).

The Voting Problem and Blockchain Voting Solution

Elections are important, if a society is one to have elected officials.

With this in mind, as opposed to exploring the question, “Are elections being rigged?”, I’d like to begin by asking the people the question, “Can elections be rigged?”

On my journey, I have found that most people don’t like to talk about this but, elections can absolutely be rigged, especially in the United States (based on the way elections are being conducted today). 

Because elections can be rigged, it is likely that they are being rigged in countries throughout the world, for the betterment of certain individuals, organizations, and even other countries. Politicians all over the world have accused elections of being rigged. Even the current President of the United States, Donald Trump, has a longstanding history of calling elections rigged, especially if he doesn’t like the results.

Joseph Stalin, a infamous revolutionary and once Prime Minister of the Soviet Union (responsible for millions of deaths of his own people during his rule), once famously said: 

“Those who vote decide nothing. Those who count the vote decide everything.”

The people of the United States were made very aware of this fact, during the United States Presidential Election of 2000. Back then, it was George W. Bush who squared off against Al Gore.

When the “official” results of that election were announced first in favor of Al Gore and then later in favor of George W. Bush, Al Gore thought something was fishy and demanded a recount. 

As the recount was coming to a close in Florida, the process was put to an end before the initial results were confirmed or denied. To this day, some people maintain that this election was rigged in favor of George W. Bush, as opposed to Al Gore, myself included. 

Why else would a recount ever be stopped, if it weren’t to prevent those involved in counting the votes to get to the bottom of who rightfully won an election? It makes you wonder.

I shouldn’t have to say this but, stopping a recount is a fine example of how election rigging can happen and is perhaps the proverbial “smoking gun” of such an occurrence.

If this can be allowed to happen, it seems that even those who count the votes decide nothing, as the United States Supreme Court has the final say. 

Things shouldn’t be this way. I don’t think anyone in the right mind would argue with me on that.

Luckily for us, there’s a solution to this problem, which would be to adopt provably honest voting systems, more specifically open-source blockchain-based voting systems.

As a CEO of a technology startup that has been focusing on developing blockchain-based voting systems for the last 10+ years, I’ve learned a great deal about voting, in the United States and abroad. Sadly, based on what I’ve learned, the people of this planet don’t really have much of a say in what types of voting systems are allowed to be used to conduct political elections.

One of the first things I learned about elections (held within the United States) which it seems almost everyone is unaware of is that voting is controlled at the state level, meaning by each state, within each state. Usually the Secretary of State of each state has some influence over election laws.

Elections laws are created, voted on, and adopted into law by state legislators. 

From there, county clerks/registrars are allocated minuscule budgets to spend on elections, which includes buying election equipment that abides by their current election laws.

Over the years, I have spoken to numerous county clerks/registrars. 

In once such case (circa 2015), I visited Montgomery County Registrar, Randy Wertz, to learn more about how elections were conducted in Virginia. My goal was to learn in an effort to pinpoint ways elections could be improved by the adoption of modern voting technology.

Shockingly, during this visit, Randy told me that voting used to be so unruly (in the United States) that he knew of one county clerk/registrar that was once called on the phone to report voting totals for the various candidates in his county’s elections. When he was asked how many votes there were for a particular candidate, for a particular election contest, his response was, “How many do you need?”

During our visit, Randy also informed me that, as part of the election results reporting process, he manually types in the results of his elections into a Microsoft Excel spreadsheet and sends them off to another source for higher level reporting purposes. If Randy wanted to, he could have easily entered the vote totals of his choosing (or someone else’s choosing) for any candidate in any election.

When following this process of reporting voting totals to the “higher ups,” assuming Randy was/is an honest person, this reporting process is still open to human error and could allow him to unwittingly report fraudulent election results. Whether intentional or not, election results reporting processes like these are prime examples of how voter fraud could easily happen, without anyone detecting it.

Many of us don’t like to talk about it but, voter fraud is real and has been detected in many cases, which have been documented and published on the internet. Yet, many of us are willfully ignorant of this and/or refuse to accept that voter fraud happens and is a real problem. 

As another example of how voter fraud could happen, when speaking with Kammi Foote, Clerk-Recorder & Registrar of Voters in Inyo County, California, she told me that there were voting machines used in elections in her county, as recently as 2015, that dated back to the early 1990’s.

Sadly, this is not an uncommon occurrence. Outdated voting machines have been used in elections well beyond their expiration date and could have easily been compromised, at any given time for any given election.

Over the years, there have been voting machines made by virtually every major voting machine manufacturer that were exposed for having their own vulnerabilities, as Follow My Vote has reported. It is almost as if these manufacturers are all in it together, carelessly, or perhaps intentionally, producing voting equipment that could easily be compromised. 

Voting systems, such as these, have been used throughout the United States. Perhaps the worst voting machine used in elections throughout American history was the AVS WinVote voting machine, which was used in Virginia from 2002-2014. In fact, it was once said that “If an election was held using the AVS WinVote, and it wasn’t hacked, it was only because no one tried. The vulnerabilities were so severe, and so trivial to exploit, that anyone with even a modicum of training could have succeeded. They didn’t need to be in the polling place – within a few hundred feet (e.g., in the parking lot) is easy, and within a half mile with a rudimentary antenna built using a Pringles can.”

With these examples, I’ve showcased that there are vulnerabilities with respect to voting in person at centralized polling locations, whether that be with paper ballots or voting machines. 

But, it doesn’t stop there. In addition to casting votes using paper ballots or voting machines at centralized polling locations on Election Day, people are legally voting remotely by mail, email, and fax, using various voting processes and all types of voting equipment. Unfortunately, all of these voting methods have their own security vulnerabilities to consider. 

I’ve been a member of the Government Blockchain Association’s Voting Working Group for years now. At one point, we released a study that makes the security issues with many of these voting methods very apparent (see page 20 of our report). These are facts not opinions. This sad reality is undeniable.

When it comes to election security, elections rely on something that is commonly referred to as “procedural security.”

In simple terms, procedural security means certain processes must be performed in an exact way, every time, in order to be considered secure, processes which are usually performed by people.

Paper ballots are secured by procedural security, yet paper ballots can be incorrectly counted, tossed out, and/or not recorded because voting choices aren’t clear. Another thing to consider is that ballot stuffing can easily happen with paper ballots. 

Still, many people, such as the entire crew at Verified Voting, claim that reverting to voting at centralized polling locations with paper ballots is the only way to secure our elections. 

They may not want to admit this but voting using paper ballots is not only insecure but, on a mass scale, it’s simply not feasible from a cost, time, or accuracy perspective.

To drive this point home, ahead of the 2016 United States Presidential Election, the Commissioner of the Virginia Department of Elections, Edgardo Cortes, stated the following (around the 50:00 minute mark) in the video below, which features a panel discussion about America’s voting technology crisis hosted by the Brennan Center For Justice

“Paper ballots also aren’t cheap. We have localities … Fairfax County, for example, they have scanning equipment and the ballots that they got printed. We are talking close to $100,000 just for ballot printing (…) It’s not realistic to expect hand counting after the election, it’s just an incredible task the amount of people and resources required. As Doug mentioned, it also isn’t just as accurate.”

For the sake of argument, let’s play along with the folks at Verified Voting.

Let’s say that we reverted to paper, requiring humans to be involved at every step of the voting and counting process. Would anyone in their right mind actually think that every aspect of an election could be conducted by humans without anyone making a mistake? Even astronauts make mistakes. 

I think we can all agree that people are capable of making mistakes.

This means that, even if an election wasn’t intentionally rigged, voting totals in today’s elections are likely to be inaccurate, at least to some degree. Therefore, it stands to reason that there is a possibility these inaccuracies are influencing the outcomes of our elections, for better or worse.

However, not all hope is lost. Like I’ve said before, we can do better. 

We could adopt the next generation of voting systems, ones that are verifiable and could be used to conduct honest elections. To be clear, I’m talking about blockchain-based voting systems. Blockchain voting systems would allow us to conduct elections securely online, while making election results verifiable, bringing truth and transparency to elections worldwide, over time. 

I say over time because we are talking about introducing an entirely new way of voting. Any time you introduce a new voting method, there is usually only a small percentage of people that are allowed to use it for a specific reason, like how we have allowed military overseas voters to use a fax as a method to cast their votes on Election Day, while being stationed overseas. 

Although blockchain voting is currently being piloted in an extremely small number of cases in the United States, it’s essentially outlawed/illegal. However, I do think it will become allowable over time. Whether or not it becomes legal and how fast it is adopted will depend on the people of the United States and how hard they are willing to fight for their right to vote that way. 

Blockchain voting will likely be rolled out in the same way, meaning to be approved for use by members of the United States military. However, members of the military will probably have to fight for their right to do so in the form of persistent peaceful protests. If it goes smoothly for military members, disabled people are likely to come next but they will also likely have to fight for it. If it goes smoothly for the disabled, perhaps college students that normally have to vote absentee will come next but they are going to have to fight for it. From there, everyone else will be asking themselves, “If it works in all of those cases, why can’t we use it?” Should the rest of the people fight for their right to vote using blockchain voting methods, only then will there be a path to adoption by the masses.

Even when there becomes a path to mass adoption, meaning after laws have been passed to allow for blockchain voting systems to be used in elections throughout the country, it may require persistent peaceful protest from the people of each state to then persuade their respective county clerks/registrars to actually invest in this new technology, which would then enable the people to use it. 

But, the way I see it, getting the right laws passed will likely be the greatest hurdle to get to the point where we are able to use blockchain voting solutions in elections and can work to make election outcomes more honest thereafter. I say this because blockchain voting has the power to root out corruption in our elections due to the verifiable nature of the way blockchain technology works.

Based on my experience, the people in power (those that can and are likely rigging elections today) don’t want this to happen and will be extremely reluctant to hand the power they currently have over to the people. These people have deep pockets and hire lobbyists to try and influence legislation in favor of their interests, without the opinion of the people being taken into account. 

If you don’t believe me when I say that the voice of the people in the United States is rarely heard by our legislators/elected officials prior to voting legislation into law, check out this video by Represent.us, which features Jennifer Lawrence (the star of “The Hunger Games” saga) and points out that researchers at “Princeton determined that the preferences of the average American appear to have only a minuscule, near-zero, statistically non-significant impact on public policy.”

If this weren’t a big enough barrier to entry, blockchain voting seems to be a double-edged sword for the duopoly we have in the United States. When I say duopoly, I’m referring to the Republican Party versus the Democratic Party. Based on my experience, the Republican Party seems to be both for and against blockchain voting and so does the Democratic Party. 

Those in the Republican Party seem to believe that those in the Democratic Party routinely commit voter fraud, at least to a higher degree than republicans do. Thus, the advantage the Republican Party would seem to have with blockchain voting is that everyone would have to have their identity verified before being granted access to their ballot, so that voters couldn’t somehow vote more than once in an election.

Despite this advantage, republicans don’t like the idea of blockchain voting because it would actually allow people to vote securely from their own devices on Election Day. Since it has been proven that the younger generations in society rarely vote in elections, if you were to bring the poles to their smartphones, they would likely vote/participate in elections. And, being that younger voters tend to vote the Democratic Party line, this would seem to give the Democratic Party more of an advantage.

The thing is that there’s really no way of knowing how this would all play out.

Either way, both parties seem to prefer keeping things the way they are, as there are tried and true ways of influencing the outcomes of our elections and they’d rather not risk introducing new voting technology that wouldn’t allow them to take such measures. 

Adam Ernest speaking with Terry McCauliff at the Virginia Executive Mansion

I’ve pitched the idea of blockchain voting (and the power it would have to make elections honest) to various elected officials, to include U.S. Senator from Virginia, Mark Warner, and once Governor of Virginia, Terry McCauliff. I will never forget Terry McCauliff’s response. In short, he said, “It’ll never happen. It’s too political.” I tend to disagree. How soon it will happen will all depend on the will of the people and how hard they are willing to fight for blockchain voting.

To manage your expectations, assuming the American people are willing to work together to break through the roadblocks I’ve mentioned thus far throughout this article, in the beginning, only a portion of Americans will want to vote via blockchain voting methods. I say this because, in my experience, there are people out there that simply don’t trust technology and never will, no matter what type of proof you can produce that demonstrates that blockchain voting can be trusted.

As a result of this, only a portion of our election results will become verifiably honest. But, over time, as more and more people begin trusting and using blockchain voting methods, the more provably honest election results will become. The goal is to get as close to 100% of voters as possible.

Aside from the paranoid people out there that fear what they don’t understand, there are some highly intelligent people out there (computer scientists, PHDs, etc.) that think it’s technically impossible to conduct elections securely online. However, many of these people are proverbial dinosaurs that don’t keep up with the latest advancements in technology. Others lack creativity. In either case, their main criticism with the general approach of blockchain voting is that it would need to be conducted over the internet. And, they claim that the internet is inherently insecure. 

If we are to get technical, it’s not the internet that’s inherently insecure, it’s that websites are inherently insecure, even the big ones, such as Facebook.com. 

We hear about it all the time. Websites get hacked. User data routinely gets stolen from websites and sold on the Dark Web to the highest bidder. 

To illustrate my point, hackers attempt to hack Follow My Vote’s website on a daily basis. In fact, hackers have already tried to hack our website today, as shown in the screenshot below, which was taken of an email alert that I received, notifying me of the attack:

Also, you may not be aware of this but, 16 billion Apple, Facebook, Google and other passwords were recently leaked in the largest successful global hack attempt in history.

You read that right. That’s 16,000,000,000 passwords!

Websites get hacked because they are just that, “websites” that exist on the “world wide web,” which is where the “www” comes from in www.Facebook.com. 

Not to get into the technical weeds just yet but, websites are simply applications that exist on computer servers that use certain protocols (http:// or https://) to connect users to websites using web browsers. This is where the “https://” comes from in https://www.Facebook.com

HTTPS stands for Hypertext Transfer Protocol Secure and is an extension of the Hypertext Transfer Protocol (HTTP). HTTPS uses encryption for “secure” communication over a computer network, and is widely used on the Internet. In HTTPS, the communication protocol is encrypted using Transport Layer Security (TLS). However, there is a better way to leverage TLS to connect users to applications over the internet, which is via a TLS-PSK handshake.

This requires the application to be what’s called a “native” application, which is installed directly on a device’s operating system, similar to how a web browser is installed on your computer or smartphone. You would use a web browser to download the native application and, once installed on your computer or smartphone and opened, the application front-end would securely connect you over the internet to the server where the backend of the application is hosted. The server uses a pre-shared key (PSK) to authenticate and encrypt the connection.

I cover this in more detail later on in this article and how Follow My Vote planned to use this in our elections-grade blockchain voting software. It’s a “creative” approach to building secure applications, one that critics of blockchain voting haven’t considered. It would work. But, when they think of the internet, they think of the web and, as we’ve discussed, the web is not secure.

Now, let’s talk about software application backends for a bit.

There are types of software backends:

(1) Centralized Backends

(2) Decentralized Backends

To be clear, a backend is simply another word for a database.

Until the concept of blockchain was introduced to the world by Satoshi Nakamoto, in 2009, by the way of Bitcoin, the world only knew of centralized databases. 

(1) Centralized backends are just that. They are centrally controlled by one entity or organization. There is only one copy of the database, which could be thought of as a single source of truth. If a centralized database were to get hacked and database records were changed, no one would be able to tell, because there is only one copy and nothing else to compare it to. Most applications accessible over the internet use centralized databases or centralized backends.

(2) Decentralized backends, on the other hand, are vastly different from centralized backends. A blockchain is simply a decentralized backend or decentralized database. Blockchains function differently than centralized databases in that there is more than one copy of the database. When new database records are added to a blockchain database, they must first be verified by everyone else that has a copy of the same database. This is all done with computers, meaning that humans don’t actually perform the verification process manually. The good thing about computers is that computer code never makes mistakes. It’s simply not possible. When a new record is submitted for verification, the entire copy of the database has to be submitted along with it. Then, everyone else in the network checks the new submission against their own copy of the database and, if there were any changes made to the existing database records (other than the addition of the new record), the verifiers will be able to tell and the submission of the new database record will be rejected. In this way, blockchains are decentralized databases or decentralized backends that police themselves. They can’t be hacked. 

Thus, blockchains are ideal for keeping track of highly sensitive transaction data, such as financial transactions, while keeping the data securely stored in the blockchain database. Transactions stored on blockchains (in blockchain databases) are considered immutable, meaning they can’t be changed by anyone, ever.

Bitcoin is a cryptocurrency that exists as a blockchain database, which contains an immutable record of financial transactions, meaning who owns how much Bitcoin, at any given time.

To date, the Bitcoin blockchain, which again was launched in 2009, has never been hacked, despite it currently storing $2.3 TRILLION of value (as of 9-11-2025). That’s $2,300,000,000 of value, which is an extremely attractive target for hackers. But, they still haven’t been able to hack the Bitcoin database.

As we’ve discussed, blockchains aren’t only good for storing financial transaction data, they would work extremely well for keeping voting records (i.e. ballots) securely stored in a decentralized database (blockchain-based ballot box), which is extremely sensitive data that must be protected at all costs.

Blockchains would keep voting records secure in the exact way it keeps Bitcoin secure.

Blockchain database records are also publicly verifiable, meaning that votes stored in a blockchain database could be counted to verify election results that are reported after each election. For these reasons, Follow My Vote incorporated blockchain technology (a blockchain database / a decentralized database) in our voting system designs, as opposed to a centralized database. 

Now that we’ve addressed The Voting Problem and Blockchain Voting Solution, I’d like to shift the focus of this article to the user experience we envisioned voters having when using Follow My Vote’s blockchain voting software and address any foreseeable objections.

The Ideal Blockchain Voting User Experience (UX)

At Follow My Vote, we think that there are specific improvements that can be made to the way in which we vote and that the time to make them is now. However, we have found that many of these improvements would require changes to election laws throughout the country and that we may have to fight for them if we ever want them to see the light of day. For every improvement we are suggesting and have included in our voting system designs, I will attempt to provide justification for such an improvement and any objections to them which I’ve heard to date. 

Before we dive in, I’d like to take the opportunity to showcase a user experience demo that Nathaniel Hourt and I worked on together, prior to Nathaniel joining Follow My Vote as our CTO. 

To summarize, I’ve listed out the elements of the user experience we are proposing, when taking into consideration how our blockchain voting system would work.

We believe that the ideal blockchain voting system would either require or allow voters to:

(1) Register to vote the same day an election is held.

(2) Have their identity verified prior to casting their vote.

(3) Have a registered identity created from identity information they submit to an identity verifier which will be utilized to request their ballot.

(4) Vote from any device via a secure connection to the blockchain.

(5) Vote anonymously so their identity isn’t compromised as votes are counted.

(6) Verify their vote is securely stored on the blockchain, as cast, after voting.

(7) Verify their vote using an alternative device than from which their vote was originally cast to ensure that their vote hasn’t been compromised.

(8) Revoke their vote stored on the blockchain and cast their vote at a centralized polling location, should they choose to do so.

(9) Vote early and change their vote leading up to when the polls close on Election Day.

(10) Verify all votes cast in an election upon being securely stored on the blockchain. 

(11) See live results tallied as official votes are stored on or revoked from the blockchain.

(12) Confirm that blockchain voting results in elections are accurate by counting all the official votes stored on the blockchain after the polls have closed.

(13) Audit the blockchain voting software’s open-source software code to ensure it functions as expected and that there is no funny business going on behind the scenes.

Instead of trying to address all of these elements of Follow My Vote’s blockchain voting user experience all at once, for a more productive discussion, let’s break them down one-by-one.

(1) Register to vote the same day an election is held.

As shown in the infographic below, Follow My Vote’s blockchain voting system designs incorporate a voter registration process that anonymizes the voter prior to casting their vote in an election, which would take place after the voter has had their identity verified.

When doing my research, I found it interesting that allowing a voter to register to vote on the same day an election is held is currently permitted in nearly half the states in the United States, as well as in Washington, D.C. The states where this is currently permitted are as follows:

  • Alaska
  • California
  • Colorado
  • Connecticut
  • Hawaii
  • Idaho
  • Illinois
  • Iowa
  • Maine
  • Maryland
  • Michigan
  • Minnesota
  • Montana
  • Nevada
  • New Hampshire
  • New Mexico
  • North Carolina
  • Rhode Island
  • Utah
  • Vermont
  • Virginia
  • Washington
  • Wisconsin
  • Wyoming

In case you were wondering, this is referred to as same-day registration in the election systems industry and its something our blockchain voting system designs would support.

As mentioned in the next section, Follow My Vote has included the ability to accept Personally Identifiable Information (PII) of all types within our blockchain voting system’s designs to support the identity verification portion of this process.

(2) Have their identity verified prior to casting their vote.

This one sounds like a no-brainer. However, proof of identity can be tough to define and would need to be decided upon ahead of time by each state within the United States.

Follow My Vote’s voting system designs were drafted in such a way that they would allow any form of identity information to be submitted to identity verifiers when requesting to vote in an election. Believe it or not, voters in some states in the U.S. aren’t required to provide proof of identity to vote with what we universally accept as proof of identity, such as an ID card, driver’s license or passport.

Some states allow voters that don’t have an “ID Card” to sign an affidavit stating that they are who they claim to be or even allow a poll worker to vouch for their identity.

Other states allow non-photo identification, like a utility bill or bank statement, in order to vote in person. Some may only require a signature, such as with mail-in ballots.

Many of these forms of ID verification leave the potential for voter fraud open with varying degrees of concern. Follow My Vote can’t do anything about this. It’s up to the states to decide how vulnerable to fraud they want their ID verification methods to be.

(3) Have a registered identity created from identity information they submit to an identity verifier which will be utilized to request their ballot.

This is more of a technical thing that is covered in more detail later on in this article.

The idea is that we would require your identity to be verified by multiple identity verifiers so that a single identity verifier couldn’t create limitless fake IDs that could be used to cast votes in one way or another to influence the outcome of an election.

(4) Vote from any device via a secure connection to the blockchain.

This is a BIG ONE with far reaching applications. It’s one of the value propositions of blockchain voting in that it would allow a verified voter to vote from any device from anywhere in the world.

It sounds great on the surface, as it would enable many people to vote in elections that aren’t currently able to because… their mail-in ballot doesn’t make it in time, lines at polling locations are too long, or they can’t make it to the polls on election day, whether they stuck at work, sick, disabled, are traveling for work, on vacation, are military overseas, are disabled, etc. However, objectors are quick to point out that it would make both vote-buying and voter coercion easier than they are today. Let’s unpack.

VOTE BUYING

When it comes to vote buying, it’s illegal and should be outside of the scope of designing a voting system. In other words, there’s really nothing that you can do about vote buying.

We should acknowledge that there’s nothing about the current voting methods that prevent vote buying, so why should it be a concern when it comes to a blockchain voting system.

Objectors say that a vote-buyer could literally stand next to a voter that’s voting from their smartphone and pay them money upon casting their ballot for the desired candidate.

While this is true, we also designed our system so that voters can change their vote from one candidate to another, in the days/hours/minutes/seconds leading up to the polls closing, which is a feature that I will get into in a later section. This means that, should a vote buyer pay someone for voting a certain way, the voter can change their vote to another candidate, the moment the vote buyer walks away.

With this in mind, a vote buyer would be foolish to pay anyone to cast their vote one way or another.

With the current methods, such as voting in person at a centralized polling location, there’s nothing stopping a voter from using their smartphone, while in a voting booth, to take a picture of their ballot filled out for the vote buyer’s candidate and send that to the vote buyer, which likely happens in some cases. In such a case, the downside is that there’s no way for the voter to change their vote to another candidate after their ballot has been cast, which cements the criminal act of vote buying.

Then, there are some people out there that believe that a person’s vote is their personal property and, therefore, they should be allowed to sell it to someone else if they want.

The key takeaway here is that all you can do is to do the best you can to mitigate vote buying, as Follow My Vote has done with our blockchain-based voting system designs.

VOTER COERCION

When it comes to voter coercion, it’s very similar to the vote buying problem. You can’t do anything about voter coercion. It is also illegal and should be outside of the scope of designing a voting system.

The good news is that Follow My Vote’s approach to blockchain voting mitigates voter coercion in the same way we mitigate vote-buying, by allowing the voter to change their vote in the days/hours/minutes/seconds leading up to the polls closing on Election Day.

With the current voting methods, voter coercion can more easily happen, such as with mail-in ballots. When it comes to mail-in ballots, theoretically, a coercer could force another person to vote for the coercer’s desired candidate without anyone knowing, either at gun point, with the threat of violence, by mental manipulation, etc. To be sure they get their way, the coercer could watch the ballot all the way to the mailbox or even drop it in the mailbox themselves. Our approach is an improvement upon the mail-in voting process, a process that is currently legal in many states.

(5) Vote anonymously so their identity isn’t compromised as votes are counted.

This is the tough part! In a blockchain voting system, all votes are verifiable by the public, so election results can be verified by all participants. Thus, voters need to be anonymized so that their identities aren’t stored/revealed alongside their votes as the votes are counted.

At Follow My Vote, we have this area covered. We released our intellectual property (IP) into the public domain with respect to how we would go about anonymizing voters prior to casting their ballots in an election, which is covered in detail later in this article.

(6) Verify their vote is securely stored on the blockchain, as cast, after voting.

Blockchain databases are inherently verifiable, making this a natural phenomenon with respect to blockchain voting systems. Voters will be able to check that their vote is stored in the blockchain-based ballot box and be reassured that their vote is safe and counted as cast. This doesn’t mean once and only once. Voters will be able to review their vote securely stored on the blockchain before, during, and after the polls close.

(7) Verify their vote using an alternative device than from which their vote was originally cast to ensure that their vote hasn’t been compromised.

This is also a BIG ONE, perhaps the BIGGEST ONE OF ALL, and therefore warrants a lengthy explanation. Bear with me. It will be worth it.

The technical aspects of how a voter would be able to verify their vote from a device that is different from which it was originally cast is covered later on in this article. This feature stems from the fact that computing networks and devices can be compromised in various ways, which could affect whether or not your vote would be stored and remain stored on the blockchain as it was originally cast.

Follow My Vote took this into account when designing our adversarial model (which is a fancy word for a plan of defense against hackers) with respect to our blockchain voting system designs.

The action one can take to address this using our approach would be to allow the voter to “access their account” from any alternative device to check to make sure their vote is and remains stored on the blockchain as it was originally cast. If not, they will know that their original device has been compromised and can then use either device to revoke their vote (a process that is addressed in the next section). We’ve gotten some objections here in terms of this adversarial model. 

When discussing this with my colleagues in the Government Blockchain Association’s Voting Working Group, we’ve met some resistance with respect to our approach to security but, we maintain that this is the best thing that can be done. Unfortunately, the blockchain voting method is not a panacea, meaning it’s not a solution or remedy for all difficulties or possibilities.

As I’ve already said in this section, computing networks and devices can be compromised. Critics of blockchain voting are quick to point this out but fail to accept, let alone even realize, that the current voting methods are far from perfect

Knowing what I know about voting and how elections are conducted today, blockchain voting would be a vast improvement. Some suggest that if we are to adopt blockchain voting, the blockchain voting software will have to address all foreseeable security issues. This is an impossible request to fulfill.

Take a second to think of all of the types of computing devices that exist today, such as desktop computers, laptop computers, tablets, and smartphones.

Now, think of all the different manufacturers there are of those devices, which are considered the computer hardware. Now think of all of the different types of computer chips/processors used by each manufacturer for each version of each device that they manufacture. Now think of all of the different types and different versions of operating systems that run on all these different types of devices with different types of processors made by the different manufacturers. When you do the math, there are almost an infinite number of combinations (security scenarios) blockchain voting software developers would have to account for when designing their software, making the effort virtually impossible. 

This shouldn’t be thought of as a weakness of the blockchain voting method. Rather, it should be considered a strategic security advantage, the ultimate protection against hackers.

With all these combinations available to voters, hackers would have to figure out how to hack each and every combination, which is to say that they are first able to hack into the network (such as their WiFi or cellular network) the voter’s device is using to broadcast their vote to the blockchain. This would make hacking blockchain voting software prohibitively difficult, meaning hackers simply wouldn’t bother, as it would take too much work to hack enough votes to rig an election.

Even then, there are critics of this approach to security that say that it’s possible to create software that can’t be hacked over certain types of networks and certain types of devices, from the blockchain voting software all the way down to the device hardware. They think that this should be the security model for blockchain voting. They are fans of the idea of using a specific type of device (let’s say a smartphone), hardware made by a specific manufacturer (let’s say Google) that is a specific model of the device, one that uses a specific processor, and runs on a specific operating system (let’s say Android).

This would be a dream scenario for a hacker and the worst possible adversarial model a blockchain voting software developer could choose. It would be a single combination of all of the possible combinations that a hacker would need to figure out how to hack, in order to rig an election in favor of the candidate of their choosing. Hackers from all over the world would compete to see who could hack it first. From there, they could/would develop computer scripts that could be automatically run with one click, like a software application, which would carry out the hack(s) from there. These scripts would be sold on the Dark Web to other hackers. It would be the people’s worst nightmare. 

However, let’s play that scenario out. Let’s say that a blockchain voting software developer takes this single combination approach and figures out how to make the blockchain voting experience hack-proof for that single combination. It wouldn’t last long. As hackers begin using more sophisticated tactics, they will figure out a way to hack that single combination. It would just be a matter of time.

The scary thing would be that election officials might not be able to detect it right away, when it first starts happening. There would be a period of time that elections would be easily capable of being hacked and rigged for one candidate or the other, which would undoubtedly happen.

Once the hacker’s approach is detected, the blockchain voting software developer could make changes to the voting software, to prevent it. Most people don’t know this but, voting systems used in elections must first be certified for use against a specific set of certification requirements, which is a process that can take years. If a single change were made to the blockchain voting software, it would have to go through the entire certification process again, as if it were the first time, which could take years.

This means that, in this scenario, a single hack and subsequent change to the blockchain voting software code that needed to be made could take blockchain voting offline for years. If blockchain voting was being done at scale at the time, this would create an impossible situation for county clerks/registrars to handle. In short, this approach to security is completely insane and would never work. 

When taking all this into consideration, if you are going to do blockchain voting, I think any sane person would agree with me that Follow My Vote’s security/adversarial model is the way to go.

(8) Revoke their vote stored on the blockchain and cast their vote at a centralized polling location, should they choose to do so.

As mentioned above, Follow My Vote’s approach to blockchain voting would allow the voter to use the device they originally used to register to vote online and/or cast their vote (or an alternative device) to revoke their vote that’s stored on the blockchain and then vote at a centralized polling location instead.

There are several reasons that a voter may want to do this, such as the voter being coerced to vote via one of their devices for one candidate or another in an election.

Another reason might be that, despite registering to vote online using blockchain voting software, the voter later decides that they don’t yet fully trust modern technology and would rather revert to casting their vote at a centralized polling location. This feature would also come in handy in situations where a voter’s device has been compromised somehow and their only recourse is to revoke their vote and vote at a centralized polling location instead. Another way this feature could come into play is when the voter loses or even misplaces their original voting device.

(9) Vote early and change their vote leading up to when the polls close on Election Day.

Today, in many states throughout the United States, voters are allowed to vote early in an election.

With this in mind, we ensured that Follow My Vote’s approach to blockchain voting would allow for this. We also designed our voting system to allow voters to change their vote in the weeks/days/hours/minutes/seconds leading up to when the polls close on Election Day. But, this has come with objections, with the main objection being that, “This is not how voting is done today.”

Perhaps the only reason that this is not “how voting is done today” is that the current voting methods and counting processes simply won’t allow for it.

Whenever I’ve asked anyone whether or not they would want the option to be able to do this when voting in an election, the answer has always been a resounding, “Yes.” 

The good news is that this would be possible using our approach to blockchain voting. If it could be possible, then why not allow it to happen?

Many people in favor of this feature see this as a solution to situations when a voter has voted early but later discovers, through a televised debate or otherwise, that the candidate that they have already voted early for is actually in favor of policies that go against the voter’s interests.

If the voter isn’t able to change their vote to another candidate ahead of the polls closing, they end up voting for a candidate that they don’t support. This happens today and is a horrible voting experience. The trick with this feature is that you will need to keep track of the votes cast by each voter and ensure that the voter gets one and only one official vote in a specific election contest. This can easily be accomplished with blockchain voting software by making it so that the most recent vote cast by a voter, based on each vote’s date/timestamp, is considered their official vote.

(10) Verify all votes cast in an election upon being securely stored on the blockchain.

This is also a BIG ONE, one that requires a lengthy review.

Election transparency is the whole point of blockchain voting. However, some people have objections about allowing voters to count the votes ahead of the polls closing on Election Day. They demand that votes cast via blockchain voting software must be encrypted on the way to the ballot box.

Follow My Vote completely disagrees. 

The truth is that, without encryption, anyone that is technically savvy enough could count the votes as votes are stored on the blockchain and tally the results, at any point in time, ahead of the polls closing on Election Day. This is not a fault in Follow My Vote’s approach to blockchain voting, it’s a feature.

If blockchain voting ballots are encrypted, it means that one or more people or entities has the cryptographic key needed to unlock the ballots and can review the election results ahead of those results being released to the public. If the results aren’t acceptable to the person or entity in question, there may be a way for them to destroy the evidence, to tell the people that the blockchain voting system being used has been compromised, and to demand that voting should happen all over again.

They could then do this again and again, until they get the election results they want and/or are willing to accept. This is why Follow My Vote is completely against the encryption of ballots.

Another thing to consider here is that, even if ballots are not encrypted, depending on what blockchain is used and in what environment the blockchain lives, the blockchain could still be destroyed, erasing the election results and forcing the people to vote all over again. This is why Follow My Vote recommends that blockchain voting data be stored on a public blockchain.

We have to keep in mind that it’s not only important for the people of each nation to verify that election results are accurate for their country. To keep the peace and prevent war from breaking out across the globe, countries need to be able to verify the election results of other countries.

One way that this could be accomplished, assuming that countries were to build their blockchain voting systems on public blockchains, is if the other countries were to run what’s called a blockchain node, which is a copy of the blockchain database that is continuously updated as new records are added to the blockchain database. While running their own node of a public blockchain being used for blockchain voting, a country would be able to verify the outcome of another country’s elections and vice versa. In this way, countries could keep each other honest, as opposed to continuing not to trust each other.

One thing to keep in mind is that, when it comes to blockchain voting, not just any public blockchain should be utilized. For instance, the Bitcoin blockchain should never be used or rather should never be used for blockchain voting data storage. The transaction speeds are too slow.

The people will need to use a high-performance blockchain, a blockchain capable of storing thousands upon thousands of votes in a single second. Currently, there are public blockchains capable of doing this, even ones with no transaction fees. Bitcoin, however, is not one of those blockchains. 

Before moving on to the next section, another area of concern that needs to be addressed relates to how votes are currently being counted in the few blockchain voting pilots that have taken place to date.

Believe it or not, the localities are requiring paper ballots to be printed from blockchain votes and the printed paper ballots are being counted and considered the official votes. This is absolutely absurd. It is costly, wasteful, and defeats the entire purpose of blockchain voting, while making true verifiability of election results by the people impossible. If that wasn’t enough, doing this also makes it prohibitively difficult for election officials to conduct a recount, which again is the whole point of blockchain voting.

I would also be wary of accepting vote totals taken from votes cast via non-blockchain voting methods stored on any public blockchain as being accurate.

There are localities in the United States that have done this in an attempt to pass off their election results as being undeniably legitimate. Simply put, if you can’t count each vote stored on the blockchain that is being reported in election results, you cannot trust those election results. 

(11) See live results tallied as official votes are stored on or revoked from the blockchain.

Tallying live results is an inherent ability in Follow My Vote’s approach to blockchain voting. When we say tallying live results, we mean counting the votes and reporting voting totals for each of the candidates as the election is taking place. In my experience, people would love to be able to do this.

Unfortunately, it’s not possible to do this with the voting methods that are currently being used in elections in the United States. But, it would be exciting and may actually increase participation.

The objections I have encountered with respect to this feature in our blockchain voting system designs is that “It’s not how voting is done today” and “It would unfairly influence the outcome of an election.”

As far as live results potentially swaying the outcome of the election, I haven’t seen any credible evidence that this would be the case. If all the votes were to be made public for all of the candidates in an election during an election, how could this be unfair. Even so, it is extremely likely that all blockchain voters would still cast their vote in an election, regardless of who might be winning at any given time, as it would only take a few minutes to do. There would be no traveling to the polls and/or waiting in lines to cast their vote, etc. It would be quick and easy. Even if it was true that live results had the capability of affecting election outcomes, objectors fail to realize and/or acknowledge that exit polls exist.

Exit polls can be widely inaccurate and could already be influencing election outcomes. So, I don’t see how live results for blockchain voting would be any worse than exit polls. Actually, I would argue that live blockchain voting results would be an improvement over exit polls and could even make them irrelevant.

Live blockchain voting results would be reporting verifiable voting total versus exit polls which can be used to falsely manipulate the people to vote one way or another or not at all.

Along the same lines, news broadcasts happen on every major news station that report early predicted results for some states, ahead of the polls closing in other states, which may influence how others vote or whether or not to vote in an election at all.

One thing to keep in mind here is that these changes in user-experience may not happen as blockchain voting systems are approved for use in elections.

If this is the case with live results, make sure that everyone participating in the election (even observers that don’t vote in the election) has access to the cryptographic key that will unlock the official results once the polls close. If not, whoever has the key may not be willing to release it to anyone else, should they not like the results, and could destroy the evidence, while claiming that the system was compromised in some way and demanding that the voters have to vote all over again.

From there, this process could be repeated over and over again, until the person or entity with the key gets the results they are happy with and/or are willing to accept.

(12) Confirm that blockchain voting results in elections are accurate by counting all the official votes stored on the blockchain after the polls have closed.

Once again, this is the whole point of blockchain voting.

In my experience, everyone wants to be able to do this. You’d have to be insane not to. Actually, I take that back. The only people that wouldn’t want us to be able to do this would be those people actively involved in rigging elections. As I stated earlier in this article, those people exist and are a big part of the reason why we aren’t already voting using blockchain voting software in elections today. 

It’s important to point out that people don’t need to be computer experts to count the votes in a blockchain voting election. Competent computer programmers can and will create analytical dashboards where blockchain votes can be shown and counted by the public.

There shouldn’t be one and only one dashboard but many dashboards so as not to rely on a single source of truth to report honest election results. The software code used to create these analytical dashboards should be open-source so that other computer programmers and the people at large can review the code to make sure that these dashboards are accurately counting the votes stored securely on the blockchain for each election contest. Computer scripts could also be created to scan the blockchain and tabulate votes, while an election is actively taking place.

These scripts would also need to be open-source and could be distributed to the public so that the people could run them themselves on their own computers, should they not trust various analytical dashboards to report honest election results.

This type of thing is already being done with public blockchains. These analytical dashboards are commonly referred to as block explorers within the blockchain industry because they allow you to explore transactions before and after they are stored within blocks on the blockchain.

An example of one of these block explorers would be Blockchain.com, which allows you explore the various public blockchains that currently exist, such as the Bitcoin blockchain.

When doing some block exploring of your own, try to imagine that these transactions represent votes from blockchain voting systems which would be stored on the blockchain.

(13) Audit the blockchain voting software’s open-source software code to ensure it functions as expected and that there is no funny business going on behind the scenes.

Most software that exists today is proprietary or closed-source. Companies develop software this way to protect their inventions and trade secrets, allowing them to monetize their software without the fear of someone copying their software and beating them at their own game. However, developing blockchain voting software in a proprietary or closed-source way makes zero sense. The recurring theme in this article is that blockchain voting software is the only voting method the people should trust when done in the right way. You would be a fool to trust software code you can’t see/audit yourself.

Believe or not, there are blockchain voting software companies out there that are keeping their code proprietary. No matter what these organizations tell you, they can’t be trusted, nor can their software. Their blockchain voting solutions would only give the people a false sense of security/legitimacy. Blockchain voting software has to be open-source. I have found that the people won’t trust it and/or support blockchain voting otherwise. Again, this is the whole point behind blockchain voting.

Now that we’ve covered the aspects of the user-experience of Follow My Vote’s voting approach to blockchain voting and addressed any objections we’ve received to data as to why voting shouldn’t be done this way, let’s dive into the technical weeds and cover all the aspects of how Follow My Vote’s blockchain voting software would actually work.

Deep Dive Into The Technical Weeds

In the text that follows, I will do my best to explain what needs to be explained, more specifically how such a blockchain voting system could be built and exactly how it could work, in simple terms, in order for the technology and processes proposed to be fully understood and appreciated. 

The Blockchain Voting System Designs

To kick things off, let’s cover the key components of our blockchain voting system designs.

  • The key components to pay attention to in the diagram above are as follows:
    • Voter Client
    • Voter Identifier Server(s)
    • Registrar Server(s) 
    • Election Admin Client
  • The Voter Client:
    • The Voter Client is the blockchain voting app running on the Voter’s device which the Voter will use to cast their vote in an election.
    • When the blockchain voting app starts for the first time, it will generate two cryptographic key pairs for the Voter to use throughout the voting process:
      • Identity Key Pair
      • Voting Key Pair
    • There is a public key and a private key with respect to each key pair, which is why they are called key pairs. The Voter uses these key pairs stored in their Voter Client to make requests to the other participants in the system (the Voter Identifier Server(s) and the Registrar Server(s)), which all happens behind the scenes within the blockchain voting app, so you don’t have to be a technical wizard to know how to use it. While the Voting Client will technically use their private keys to make these requests, when the requests reach the Voter Identifier Server(s) and the Registrar Server(s), they will see the requests coming from the public key associated with the Voter Client’s public keys, in each case. 
    • Another important thing to mention here is that the Voter will be able to use the Voter Client to export both of their key pairs onto a flash drive (such as a USB-C flash drive) that would work with modern day smartphones and personal computers. The Voter could then connect said flash drive to another device and import their key pairs into another version of the Voter Client that would be installed and running on that device. By doing so, the Voter effectively accesses their “voting account” via the secondary device. From there, the Voter could do anything using the secondary device that they could have done using their original device, such as verifying their vote, changing their vote, or revoking their vote.
  • Voter Identifier Server(s):
    • The role of the Voter Identifier Server(s) is to verifiy the identity of the Voter(s) prior to the Voter being allow to request their ballot/ballot type for an election from the Registrar Server(s).
    • The Voter Identifier Server(s) will be operated by an Identity Verifier and will have its own cryptographic key pair to use when interacting with the Voter Client(s), which is why I refer to the Voter Identifier Server(s) as Identity Verifier Server(s), in the next section of this article.
    • To avoid any confusion here, it is highly recommended that there be more than one Voter Identifier Server that exists within the system, in order to prevent a single Voter Identifier Server from being able to create limitless fake identities that could be used to cast fraudulent votes in an election. How this would work is covered in a later section.
  • Registrar Server(s):
    • The role of the Registrar Server(s) is to issue the correct ballot/ballot type to the Voter(s) in an eleection, after the Voter(s) have had ther identity verified by the Voter Identifier Server(s).
    • The Registrar Server(s) will be operated by a Registrar and will have a cryptographic key pair to use for each unique election contest group (i.e. ballot/ballot type) that is involved in an election, when interacting with the Voter Client(s).
    • To avoid any confusion here, it is highly recommended that there be more than one Registrar Server that exists within the system, in order to prevent a single Registrar Server from issuing more than one ballot to a single Voter/Voter Client, which could be used to cast more than one official vote in an election. How this would work is covered in a later section.
  • Election Admin Client:
    • The Election Admin Client is configured to publish what we refer to as the Election Definition Record to the blockchain database and send the list of registered voters for an election to the Voter Identifier Server(s). In other words, there would be an Election Definition Record stored on the blockchain for each election that is conducted on the blockchain. The Election Definition Record will contain information such as the election contests and corresponding candidates, as well as when the polls open and when they close. It will also contain the public keys of the Voter Identifier Server(s) and Registrar Server(s) that are authorized to perform their roles in the election and how many of each will need to perform their role before the Voter can move on to the next step of the voting process, after these servers have performed their roles. It will also contain the public keys belonging to any and all of the election workers that are authorized to approve vote revocation requests that would be broadcasted by voters.

Now, let’s get into the secret sauce with respect to Follow My Vote’s blockchain voting system designs, the process of anonymizing voters prior to casting their vote in an election, which is something we technically refer to as an anonymous voting key registration protocol. For simplification purposes, we will refer to this process as The Anonymous Voter Registration Process (Protocol).

The Anonymous Voter Registration Process (Protocol)

I goes without saying that every blockchain voting system will need to have an anonymization process for the voters, so that the voters’ identities are not associated to the voters’ votes when the votes are stored in the publicly verifiable blockchain database. This is perhaps the hardest part to figure out.

If you are interested in building your own blockchain voting system, we suggest that you use this one, as opposed to trying to invent your own. It’s one less thing you’d need to worry about.

NOTE: the image below is taken from Follow My Vote’s utility patent application stored on Google Patents. While in the process of pursuing a patent for defensive purposes, we decided it was best to document where we landed with the USPTO in a way that would allow us to securely release our intellectual property (IP) into the public domain, so that anyone may incorporate our design into their blockchain voting system, should they choose to do so. These blockchain voting system designs are yours now! We challenge you to use them in your blockchain voting project!

  • The protocol starts when the Voter uses the Voter Client to capture their Personally Identifiable Information (PII), which would be unique to each state depending on what the state required for identity verification prior to issuing ballots to voters.
  • The Voter Client then checks the Election Definition Record and confirms the public keys of the Identity Verifier Servers that are participating in the election. 
  • The Voter Client then uses the Voter’s identity key pair to submit their PII to the appropriate Identity Verifier Servers. We would suggest having at least 3 (M) Identity Verifier Servers participate in this process and requiring at least 2 (N) of the 3 (M) to verify the Voter’s identity before the Voter can move onto the next step of the process. 
  • From there, the Identity Verifier Servers would receive the Voter’s PII and present it to the Identity Verifier, in each case (which could be a human or an automated process, depending on the type of PII submitted), so that they can conduct the identity verification process for the Voter. 
  • As the Identity Verifiers successfully verify the Voter’s identity, the Identity Verifier Servers will each cryptographically sign a unique blockchain transaction stating that the Voter’s identity key pair can be used by the Voter Client to request a ballot from the Registrar Servers for their eligible contest group (i.e.ballot type), which will be determined based on the PII submitted. This transaction will then be broadcast to the blockchain which will exist as an identity certification from the Identity Verifier Server. These identity certifications will be stored in the blockchain database so that they can be verified by all the participants in the election, especially the Registrar Servers. To be clear, the Voter’s identity information will not be stored as part of the identity certification.
  • Once the required number of Identity Verifier Servers, as indicated in the Election Definition Record, have performed their role, the Voter is considered to have a Registered Identity and the Voter Client then generates a Blinded Token.
  • The Voter Client then checks the Election Definition Record and confirms the public keys of the Registrar Servers that are participating in the election. 
  • The Voter Client then uses the Voter’s identity key pair to submit the Blinded Token to the Registrar Servers requesting their blinded cryptographic signatures on the Blinded Token, which would confirm that the owner of the Blinded Token is authorized to request a ballot for their eligible contest group (i.e. ballot type).
  • The Registrar Servers receive the Blinded Token from the Voter Client and confirm that the public identity key being used by the Voter Client to request their blinded cryptographic signatures has the required number of identity certifications from the appropriate Identity Verifier Servers (according to the Election Definition Record). If so, the Registrar Servers begin cryptographically signing the Blinded Token with the key pair of theirs that corresponds to the Voter’s eligible contest group (i.e. ballot type). 
  • Once the required number of Registrar Servers have signed the blinded token (according to the Election Definition Record), the request for the Blinded Token to be signed is considered approved and the signed Blinded Token is returned to the Voter Client. 
  • The Voter Client then unblinds the blinded signatures and unblinds the Blinded Token.
  • The Voter Client would then use the Voter’s voting key pair to sign the unblinded token and the unblinded signatures on the unblinded token and send them back to the same Registrar Servers that originally signed the Blinded Token, requesting that the Voter be granted access to their eligible contest group (i.e. ballot).
  • When this happens, the Registrar Servers will not be able to tell the identity of the Voter that’s using their voting key pair to request access to their eligible contest group (i.e. ballot/ballot type). However, the Registrar Servers will be able to confirm whether or not the unblinded signatures on the unblinded token are their own. As the Registrar Servers verify their own signatures, they each sign a unique blockchain transaction using their appropriate key pair based on the Voter’s eligible contest group (i.e. ballot type), confirming that the Voter’s voting key is authorized to vote on their eligible contests (i.e. ballot type). This transaction will then be broadcast to the blockchain which will exist as a registrar certification from the Registrar Server. These registrar certifications will be stored in the blockchain database so that they can be verified by all the participants in the election.
  • You’ll also want to halt this entire process for a random period of time, after the blinded signatures and blinded token have been unblinded to further anonymize the Voter. To clarify, if there was only one person with a specific ballot type using this blockchain voting system at a time, the Identity Verifier Servers would be able to identify the Voter and how they voted in the election. The random time delay would, in theory, be long enough so that there are at least 2 voters that have gone through the identity verification process but which have yet to vote. In this scenario, when these 2 voters vote, you won’t be able to tell which voter is which with 100% certainty.
  • Once the required number of Registrar Servers, as indicated in the Election Definition Record, have performed their role, the Voter will have an anonymously registered voting key that they can use to vote on their eligible contests and will then be granted access to their ballot.

Cryptography Used In These Blockchain Voting System Designs

There are two types of cryptography used in our blockchain voting system designs:

(1) RSA ENCRYPTION:

  • Used for the blinded token signing and unblinding exchange between the Voter Client and the Registrar Servers.

(2) ELLIPTIC CURVE CRYPTOGRAPHY (ECC):

  • Used for signing blockchain transactions with key pairs by all participants in each case. 

🔐 What is RSA Encryption?

RSA encryption (specifically RSA signatures) is commonly used in blinded token signing and unblinding exchanges—this is the core idea behind RSA blind signatures, a cryptographic protocol introduced by David Chaum in the 1980s.


🔐 How It Works: RSA Blind Signature Protocol

Here’s how RSA is used in a blinded token signing process:


1. Key Setup

  • The signer (e.g., a bank, server, or authority) has:
    • RSA public key: (n, e)
    • RSA private key: d
  • These satisfy: s = m^d mod n (signature) and m = s^e mod n (verification)

2. Blinding the Message

  • The requester wants a signature on message m, but doesn’t want the signer to see m.
  • So the requester:
    • Chooses a random blinding factor r such that gcd(r, n) = 1
    • Computes the blinded message:
      m’ = (m * r^e) mod n
    • Sends m’ to the signer

3. Signing the Blinded Message

  • The signer signs the blinded message:
    • Computes s’ = (m’)^d mod n
    • Sends back s’

4. Unblinding the Signature

  • The requester computes the actual signature on m by unblinding:
    • s = s’ * r^(-1) mod n
      (where r^(-1) is the modular inverse of r mod n)

✅ The result:

  • s is a valid RSA signature on the original message m, but the signer never saw m.

🔐 What is Elliptic Curve Cryptography (ECC)?

ECC is a public-key cryptography system based on the mathematics of elliptic curves over finite fields. It provides the same level of security as RSA but with much smaller key sizes—making it faster and more efficient, especially for mobile or embedded devices.

📜 Elliptic Curve Digital Signature Algorithm (ECDSA)

This is the ECC equivalent of RSA signatures.

Signing a message

(1) Choose random number k

(2) Compute R = k * G, then extract r = Rₓ mod n

(3) Compute s = k⁻¹ (H(m) + r * d) mod n, where:

  • H(m) is the hash of the message
  • d is the private key

(4) Signature is the pair (r, s)

Verifying a signature

Given (r, s) and public key Q = d * G:

(1) Compute u₁ = H(m) * s⁻¹ mod n, u₂ = r * s⁻¹ mod n

(2) Compute P = u₁ * G + u₂ * Q

(3) Valid if r ≡ Pₓ mod n

How To Revoke A Voter’s Vote From The Blockchain

The voter can use their original device or an alternative device to cryptographically sign a message using their voting key pair and send that message (which will exist in the form of a blockchain transaction) to the election workers at their assigned centralized polling location (which have been authorized to approve vote revocation requests), requesting that their vote be revoked from the blockchain. The voter would then visit their centralized polling location and interact with one of the election workers which would have received their vote revocation request.

From there, the voter would present their PII to the election worker and provide proof that they are in control of the voting key that was used to send their vote revocation request to the election workers (such as by changing their vote that is currently stored on the blockchain to another selection). The election worker would then use their authorized key pair to cosign the transaction sent from the voter and the transaction would then be broadcast to the blockchain. Once the transaction is securely stored on the blockchain, the voter’s vote will be revoked from the voting totals, meaning their vote that is stored on the blockchain will no longer be considered official. From there, the voter can vote their appropriate ballot type using one of the approved voting methods at the centralized polling location.

Things To Keep In Mind About These Blockchain Voting Designs

(1) The Identity Verifier Server / Identity Verifier

The Identity Verifier Server / Identity Verifier can connect the Voter’s PII to the Voter’s public identity key, which means they will know who has “checked in to vote online.” A list of these Voters could be reported by the Identity Verifier Server / Identity Verifier and it may be required of them to do so as part of the election process. This wouldn’t be any different than what is done by the Identity Verifiers at centralized polling locations prior to voters being issued their appropriate ballot type based on their PII.

However, technically, none of the participants in the election will be able to tell if the voter actually cast their vote in the election after receiving their ballot. This is also technically true of voters, after they are issued their ballot at a centralized polling location, as a voter could vote a blank ballot or drop their paper ballot in trash on their way out of the centralized polling location, having decided they’d actually prefer not to vote. This may not happen all that often but, in either case, it could happen.

The reason this is important is that voting laws and/or voting system certification requirements which have already been adopted in various states might state something like “the system shall be able to report on which voters have voted in an election, including the voter’s names. As I just showcased, technically, voting systems can’t actually do this; however, the establishment considers someone checking in at a centralized polling location and being given their ballot as satisfying this requirement.

Thus, when voting laws and certification requirements are written for the use of blockchain voting systems in elections, the blockchain voting systems shouldn’t be treated any differently, meaning that it should be enough to be able to report on who has had their identity verified in order to vote (i.e. checked into the polls), not who has technically been confirmed to have cast their ballot in an election. When working with my colleagues in the Government Blockchain Association’s (GBA) Voting Working Group to draft the initial version of certification requirements for the next generation of voting systems, we made sure that a blockchain voting system like ours would satisfy this requirement. 

(2) Ballot Stuffing Detection

When the votes are tallied in a blockchain voting system, there should never be more official votes tallied for any given election contest than the number of voters that have successfully been verified as eligible to vote by the Identity Verifier Servers / Identity Verifiers.

If so, this should be considered proof of collusion documented on the blockchain by the Registrar Servers, with them having registered one or more anonymous voting keys than they should have (to a single voter or any number of voters), which would signal ballot stuffing has occurred.

(3) Identity (ID) Creation / Identity Verification

In theory, this blockchain voting system could be integrated with any other technical system, in order to seamlessly submit the voter’s PII from another system/source. For instance, the State of Colorado has a digital ID system and any Colorado citizen can obtain a digital ID through this system, which is stored in an app on the person’s smartphone. When properly integrated, Colorado citizens could choose to use their digital ID as their PII to complete the identity verification portion of the voting process.

I could even envision a world where the portion of this process related to identity is broken out from the blockchain voting system entirely and would exist as a standalone identity marketplace, allowing people to create limitless identities from a limitless number of “identity verifiers” (belonging to the same or different organizations) from any and all types of information. These people then could use their various registered identities to gain access to and interact with other applications securely over the internet (such as with a blockchain voting system).

If you use your imagination, you may realize that an identity could be created at any time, from just about anything, for just about anything. In this way, identities could be thought of as verification of a piece of information or a combination of pieces of information, such as…

-someone’s first name, last name, full name (first name + last name), birth-date, address, etc.

-someone belonging to a certain organization/community/society and/or being a citizen of a certain country.

-someone having graduated from a particular university.

-someone that is employed by a certain company.

-aspects of who someone is (any form of PII to include bio-metric data).

-what someone has (property, government ID, birth certificate, land/car title, etc.).

-what someone knows (such as a piece of identifying information or the answer to a math problem).

-someone’s ability to remember certain things and/or what they remember (password, private key, etc.).

-someone that has or hasn’t done a certain thing.

-someone that should be allowed or not be allowed to do a certain thing, etc.

…the list goes on and on!

(4) Secondary Applications

As far as secondary applications of our anonymous “voting” key registration protocol are concerned, at a higher level, what the protocol actually does is authorize someone to do something anonymously.

Hacker

In this way, this protocol could be used to authorize anyone to do anything anonymously, which could be applied to a limitless number of use cases. You just have to use your imagination!

Secure Software Application Development Recommendations

TLS-PSK Handshake 

As discussed earlier in this article, Follow My Vote recommends that you develop your blockchain voting software as a native application that can be installed directly on your devices operating system and that you use a TLS-PSK handshake to securely connect the frontend of your voting software application to the secure blockchain-based backend over the internet.

TLS-PSK First-Time Handshake

TLS-PSK Standard Handshake

Secure Software Application Development – Front-End

Along the road to developing elections-grade blockchain voting software, Follow My Vote made significant progress toward developing a secure front-end (otherwise known as a graphical user interface (GUI)) for Pollaris, an MVP of a blockchain voting system which was meant to be used by organizations (such as student organizations, homeowners associations, and corporations) that are required to poll their members on a regular basis for various things.

The idea was that, once completed, we could generate enough revenue to fund the development of our full-fledged blockchain voting solution meant for use in political elections.

Our open-source software code for the Pollaris GUI can be found on GitHub.com here. Note: this open-source code repository has recently been rebuilt, since we reverted to hosting our open-source code on GitHub, after having it hosted on a subdomain of ours for a period of time.

When programming your blockchain voting software, Follow My Vote recommends using QML for secure front-end software application development.

QML (Qt Markup Language) is a declarative, user interface specification and programming language, primarily used for designing interactive and visually appealing graphical user interfaces (GUIs), especially for applications with rich, animated, and touch-based UIs.

Here’s a breakdown of QML as a frontend programming language:

1. Declarative and User Interface Focused

  • QML’s core strength lies in its declarative nature, allowing developers to describe what the UI should look like and how it should behave, rather than dictating step-by-step instructions like traditional imperative languages.
  • It utilizes a JSON-like syntax to define a hierarchical tree of objects with properties and relationships, making the code readable and easy to understand.
  • This approach is particularly well-suited for rapid prototyping and development of fluid, animated UIs, especially in scenarios where designers and developers need to collaborate closely. 

2. Integration with Qt Quick

  • QML is an integral part of the Qt Quick framework, which provides a comprehensive toolkit for building UIs within the broader Qt ecosystem.
  • Qt Quick supplies a rich set of graphical and behavioral building blocks (called QML Types), enabling developers to create custom UI controls, layouts, animations, and more.
  • It leverages native rendering methodologies (like OpenGL, Metal, and Vulkan) for optimal performance, especially on mobile and embedded devices. 

3. JavaScript Integration and Logic

  • QML supports the use of JavaScript for incorporating logic and behavior into the UI.
  • Developers can embed JavaScript snippets directly into QML code or reference external JavaScript files for modularity.
  • QML’s JavaScript runtime provides a dedicated environment tailored for QML applications, with its own set of objects and APIs. 

4. C++ Extension and Backend Integration

  • While QML excels at UI design, it can be seamlessly integrated and extended with C++ components using the Qt framework.
  • This allows developers to leverage the performance and power of C++ for backend logic, data processing, and hardware interaction while keeping the UI development in QML.
  • This separation of concerns between UI (QML) and backend logic (C++ or other languages) promotes maintainability and collaboration between design-focused and functional development teams. 

5. Cross-platform Capabilities

  • Like the broader Qt framework, QML enables developers to build applications that run on various platforms (including desktop, mobile, and embedded systems) without requiring significant code changes for each platform.
  • Qt provides official language bindings for Python (PySide6) and maintains support for other languages like Java and Rust through community-driven projects.

In essence, QML serves as a powerful frontend programming language within the Qt framework, allowing developers to create engaging and performant user interfaces across various platforms by combining declarative UI design with JavaScript for logic and the option of C++ for high-performance backend integration. 

Secure Software Application Development – Backend

With respect blockchain-based voting software, the backend of the application is the blockchain itself, hence the description “blockchain-based.” However, you will need to develop a smart contract for your voting application that works with the blockchain you have chosen to build your application upon, which essentially forms the complete backend that will securely connect to your application’s front-end.

On the road to developing elections-grade blockchain voting software, Follow My Vote also made significant progress toward developing a smart contract for Pollaris. With the Pollaris Smart Contract, the blockchain backend that we targeted was LEAP, an implementation of the Antelope protocol.

Our open-source software code for the Pollaris Smart Contract can be found on GitHub.com here. Note: this open-source code repository has recently been rebuilt, since we reverted to hosting our open-source code on GitHub, after having it hosted on a subdomain of ours for a period of time.

When programming your blockchain voting software, Follow My Vote recommends using C++ for secure backend software application development.

C++ is a powerful and efficient programming language frequently used in blockchain development, particularly for building core infrastructure and high-performance systems.

C++ is favored for its control over system resources, enabling optimized blockchain applications. While it has a reputation for being complex, its performance benefits and suitability for low-level tasks make it a popular choice for projects needing speed and efficiency.

Why C++ is used in Blockchain:

Performance:
C++ allows for highly optimized code, crucial for blockchain applications that handle large volumes of transactions and data. 

Resource Control:
It offers fine-grained control over system resources, enabling developers to manage memory and CPU usage effectively, which is essential for blockchain’s performance-critical operations. 

Low-Level Development:
C++ is suitable for low-level development tasks, such as managing memory and optimizing blockchain operations. 

Versatility:
C++ can be used for both core blockchain infrastructure and smart contract development. 

Community and Support:
While it can be complex, C++ has a large and active community, offering plenty of resources and support for developers. 

bitcoin in 2017

Example of a Blockchain Project Using C++:

  • Bitcoin: The original Bitcoin implementation was written in C++.

Considerations for Using C++:

Learning Curve:
C++ has a reputation for being complex, with a steep learning curve, especially for beginners.

Memory Management:
Manual memory management in C++ can be error-prone if not handled carefully, potentially leading to issues like memory leaks.

Finding Experienced Developers:
Due to the complexity, finding experienced C++ blockchain developers can be a challenge.

In conclusion, C++ is a strong choice for blockchain development, particularly when performance, efficiency, and control over system resources are paramount. While it requires a solid understanding of programming concepts and a willingness to learn, its capabilities make it a valuable asset for building robust and high-performance blockchain solutions.

Blockchain Technology Industry Innovations

Inventing the future is no easy feat.

Innovations, visions for a better future, all start with an idea, some more complicated than others.

My initial vision for Follow My Vote was to build a mobile app that would allow the people of the United States to hold their elected officials in congress accountable to voting on legislation in ways that would truly represent the people’s beliefs.

Not to digress but, if you’re interested in learning more, feel free to check out our initial open-source repository on GitHub and the video I created to promote the concept.

When Follow My Vote (Will Long and I) pivoted from developing this mobile app to building a blockchain voting system meant for use in political elections (and later recruited Nathaniel Hourt to become our co-founder and CTO), I don’t think either of us really knew what we were getting ourselves into, nor did Nathaniel. All we had was an idea we thought we could be successful in bringing to life.

Fast forward 10+ years, through all of our twists and turns, we have yet to release any sort of blockchain voting software that we can sell, in order to extend our runway far enough to be able to complete the development of an elections-grade blockchain voting solution. Believe it or not, we’ve essentially been in research and development (R&D) mode this entire time.

However, aside from our revolutionary designs for an anonymous blockchain-based voting system which we gave away as a gift to humanity, from a purely technical perspective, there were a couple of blockchain industry innovations that also come from our journey that are worth mentioning. We call these innovations “The Blockchain Abstraction Layer” and “The Secure Decentralized Application Development Platform.”

The Blockchain Abstraction Layer (BAL)

Blockchain is still considered young technology. New blockchains are constantly being born and, from time to time, existing blockchains die. That said, when developing your blockchain-based voting software, one situation that you may find yourself in is that the blockchain you have chosen to build your blockchain voting software upon suddenly dies. It happens. And, it happened to Follow My Vote.

To address this, Follow My Vote has developed what we refer to as the Blockchain Abstraction Layer (BAL), which is a low level technology component that gives blockchain voting applications backend portability, so if you need to migrate from one blockchain to another, you can do so more smoothly (without any changes to your smart contract), as opposed to suffering through a tumultuous transition.

Our open-source software code for the Blockchain Abstraction Layer (BAL) can be found on GitHub.com here.

With the deprecation of EOSIO (the initial blockchain protocol that Follow My Vote targeted with the Pollaris blockchain voting application), the BAL has already proven itself out by facilitating Follow My Vote’s transition to LEAP, an implementation of the Antelope protocol.

The Secure Decentralized Application Development Platform

In order to expedite the process of developing secure blockchain-based voting applications for use in various countries around the world, it may make sense to first develop a decentralized application (dApp) development platform that would enable the rapid development and deployment of secure decentralized blockchain voting software applications (dApps). 

This idea with the dApp platform is that it would handle the majority of the security concerns that go into developing and using blockchain voting software, as well as providing the various services and infrastructure that software developers need to leverage when building, deploying and managing their software applications, as opposed to these things having to be built directly into the blockchain voting software applications themselves (which would take a lot more time and is much more expensive to do).

The dApp platform would consist of two major components: 

(1) Peer-to-Peer Network:

This would be the underlying systems and protocols that enable blockchain developers to build, deploy, and manage their decentralized software applications. Think of it as the invisible infrastructure that makes everything work.

(2) dApp Browser:

This would function similarly to a web browser where various dApps could be accessed and used like websites are used in web browsers today. 

Below is the full list of core components for the dApp platform, in no particular order:

  • Peer-to-Peer Network
  • dApp Browser
  • Identity and Key Management
  • Secure Blockchain API Queries
  • Loading & Verification of Application Code
  • Database Caching
  • Off-Chain Data Storage
  • Simple Cryptography API’s
  • Interface Documentation
  • User-to-User Networking
  • Establishment & Authentication of Network Connections

Although, technically, Follow My Vote never broke ground on our dApp platform project (which was meant to be an open-source project owned and operated by the software development community at large), I think it’s extremely important to the world, as a whole, to share our designs with respect to the dApp platform and how such a dApp platform would work.

To be clear, building this dApp platform is not something that is truly necessary to enable blockchain voting. It would be an optional approach for blockchain voting software developers, should they want the capability to more quickly build more than one blockchain voting software application, for whatever reason. 

However, you might find it interesting that Follow My Vote’s voting software and the development of such a dApp platform peaked the interest of one of the most famous members of the PayPal Mafia, David Sacks, who is currently serving as the White House AI and Crypto Czar under President of the United States Donald Trump’s administration. The venture capitalist firm that David Sacks co-founded, Craft Ventures, was one of our potential investors, as we were preparing to pitch in 2023 at a $500M valuation, before Follow My Vote’s CTO, Nathaniel Hourt, walked away from the table. The slides shown in this section of this article were taken directly from the pitch deck we created for this purpose.

It’s also important to point out that it is extremely likely that taking the time to develop a dApp platform such as this (before building your first blockchain voting software application), would actually extend the time it would take to release your blockchain voting dApp, as opposed to speeding up the process, being that building this dApp platform would be a massive undertaking that would require a lot of time and resources. It’s the second dApp, third, and so on that will be quicker to release, over time.

The good aspect of all this is that, once a dApp platform such as this is built, the next team of blockchain voting software developers could get their product to market much faster than the first team, as the dApp platform would have already been built, which again is the idea.

Someone out there just has to be willing to “take one for the team.”

Blockchain Voting Software Development Core Competencies

If you are interested in forming your own team to develop blockchain voting software for use in political elections, we’ve come up with a list of core competencies your team should probably have.

When reviewing the core competencies listed below, it’s important to point out that your team doesn’t necessarily need to have all of them, when you are first getting started. Your team could always work up to the complete set of core competencies, over time.

  • Blockchain Technology
    • Data structures
    • Operation and mechanics
  • Cryptography
    • Asymmetric vs symmetric
    • Encryption vs signatures
    • Token blinding and signing
  • Software Engineering
    • Languages (C++, Python, Javascript)
    • Technologies & techniques
      • Qt/QML
      • Cap’n Proto
      • TLS-PSK
      • Template metaprogramming
    • Networking principles
      • TCP/UDP
      • P2P protocols & design
      • Graph theory
  • Network and Server Administration
    • Docker/Containerization
      • Compose
      • Swarm
    • HTTP(S), TLS & reverse proxies
    • Service definition and deployment
  • Information Security
    • Procedural vs verifiable security
    • CIA Triad
    • Principle of least privilege 
  • Decentralized Architecture & Design
    • Measured trust
    • Independent verifiability
    • Consensus models

Overcoming The Challenges With Blockchain Voting Adoption

It’s important to note that, although Follow My Vote has come up with the designs and voting processes for what we believe to be the ideal voting system, a secure anonymous open-source end-to-end verifiable blockchain-based voting system, this might not be the only way to do it. It’s just the best way that we have come up with so far. If you can come up with a better way, one that follows these same principles, by all means, feel free to go that route. Either way, the people of this planet will have an uphill battle. 

This is not to say that building the ideal blockchain voting system and subsequently striving to get it approved for use in voting in political elections will be impossible. In fact, I think it’s inevitable.

However, how long it actually takes to make blockchain voting a reality for the masses will depend on the people and how hard they are willing to fight for their right to vote using blockchain voting systems.

countries one person one vote

It should be known that the main claim of those in favor of using blockchain voting solutions in elections is that, while the blockchain voting method is not perfect, it is much better than the voting systems that are currently in use in the United States today, as the Government Blockchain Association’s Voting Working Group has pointed out in their Remote Voting Comparison Report. For your convenience, I’ve provided a screenshot of the remote voting comparison matrix taken from the report below: 

One of the biggest challenges we face is that blockchain technology is new technology and getting the government to wrap their heads around new technology can be a long and painful process.

When you are first starting out with new technology, there is little to no trust among the buyers or the users. To build trust with the government, as well as the people, it’s best to make your plans for building blockchain voting solutions public, explain how it all works, and keep your software code open-source. But, it’s not that simple. Before you get started, there are some things you should consider.

In the United States, voting is controlled at the state level. Thus, the people must be prepared to fight a battle in each state to win the war for the mass adoption of blockchain voting systems. You’ll have to work to get any laws changed that are standing in your way. You’ll also need to get your blockchain voting system certified for use in elections against certification requirements that each state has adopted. From there, you’ll need to get the county clerks/registrars to purchase your blockchain voting software. Last but not least, you’ll need to get the people to use your blockchain voting system.

Majority Voting Systems

Each battle could play out very differently, while some battles could be very similar.

When planning your strategy, I would suggest doing a bit of research (using AI software, such as ChatGPT) to see how close each respective state’s laws are in terms of eventually allowing blockchain voting software to be used in elections and what laws would need to be changed to make it so.

When doing your research into the laws that may need to be changed, I would also suggest taking note of the certification standards that each state has adopted, as this may be another deciding factor in terms of which state to target first. It may even make sense to try and work with more than one state in parallel. Some states will have their own certification standards, while others will have chosen to adopt certification standards established by the U.S. Election Assistance Commission (EAC).

For some background, the EAC was created by the Help America Vote Act of 2002 (HAVA), a federal law passed in response to the voting irregularities and controversies of the 2000 United States Presidential Election. In my opinion, the creation of the EAC is one giant leap toward seizing control of how voting is conducted in the United States and what types of voting systems can be used, while taking the power to make these decisions away from the states themselves.

In my experience, the EAC has had the exact opposite effect on voting then it was positioned to have when it first rolled out. From what I understand, the EAC was meant to improve upon how voting is conducted in the United States today through modernization of election systems, yet they seem to be hellbent on slowing things down or even worse, keeping things exactly the way they are now.

One of the responsibilities of the EAC is to ensure that there is a comprehensive set of voting system certification guidelines that voting systems could be certified against, before allowing them to be used in state elections. These guidelines are formally referred to as the Voluntary Voting System Guidelines (VVSG). It’s also important to note that the National Institute of Standards and Technology (NIST) works in partnership with the EAC to draft, research, and update the guidelines. 

The VVSG is said to be voluntary, as the states don’t necessarily have to adopt them. However, being that adopting the VVSG would free states from the burden of having to create and continuously update their own set of voting system certification requirements, many states have chosen to adopt them. In this way, the EAC and NIST are potentially the most powerful organizations standing in the way of the adoption of new and improved election systems technology, such as blockchain-based voting solutions.

To illustrate my point, it has been over 15 years since blockchain technology was first introduced to the public (by way of Bitcoin in 2009). However, the EAC and NIST have yet to develop any sort of certification standards for the use of blockchain-based voting solutions in elections, despite the consensus within blockchain technology industry being that blockchain voting is a perfect example of how blockchain technology could and should be used to improve upon society.

In fact, the latest version of the VVSG, VVSG 2.0 (released in 2021) does not include definitions, requirements, or test criteria for remote digital ballot delivery, marking, return, or ledger systems—which would include blockchain-based voting solutions. In 2022, the Government Blockchain Association Voting Working Group (GBAVWG) issued a proposal to the EAC called the “Supplement for Remote Accessible Ballot Delivery Marking & Return (RABDMR)” highlighting this gap and recommended its inclusion in the next version of the VVSG. While VVSG 2.1 is currently underway, to my knowledge, the GBAVWG hasn’t gotten any commitments from the EAC that this supplement will be included.

A wise person once said that, “If you want something done right, you’ve got to do it yourself.”

While this might not always be true, I’m sure we’ve all heard that saying before. With this in mind, the GBAVWG, to which I am a member, has taken it upon themselves to develop their own set of voting system certification requirements for the next generation of voting systems, more specifically, blockchain-based voting solutions. My colleagues and I in the GBAVWG came together with a common cause, dedicated our time and energy, and hammered out these certification requirements for the next generation of voting systems, over a series of countless meetings.

It was quite an undertaking. We all represented various organizations and had varying viewpoints on how these certification requirements should be drafted. We had many debates but maintained mutual respect for each other. Being that our various organizations had different approaches to how a blockchain voting system could work and what the user experience should be when voters use blockchain voting systems, one of my goals was to ensure that these voting system certification standards wouldn’t prevent a voting system and user experience like Follow My Vote has designed and envisioned from becoming a reality, in the United States and around the world.

I’m happy to report that we achieved this goal. Now that they exist, the goal is to ensure that they are updated to address the full scope of hosting an election using blockchain-based voting solutions and, from there, that they are continuously updated as technology evolves. Of course, the ultimate goal is to see that they are adopted on a global scale.

To get ahead of this, in the State of Colorado, while we were drafting these standards, I had the opportunity to testify at hearing for Colorado House Bill 1170 (HB23-1170), a bill for an act concerning the use of distributed ledger technology in elections. You can find my written testimony here.

I attended this hearing in person on behalf of the people, while also representing Follow My Vote and the GBAVWG. In short, I pointed out that while I was in full support of blockchain-based voting systems being used in Colorado elections, I was against the bill.

My argument was that HB23-1170 was geared towards approving a specific process or protocol of how a blockchain voting system could/should work, as opposed to adopting a set of voting systems certification standards that blockchain voting systems should be certified against. Based on my experience in preparing and filing a utility patent for Follow My Vote’s blockchain voting system designs, I pointed out to the members of the committee that “this bill reads like a patent” and warned them against approving any particular voting system, to include Follow My Vote’s blockchain voting system.

Perhaps, as a result of my testimony, the bill didn’t pass, which was a BIG WIN for the people of the State of Colorado and the United States, as a whole.

I share this story because the longer this battle for the adoption of blockchain voting solutions goes one, there will be more situations like this where the people will have to stand up for what is right.

Aside from the EAC and NIST, the major voting system manufacturers that are currently dominating the election systems industry aren’t much help either. An outsider like me can easily see that they generally seem to be trying to keep things the way they are for as long as possible.

Currently, there are only a few voting system manufacturers that dominate the voting systems industry in the United States, which I’ve listed in order of dominance: 

  • Election Systems & Software (ES&S)
    • Largest manufacturer of voting machines in the U.S., supplying over 60% of jurisdictions and installing systems in 42 states and multiple U.S. territories.
  • Dominion Voting Systems
    • Second-largest in the U.S., serving 28 states in 2020. Offers electronic voting machines and optical scan systems (e.g., ImageCast series) and owns Premier and Sequoia portfolios.
  • Hart Intercivic
    • Used by hundreds of jurisdictions, including entire states like Hawaii and Oklahoma, and counties across at least 15 other states (including Virginia, Idaho, Ohio, etc.). 

In addition to the top 3, there is also Clear Ballot which has only recently emerged on the scene with their solution ClearVote, which is used in 13 states.

It should be known that Hart Intercivic is the first voting system manufacturer to have an election system certified under VVSG 2.0, a certification which was granted in July 2025.

As a reminder, VVSG 2.0 was released in 2021, which means that there hasn’t been a single new voting system introduced in states that have adopted VVSG 2.0 in at least 4 years.

To make matters worse, VVSG 1.1 was released in 2015, which means that all voting systems used in elections in these states, over the last ten years, would have been certified against certification standards that addressed concerns documented by the EAC and NIST at least 10 years ago, if not more. This process leaves the people in these states stuck using outdated voting systems technology. Things are moving so slowly it is almost as if election systems technology is already obsolete, the moment these voting system manufacturers release their new voting systems. 

We have to keep in mind that, once a certification is granted for a voting system, it can be sold again and again, until it becomes decertified, which rarely ever happens.

There is no real incentive to innovate, as these MEGA voting system manufacturers have already cornered the market. The only “innovation” that happens is when the EAC makes a change to their certification standards that requires a change to their voting systems.

These voting system manufacturers then make small changes to their voting systems, which are typically meaningless in terms of the voter’s user experience. They get those systems certified and, then, they sell them all over again to the county clerks/registrars. It’s a racket!

Unfortunately, these MEGA voting system manufacturers only seem to be getting bigger. It is as if their goal is to completely dominate the election systems industry, while doing everything they can to increase the barrier to entry for those who wish to compete in the market, especially those that seek to provide cheaper solutions built using new and improved technology.

To illustrate my point, when Follow My Vote first stepped on the scene, we were contacted by Clear Ballot’s CEO, Larry Moore. He wanted to talk about the work that we were doing. We organized a meeting to explore potential collaboration opportunities and held that meeting.

During our conversation, it became clear that Larry thought that blockchain voting was essentially the missing link. Being that Clear Ballot had just gotten their voting systems for traditional voting methods certified by the EAC, he was trying to figure out how Clear Ballot was going to corner the market in their own way. I will never forget our conversation.

I remember him sharing his opinion that blockchain voting was going to be the next big thing in the election systems industry and whatever company gets to market first with a blockchain voting solution, assuming they already did everything else when it came to elections, was going to “Win this thing!” 

That’s just it. These MEGA manufacturers think that voting is just another “game” to be won.

While, on the other hand, Follow My Vote thinks of the voting space as a field where any organization, big or small, should be able to play. Ultimately, we see the winners of the “game” being the people that use the voting systems, as more and more companies enter the arena. In fact, we’d prefer for there to be hundreds, if not thousands, of companies competing with blockchain voting solutions within the election systems industry, instead of having 3-4 companies dominate the market.

Imagine how hard it would be to hack a country’s election, if hackers had to figure out how to compromise the voting technology of 100+ companies. Yet, in today’s elections, it seems like you would only need to be able to compromise a few different types of voting systems and any election could be rigged in favor of one candidate or another. But, maybe that is the goal!? 

The states within the United States have the power to change all of this. However, that would require them to create and maintain their own set of voting system certification requirements and certify voting systems against those requirements. From there, the power would be in the hands of their county clerks/registrars, being that they are the ones holding the purses, meaning they are given the budgets used to purchase elections systems technology. 

Unfortunately, county clerks/registrars aren’t much help in the fight for the adoption of new and improved elections systems technology (i.e. blockchain-based voting systems).

From what it seems, they are routinely lining the pockets of these MEGA voting systems manufacturers, demanding nothing more of them but to continue supplying inferior election technology that is rarely updated, technology that has been proven to be riddled with vulnerabilities, time and time again.

Many of them seem to be “in bed” with these major voting system manufacturers. Keep in mind that these are elected officials who routinely attend election systems industry conferences where these major manufacturers showcase their latest and greatest voting systems, systems that are inferior to blockchain-based voting systems in every way.

Some of these elected officials then attend social events and parties hosted by these companies whose only aim is to get in their good favor so they’ll buy their voting systems the next time they open their purses. It’s typical industry smooching. However, the elections systems industry isn’t a typical industry. We’re talking about elections here. Things shouldn’t be this way. 

Despite this sad state of affairs, there are some benevolent county clerks/registrars out there trying to fight the good fight. These elected officials actually want to improve upon the way that we vote by adopting new and improved technology, such as blockchain-based voting systems.

Former Clerk-Recorder & Registrar of Voters in Inyo County, California, Kammi Foote, was one of the good ones. She cared. She was in it for the people.

Kammi was fully in support of Follow My Vote’s efforts to build a secure open-source end-to-end verifiable blockchain-based voting system and was open to working with us on a pilot of our voting systems technology. We simply weren’t able to get our voting system to that stage prior to her leaving office.

Interestingly enough, to my knowledge, Kammi now serves as a Senior Subject Matter Expert for the EAC. Perhaps there’s some bridge building that can be done there to fill the gap in the EAC’s voting system certification requirements, allowing for the adoption of blockchain-based voting systems.

All we need is one, one person that has the power to make a difference, one person that is willing to go on the journey with blockchain voting software developers to strive for the adoption of blockchain-based voting solutions, one county clerk/registrar that is interested in conducting a blockchain-voting pilot in their county using blockchain voting software that the people will trust and support.

In the end, the blockchain voting software has to be open-source and the people have to be able to count the votes. If this is not the case, the blockchain voting pilot might as well not have happened. If we can get to the pilot stage with the right type of blockchain voting software and user experience, it has the power to change everything. From there, we might be able to make sweeping changes to the voting system certifications standards that exist at the EAC and throughout the states that have their own. It could result in a perfect storm, to get this initiative done within years, as opposed to decades or even generations. However, we need to be careful not to rush the product to the pilot stage before the software is truly ready, as a failed pilot could set us back further than we are now.

mistakes to avoid when launching your kickstarter.

Before giving your open-source blockchain voting software pilot a shot, I would recommend running it by other experts in the field to see if there’s anything you might be missing and then conduct a penetration test or two (by organizations such as Trail of Bits).

At that point, you are putting your best foot forward. If you fail, no one can blame you for giving it your best shot; and, therefore, it won’t be that much of a setback. In fact, you’ll learn something in the process and so will the rest of the world, that is as long as you keep the nitty gritty details of your journey open to the public, which I highly recommend doing.

Start a blog. Write about your efforts at every step of the way. If your pilot fails, let the world know how and why and what you’re going to do to fix it. Once you’ve fixed it, try again. If you fail again, fix it again, and try again. Never give up. You’ll get there eventually, or should I say we’ll get there eventually. 

Also, be quick to call out blockchain voting pilots that are being conducted only to give blockchain voting (or any type of voting conducted over the internet) a bad name. These false flag pilots have happened in the past, some more damaging than others.

It’s highly likely that the Vote-by-Mail Pilot conducted in Washington D.C. in late September of 2010 was one of these types of pilots. This pilot notably took place almost two full years after Satoshi Nakamoto released his whitepaper on Bitcoin, in October of 2008.

I wouldn’t be surprised if the powers that be knew what was coming and tried to get ahead of it. The pilot project was for overseas and military absentee voters, allowing them to download, mark, and electronically return ballots via a “web-based system.” Within 36 hours of the public launch, a team led by Prof. J. Alex Halderman from the University of Michigan successfully exploited the system. The hack demonstrated that even a single coding flaw in a “web voting platform” can allow attackers to control ballots, breach confidentiality, and undermine trust in the entire system.

As a result, D.C. officials abandoned live electronic ballot return plans and reverted to downloading‑and‑mail-only workflows. Since then, this failed pilot has become a touchstone in election security, having been repeatedly cited by security experts and researchers as evidence that Internet-based ballot return is inherently risky and generally infeasible with existing technology.

However, this “web-based system” and the blockchain voting system Follow My Vote is proposing is vastly different, as ours wouldn’t be susceptible to the same type of hack, with the key difference between Follow My Vote’s system and the voting system used in the D.C. pilot being that they tested a “web-based system” whereas we’re advocating for native blockchain-based software applications.

As we’ve already established in this article, it’s not the Internet that is inherently insecure. It’s the web that is inherently insecure, yet this failed “web-based” voting system pilot is still brought up by critics of blockchain voting. 

There have been other pilots since then, blockchain voting pilots, that may or may not have helped the case for the adoption of blockchain-based voting solutions. The primary supporter of these blockchain voting system pilots is a man by the name of Bradley Tusk.

Over the years, Tusk has spent millions of dollars funding online voting pilots via his charitable organization called Tusk Philanthropies. Most recently, he has funded blockchain voting pilots that have leveraged blockchain voting software developed by Voatz. The thing is that Voatz’s code is proprietary, so their efforts don’t really further our cause, at least in my opinion. To make matters worse, there have been scathing reports that have been published by credible sources, such as MIT and Trail of Bits, that have poked holes in Voatz’s blockchain voting system’s security.

Despite these setbacks, believers like Bradley Tusk haven’t given up on blockchain voting. He continues to search for a secure and verifiable approach to blockchain voting, while pushing back on the tough critics at every step of the way. In fact, he’s even invited these critics to “sit at the table” and assist in his efforts to figure out how blockchain voting could be conducted securely over the internet.

Based on my experience, these critics don’t seem to be interested in his offer and stand firm that it simply can’t be done. Ultimately, it seems that the ideal blockchain voting system (the type of blockchain voting system that Follow My Vote is proposing), will have to be built and battle-tested, in order for the haters to stop hating. May the force be with anyone that is up for the challenge.

Once your blockchain voting system has been battle-tested through successful penetration tests and blockchain voting pilots, the focus should shift toward adoption.

From my perspective, there are a couple of approaches that you can take to eventually get your blockchain voting system adopted. You can either work through the system or go around it. 

By going around the system, I mean that you can simply build the entire system how you think a blockchain voting system should ideally function, without taking into account how elections are conducted today. Once your entire system is built, you will need to figure out a way to demonstrate how well it works, how secure it truly is, and how much the people want to use it.

2016 Parallel Presidential Election

One way to do this would be to host a mock election in parallel to voting in an officially sanctioned election in your state, as Follow My Vote attempted (in 2016) but ultimately failed due to extremely limited resources. If you can get more people in one geographical area to vote using your blockchain voting system than vote in the official election, you will have the data that proves that the people want to vote online. And, assuming your blockchain voting software isn’t hacked during the parallel election, then you will have the proof that your blockchain voting system is secure. From there, it should be relatively easy to build a grassroots movement in support of the adoption of blockchain voting in elections and get sweeping changes made to the laws and certification requirements standing in your way. This is what I would recommend doing and may ultimately be the shortest path to adoption. 

The alternative to going around the system is to go through the system. Throughout this article, I’ve essentially already outlined what you’ll need to do when taking this approach. The important thing to grasp here is that, by taking this approach, only pieces of the blockchain voting process will be approved at a time. We can already see this playing out with respect to how the Voatz blockchain voting pilots have been conducted to date. Thus far, their blockchain voting pilots have only handled Ballot Delivery, Ballot Marking, and Ballot Return. This doesn’t cover the full end-to-end verifiable blockchain voting process, meaning all of the pieces that are involved before, during, and after the voting window.

When taking this approach, the key thing you’ll want to do is to build the entire blockchain voting system first and then chop it up into pieces to get each piece adopted, as legislation and certification requirements allow. This way, once the entire process is approved, you’ll have already built the entire system. Unfortunately, this may end up being the only feasible path to adoption. 

In either case, although the majority of the people will likely want to vote securely from their own devices on Election Day, the people may have to petition the government to be able to vote in political elections using blockchain voting solutions. If this ends up being the case, I urge you to keep in mind that the current voting systems in use are vulnerable to corruption and can be leveraged by the powerful to achieve whatever outcomes they desire.

In all likelihood, these same systems will be utilized for petitioning purposes to approve or deny the use of blockchain voting in elections and will be leveraged by those that wish to prevent blockchain voting from becoming a reality to try and stop such a measure. Thus, the people will need to come up with a way for the people to publicly verify all votes cast on such a measure, similar to how the Fiscal Digital initiative led by Carlos Toriello Herrerías did in Guatemala, to ensure no corruption has taken place.

It would be wise to keep these petitions as small as possible, on a county by county basis, so that each vote can be properly verified by the public. As approval mounts, county by county, state voting laws will be forced to change in favor of blockchain voting. States will fall like dominoes and it won’t be long before blockchain voting is adopted in every state in the United States. From there, blockchain voting will naturally be adopted by the people as the voting method of choice, which will eventually lead to verifiably honest elections as time goes on. However, one thing that might prevent things from playing out this way is if the people are manipulated to think blockchain voting can’t be conducted securely online, even though the technology will have already proved itself out. 

Marketing is powerful.

If you didn’t know, Donald Trump first became President of the United States through clever marketing tactics detailed in the documentary “The Great Hack,” as featured in the official trailer below.

In short, while Trump and his campaign team weren’t found guilty of doing anything that was technically considered illegal, Trump’s campaign team targeted people with enraging political ads via the Facebook Ads advertising platform, gauging sentiment on each person as to whether or not they were likely to vote for Donald Trump in the 2016 Presidential Election of the United States. From there, Trump’s campaign strategists would continue to target anyone that showed signs of anger and willingness to vote for Donald Trump, turning up the dial in the days leading up to the election, by running more ads and infuriating potential voters even more. These campaign strategists did this with precision, spending only what they thought they absolutely needed to in order to win the election, while spending only a fraction of what Hillary Clinton spent on her presidential campaign. It worked.

Since then, policies about running political ads on Facebook and other social media platforms have changed, perhaps as a direct result of “The Great Hack.” However, they haven’t been outlawed completely, which means they could still be leveraged to thwart the open-source blockchain voting movement. But, we can defend against such a hack.

Most people don’t know this but, voter registration lists are public information. You can request them from your county clerk/registrar. I know because I’ve done it before. Your full name, your residential address, your political party affiliation, your voting district, and your voting history (whether you voted, not how you voted), is all out there. Using this information is how most political parties and campaign strategists plan and execute their political campaigns. Why not play the same game?

Ahead of the people voting on any ballot measure/petition in support of adopting blockchain-based voting solutions, get these lists and mail out to voters educating them about blockchain voting solutions, while warning them about “The Great Hack” and demanding that we not let the same thing happen with the blockchain voting ballot measure/petition in question.

Stick to the facts. Get research groups and universities to publish papers confirming the efficacy of blockchain-based voting solutions. Include summaries and quotes from these papers in the “educational materials” you mail out to voters. Provide them with links to any open-source repositories that exist for blockchain voting solutions that have been battle-tested.

When done right, it should be relatively easy to win the ballot measure/petition in favor of voting passing laws and developing certification standards that would allow for the adoption of blockchain-based voting solutions (again, as long as the technology has already proven itself out).

The reality is that any would-be blockchain voting ballot measure/petition may not pass the first time around. This is not the time to tuck your tail between your legs and admit defeat, as if it’s never going to happen. On the contrary, that would be the time to take things up a notch, get even more organized, and demand that the same ballot measure/petition be on the ballot for the next election. If you fail again then, dust yourself off and try again. Keep trying until it passes.

Once the right laws and certification standards are in place, you’ll need to get your blockchain voting solution certified against those initial set of certification standards.

However, to pave the way for the continuous advancement of blockchain voting technology, I would highly recommend figuring a way for the certification standards and certification process to allow for rapid iteration (rapid changes) so that the standards don’t become obsolete from a technological advancement perspective, which again is the situation that we are in now with the EAC’s certifications standards (VVSG) and other certification standards in place in other states. 

From my perspective, it seems that the EAC’s certification standards could exist as open-source software code allowing the entire voting systems certification process to be fully automated (to the degree of automation that is technically possible). If things were to be this way, when the EAC’s certification standards get updated, the blockchain voting software providers could be alerted of such an update to the EAC’s open-source software code repository. The blockchain voting software providers could then make changes to their open-source blockchain voting software code (which would be hosted in their own open-source software code repositories) to adhere to the new standards.

From there, the blockchain voting software providers could make a what’s called a “commit” (new code inclusion in the existing code) to the EAC’s code repository to a file that exists for the sole purpose of requesting voting system certifications. Each commit made in this way to the EAC’s code repository could include a link to the blockchain voting software provider’s code repository and could serve as a notification to the EAC that the blockchain voting software provider has made the necessary changes to their blockchain voting software and that they are ready to begin the new certification process. At that point, the EAC and NIST could initiate the automated certification process.

If the new and improved blockchain voting software passes the certification process, the EAC could make a commit back to the blockchain voting software provider’s open-source code repository confirming that the current state of their software is approved for the use of blockchain voting in the states that adhere to the EAC’s VVSG. If this entire process was fully automated or even partially automated in this way, we could go from advancing election systems technology every ten years or so (as is the current rate of advancement) to perhaps upgrading America’s election technology ahead of every major election that takes place in the United States (every 2 years or so).

While anything is technically possible, it’s highly unlikely that we’ll ever get to this level of cooperation with the EAC and NIST but, this could/should be the goal for which to strive. 

Either way, once your blockchain-based voting solution has been certified, the only thing you’ll need to figure out is a winning go-to-market strategy, while ensuring that the people actually use your blockchain-based voting system, once it has been purchased by county clerks/registrars.

The Blockchain Voting Go-To-Market Strategy

There are four things to consider when planning the go-to-market strategy for your blockchain-based voting solution:

(1) Product

(2) Price

(3) Place

(4) Promotion

These considerations are what marketers call “The 4-Ps.

I have a Bachelor’s of Science Degree in Business Administration from Virginia Tech. My major was Marketing Management. They teach you “The 4-Ps” on day one of Marketing 101. That’s really all you need to know when it comes to marketing. These are the things you will need to figure out for yourself, as each team’s situation and blockchain-based voting solution will likely be a bit different. However, I would be remiss if I didn’t try to help you out in this department.

(1) Product

This one is simple. I highly recommend building a secure anonymous open-source end-to-end verifiable blockchain-based voting system for use in political elections worldwide. Doing so would be ideal.

If you don’t, someone else eventually will, and your product will then become obsolete. So, don’t waste your time building anything else.

If you have been inspired by this post and want to build your system as we would at Follow My Vote, it’s simply a matter of execution from here on out, as you have been given all of the pieces of the puzzle.

I can’t stress this enough but, you would be wise to build out the entire system before attempting to go to market with any one piece, if going to market piece by piece is your strategy towards eventual adoption of the entire system. You can always disable the pieces of the solution within the blockchain voting software code itself that aren’t being used/sold to the buyer(s).

Along the same lines, build the software in a way where the backend of the application could support a variety of front-ends (i.e. user interfaces and user experiences), as needs will vary among county clerks/registrars and across state/country lines. The key is that you want to be in a position to change as little as possible about your product before selling it to one customer after another.

(2) Price

The first organization to get a blockchain voting system certified will likely be afforded the opportunity to name their price and county clerks/registrars will end up paying that price. However, my advice is to not get greedy. Your competitors will eventually get to market with a similar product and undercut your prices making you look like you’ve been taking advantage of things.

For this reason, I would highly recommend that you price your voting software in a way in which you make the target profitability margins you need in order to stay in business and nothing more.

Stay lean and pinch pennies where you can. You have to keep in mind that you will be taking the open-source approach, which is the only way to do this that can gain the trust and support of the people. This means that others will be able to copy your code and try to compete against you. However, this shouldn’t be looked at as a bad thing. It’s simply good sportsmanship.

Competitors will arise. They’ll learn from you and, at some point, it’s highly likely that you’ll learn from them. Due to competition, the price will go down for the county clerks/registrars. Most importantly, the blockchain voting products will continuously get better for the voters, providing them with higher performance and an enhanced user experience. Everybody wins.

Before you can begin pricing your product(s), you’ll need to figure out your pricing model. You could go with a one-time licensing fee model or a B2G SaaS model.

Nowadays, SaaS models are generally preferred by the majority of software developers, as businesses can count on a steady stream of revenue from which to build and maintain their business.

When Follow My Vote first got started, I had no idea that government contracts could even be structured that way. It turns out that they absolutely can. You could charge a subscription fee to county clerks/registrars for each registered voter that they have in their county. From there you could charge per vote on top of that for every vote that is cast in an election.

On the other hand, you could simply charge a one time fee for a license to the current build of your software and then charge country clerks/registrars again the next time your software is upgraded.

I’d recommend playing around with each model, going back and forth from one contract to the next, to figure out which model works best for your organization. It may end up being that you use both models indefinitely and leave the decision up to the buyer. It’s all up to you.

You can also charge for support services with respect to making sure your software runs smoothly during an election. Another thing that you can charge for is training services for election administrators, ahead of an election, so that all those involved in conducting a blockchain voting election know how to play their role, when it comes to using your software.

(3) Place

This will likely be the toughest piece of the marketing puzzle, the hardest of The 4-Ps.

Where do you start?

Who will be your first customer?

A Brighter Future For The World

It costs a great deal of time, energy, and resources to figure out where your greatest chance of success will be. For total transparency, at Follow My Vote, we were targeting the United States, more specifically:

  • Arizona
  • Colorado
  • Florida
  • New Mexico
  • New York
  • Ohio
  • Rhode Island
  • Utah
  • Virginia
  • Wyoming

In some cases, we were targeting such states because they didn’t subscribe to the EAC’s VVSG, knowing it would otherwise be an uphill battle that we may never win, which goes against the strategy of some of our competitors. Their line of thinking is that they would rather spend their time trying to convince one organization (the EAC) to play ball knowing that, if they were to be successful, the doors would open up to several states all at once. It all depends on your strategy.

Some of the states that Follow My Vote was targeting are closer to adopting blockchain voting solutions, in terms of where their voting laws and certifications standards are at today versus other states. Some states had higher populations of Native American tribes (First Nations people), those of which are routinely disenfranchised when it comes to voting in elections for various reasons and, therefore, may be more motivated to fight for the adoption of blockchain voting solutions.

It all comes down to motivation.

You’ve got to find at least one county clerk/registrar that is motivated to join your fight for the adoption of blockchain-based voting solutions, whatever their reason may be.

County clerks/registrars could be motivated to provide military overseas voters a secure way to vote online on Election Day. Along the same lines, the motivation could be that county clerks/registrars want to ensure that the elderly, sick, or disabled voters in their county, those that can’t make it to the polls on Election Day, have a way to vote securely online in an election.

Blockchain Technology

Motivation could even be monetary or environmental, being that blockchain voting will likely be cheaper than any of the current voting methods and will undoubtedly create less waste. Then, it may be a convenience and verifiability concern, with respect to how elections are conducted today.

Either way, I would highly recommend not putting all or your eggs in one basket and deploy more than one strategy to one target at a time.

Circling back to military overseas voters, I will add that, perhaps, the most bulletproof strategy would be to target the use case of supporting secure online voting for military overseas voters, as they are, in theory, putting their lives on the line each day for the betterment of their country. Trying to refuse the right of these members of the military to vote securely online in elections would be political suicide. Thus, you will likely meet the path to least resistance, when adopting such a strategy.

(4) Promotion

When it comes to promotion, ultimately, you’ll have two types of people you’ll need to influence in an attempt to prove that blockchain voting is the obvious voting method of choice and therefore should be adopted, which are the county clerks/registrars and the voters themselves.

In other words, you’ll need to convince both “the buyer” and “the user” that secure open-source end-to-end verifiable blockchain-based voting is the way to go.

Neither of the two will be convinced of this, until blockchain voting technology proves itself out. But, once it does, you won’t need to do much convincing.

It will simply require a thoughtful genuine marketing campaign to showcase that the technology has been proven to work and it’s ready to be used on a mass scale, as well as highlighting all the benefits everyone involved in the voting process would experience as a result of the adoption of blockchain voting systems. It would be a marketer’s dream come true.

My only recommendation there is to be extremely budget conscious, when developing and executing your marketing campaigns.

Your goal should be to create campaigns that target the right person at the right with the right message and do so with precision.

Focus your marketing efforts on things you can track and optimize over time, such as digital advertising campaigns. As sales increase, scale up your marketing campaigns proportionally.

Final Thoughts

“For the times they are a changing” – Bob Dylan

Technology moves fast. Thus, we must find ways to properly harness the latest technology for the betterment of our lives or we will risk getting left behind.

Adopting open-source blockchain voting software is a way for humanity to adapt and overcome, to make use of revolutionary technological advancements, advancements that could bring truth and transparency to political elections worldwide, once and for all.

Who in their right mind wouldn’t want this and be willing to fight for it at every step of the way?

I get it. Most people will have to see it to believe it. Others, like me, will keep the faith.

I do see a light at the end of the tunnel and believe battle-tested blockchain voting solutions will eventually reach the masses. However, by that time, there may be a whole new host of concerns we will have to deal with, but that doesn’t mean we should ever give up the fight.

We must stay vigilant.

Quantum computing is not far off.

One of the most famous names in blockchain and co-founder of Ethereum, Vitalik Buterin, has warned that there is a 20% chance quantum computers could break modern cryptography before 2030. This looming threat has led to a surge in interest in post-quantum cryptography (PQC) and, now, the push toward the development of quantum-safe technological solutions is accelerating.

You see, no matter the challenge, there generally seems to be a solution when it comes to technical problems. You just have to find the will to solve them.

Our will to solve the transparency problem with respect to elections brought Follow My Vote to this point in our journey. Now, I’m hoping that I can rely on the will of the people of this generation (and the generations to follow) to get the job done, once and for all.

If it were up to me, to get ahead and stay ahead of the curve, I’d put the smartest people in the world on this project and make sure they were properly rewarded for their efforts along the way.

It’s that important.

For those that wish to pick this project up from where we left off, I wish you all the best of luck. All that I ask is that you keep me in your heart and know that I’ll always keep the thought of you in mine.

As I sign off for the foreseeable future, I’d like to thank, from the bottom of my heart, all the people that have helped me to get to this point on my journey with Follow My Vote.

I think we’ve set a fine example to follow.

Thank You All

Special thanks to my family for all of your love and support, as I worked on this project over the last 10+ years, despite, at times, prioritizing progress over spending quality time with you:

My wife (Katie Ernest), my dogs (Shorty, Leo, and Banksy), my father (Jon “Kyle” Ernest), my mother (Shelly Ernest), my brothers (Aaron Ernest and Austin Ernest), my sister (Alison Ernest), and my in-laws (Dave Robey and Cynthia Robey).

I’d also like to thank my co-founders (Will Long & Nathaniel Hourt) for an unforgettable journey. We learned a lot and should all be proud of what we accomplished.

And, I would be remiss if I didn’t thank the following people for helping us out, in one way or another, along the way:

Dan Larimer, Stan Larimer, the original Bitshares core development team, Agent 86, Max Wright, Marc Purtell, Chris Mullins, Michel Santos, all of FMV’s interns over the years, all of FMV’s former ambassadors throughout the world, Sherry Walker, Jack Lesko, Kammi Foote, Brent Turner, Brian Fox, Randy Wertz, Roger Sweis, James Creekmore, Andrew Connors, Fourd Kemper, Lyle Gravatt, Mike Flint, Michael O’Brien, Kimberly Johnson, Dan Myers, Henry Bass, my LX Council members, Sharon Scott, John Dooley, Sarah Lewis, April Amodeo, Jeff Bierie, Miriam Ernest Helton, Christian Lains, Manuel Lains, Vit Jedlicka, Rick Falkvinge, Carlos Toriello Herrerías, Jonathan Bahai, Gerard Dache, all of my fellow GBAVWG members, the members of the Blacksburg Young Professionals, the members of the Golden Young Professionals, Gary Kinder, Team Awesome, Adam Riff, Tom Lanzetta, Mike Greenberg, John Carcutt, and all those that have donated to Follow My Vote, over the years, in order to further our cause.

If I’ve left anyone out, my sincerest apologies.

The truth is, everyone on this Earth, past and present, has helped by serving as the inspiration and motivation for what we’ve done with Follow My Vote. I will be forever grateful to you all.

Author

Adam Ernest

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.