"Bitcoin isn't just a currency but an elegant universal solution to the Byzantine Generals' Problem, one of the core problems of reaching consensus in Distributed Systems."He mentions several applications of this problem, including domain name registration, the problem solved by Namecoin.
But, after reading his article, it occurred to me that there is another, arguably even more important application of the insight that Bitcoin's underlying protocol can be used to solve a wide range of distributed consensus problems: Specifically, the problem of secure, trustable electronic voting in public elections.
Most secret-ballot voting systems are plagued by the problem that the voter always has to trust somebody to do their job right: The people who count the paper ballots, the designer of the touch-screen voting machine or optical-scan ballot counter, election officials who aggregate results from different districts, or the website operator in the case of online voting, and even the other voters themselves (not to vote multiple times). It is devilishly hard to devise a voting system in which the voter doesn't have to trust any authorities, and in which the ballots remain anonymous, and no one gets more than their fair share of votes.
However, if we are willing to redefine "fair share" to mean, everyone gets to vote with a weight that is proportional to their hashing power, than a Bitcoin-based protocol can solve the electronic voting problem.
The idea is simply this:
- The Bitcoin protocol is extended to allow blocks to be "tagged" with a payload of auxilliary fields (in addition to the usual Merkle tree, block ID, etc.).
- When an election is scheduled, it is declared in advance that the winner will be decided based on which candidate's name appears most often in the tags in the block chain, within a certain predefined range of (future) block numbers.
- Each miner, as it is hashing block candidates, optionally extends the block being hashed with the name of their preferred candidate. When a nonce is found that gets a winning hash, that block is submitted to the network and gets added to the longest chain.
- Also, a mining pool can act similarly to a political party, and pre-declare which candidates it is supporting in which races, and include their names in the blocks for all of the get_work data that the pool distributes to its miners. The miners can then choose to mine for whichever pool's stated slate of candidates best reflects their own preferences. (Or, of course, they can also still mine random nonce subspaces on their own, and hope to get lucky.)
Obviously, since the search process is probabilistic, the result will not reflect precisely the wishes of the electorate, but, within the bounds set by the law of large numbers, it will with high probability be very close to the ideal distribution of votes, as long as a large enough range of blocks is included within the "voting period."
Of course, this system is not a "one person, one vote" democracy, but rather a sort of meritocracy, based on the notion that the amount of computing power one commands is a measure of the strength of one's decision-making ability. Instead of working for "we, the people," such a system would work for "we, the processors."
Such a shift in political power obviously would entail certain risks, but, at least in this framework the voting system itself can be trusted - unlike the situation in our present system, in which the average person never even knows for sure whether the election system counts votes honestly, so has diminished incentive to participate. With "Votecoin" (a possible name for this new system), every well-informed person knows that the system works fairly (and they can inspect the source code for their miner, if they wish), and so has a strong incentive to working hard to build up their hashing power so as to best support their favored candidate.
I believe that people's confidence in the underlying integrity of the voting system is key for producing strong participation in elections, and helps to create a polity that is much more actively involved in their political system, and more invested in its success. Therefore, I think that to make such an advance in election technology would not weaken the principles of democracy, but rather would enormously increase its effectiveness.
Oh, and by the way - since anyone in the world can participate in the Bitcoin network, this approach to holding elections implies governance with global jurisdiction. Since we don't yet have one world government of physical nations, this could be, for now, just the virtual "government" of the Bitcoin City itself - the worldwide community of Bitcoin users. Some of us like to say that we don't need a government, but someday, we may in fact need to make important consensus decisions as a community - such as (someday) planning an upgrade to an improved, more secure protocol - which will require having a reliable method to poll the entire community for its views.
In any event, anyone who would like to help the author develop experimental prototype "Votecoin" software is invited to email me at michael.patrick.frank@gmail.com.