I’ve just released a specification for a digital voting system built on top of the Bitcoin blockchain, and specifically an addition to the Open Assets Platform for multiple asset classes on Bitcoin. For consistencies sake let’s refer to it as Proof-Of-Vote. You can read the full white paper here. The idea uses a variant of Manuel Araoz’ beautiful proof-of-existence and the Open Assets Platform by Flavien Charlon to sustain a system capable of supporting a wide variety of voting methodologies including liquid democracy.

Voting on the blockchain isn’t a new idea. Even Satoshi’s original paper described Bitcoin as a fact-in-time ledger, and that intrinsic property is the most critical component in creating fair systems capable of being audited by all parties involved while preserving aspects of anonymity and integrity. Richard Branson recently wrote an article about the future of voting on the Internet, speculating that in the long term it makes a lot of sense. He is absolutely correct, but for the first time ever the technology necessary to make this vision a widespread reality is at hand. There are numerous technical challenges in creating voting infrastructure, but it is remarkable how many of them can be addressed by the power of the Blockchain and secured by the massive hashing power running that network.

The key is to think of ballots as units of digital currency, distributed to an electorate that can then spend that “money” on a particular candidate, or delegate that money to intermediaries in the case of liquid democracy. Voters are secured by private keys, or BIP38 protected wallets. In addition to minting a private currency for the purpose of the vote, we can further secure the whole process by encoding the parameters of the vote in the blockchain as proof-of-existence. That proof can include the source code necessary to validate the rules of the vote, and to enforce client-side restrictions. Ultimately since every vote is anonymous but public we can determine whether they are following the rules as documented by the proof-of-existence or not. This lets multiple parties validate the result, and prevents tampering and other types of voter fraud.

I also address some concerns about anonymity. These addresses are not linked with a user’s normal Bitcoin wallet, they exist entirely separately. There is enough flexibility in the system to provide the same level of anonymity that we currently enjoy in US voting, and if a third party agency dispensed authentication tokens (cookies) they could be embedded in the vote to provide an even higher level of security and accountability without necessarily reducing anonymity.

Compare and contrast this system with the current situation in the United States, which is for the most part completely opaque. Blackbox voting has been fighting for election transparency, and against machines that do not provide a paper trail. If we don’t have schematics on how a vote is conducted, where the data is stored, or when the vote is initiated how can we possibly expect to have fair elections? When a single command could swap a person’s vote, how can we be sure we know how our votes are recorded? A system based on the blockchain could easily provide proof-of-vote, and an individual could verify their own vote against the public ledger. Combine this with the distributed nature of the vote, and we have a system that could radically alter the way democratic processes work. I am a strong proponent of validated democracy through code.

With that in mind possible room for improvement is the addition of a specification that rigorously codifies the rules of voting as a series of backtracking and account management operations on the blockchain. Such that for every inbound transaction to a candidate we can trace the previous transaction, check totals, and determine that the coin originated where we think it did. Some of these actions are intrinsic in the Open Assets specification, but making sure all of the vote constraints are satisfied will allow us to do accurate tallying and discount cases of voter fraud or manipulation by any of the parties involved.

There are numerous ways to improve this specification, and I am open to suggestions. I’ve started Digital Suffrage as a community site. At this point it hosts little more than the white paper and a sign-up so that I can e-mail people interested in working or discussing the specifics of these systems. I’ve started doing some initial development, if you are a developer with a keen interest let me know. Let’s work together to make truly liquid democratic systems possible for the first time in history.