A key aspect of Bitcoin’s value proposition is that it’s an open source protocol independent of any particular corporation or government.
Similar to other open source initiatives, the software that runs the Bitcoin network is managed and improved upon by a group of volunteer developers.
In theory, the developers answer to Bitcoin users who choose whether or not to run a particular version of the Bitcoin software. In reality, majority mining power is what drives adoption of new versions of the Bitcoin software, taking the approval mechanism out of the hands of Bitcoin users and putting into the hands of the mining pools.
This Bitcoin development consensus mechanism provides lose oversight over the developers, but ultimately they have final control over what features they choose to add to the protocol.
“If you go back in history, it was really simple. It was whatever Satoshi decided at the beginning. That’s really where we started. We had one source code. We had one [pseudonymous] person who made all the decisions about what should Bitcoin be, how should it evolve, and what should it do,” says Bitcoin Chief Scientist, Gavin Andresen.
“As soon as Satoshi stepped back and threw the project onto my shoulders, one of the first things I did was try to decentralize that. So, if I get hit by a bus, it would be clear that the project would go on. That’s why, at this point, there are five people who have commit access to the GitHub Bitcoin source tree. And there’s kind of this consensus process for what changes are made to the code — and even what consensus-level, low-level changes to the Bitcoin rules should happen,” Andresen continued.
With other types of open source software, such as Linux, if users disagree with the path the developers take, they can take the code and fork it, adding whatever features they desire into their version. Then users can choose which version of the software they would rather run. This forking mechanism is possible with Bitcoin as well, but since it is a financial network worth Billions, forking is a much riskier endeavor than with other open source projects.
Forking the network can result in financial loss for those sending/receiving transactions when it occurs, as well as splitting the network into two weaker competing networks that may be more susceptible to attack. A two network situation would most likely not last long, as one network should take over the other relatively quickly, but it is a less than ideal situation. Put simply, if a Bitcoin fork can be avoided, then it should be.
“If you go back in history, it was really simple. It was whatever Satoshi decided at the beginning. That’s really where we started. We had one source code. We had one [pseudonymous] person who made all the decisions about what should Bitcoin be, how should it evolve, and what should it do.” — Gavin Andresen, Bitcoin Chief Scientist
Currently, the Bitcoin community is at a crossroads, many users wish to raise the capacity of the network, while the main developers want to keep it at it’s current capacity of 1MB every 10 minutes until they can all agree on a solution. As a result of perceived developer inaction, two main developers have chosen to create a fork of the Bitcoin software that implements an increase against the wishes of the majority of developers.
Users now have the choice of running Bitcoin Core or the new forked version, Bitcoin XT. Bitcoin XT is designed to require a threshold of users before it’s forking capacity increase is implemented. If 75% of miners choose to run XT, then 2 weeks later the capacity increases will begin, resulting at that point in an incompatibility with Bitcoin Core.
“I think a lot of the strife and conflict comes with — we’re starting to grow beyond even that to there are a lot more stakeholders, there are a lot more people involved, there are a lot more projects,” Andresen says. “How do we evolve from — it used to just be Satoshi making decisions to it was this small group making decisions to suddenly there’s a much larger set of people who are interested in decisions and how they’re made.”
All the developers agree that the strategy of forking the main software is less than ideal, but where they disagree is that both sets of developers feel that they are acting in the best interests of Bitcoin users. As a result, the solution to this disagreement lies in the same principles that govern corporations, a vote by stakeholders weighted by their respective stakes.
“How do we evolve from — it used to just be Satoshi making decisions; to it was this small group making decisions; to suddenly there’s a much larger set of people who are interested in decisions and how they’re made.” — Gavin Andresen – Bitcoin Chief Scientist
CryptoVoter is an open-source block chain voting client that enables Bitcoin users to place votes transparently based on how much bitcoin they own. CryptoVoter requires no changes to the existing Bitcoin codebase and can be implemented immediately.
Voting requires no trusted third parties and is completely decentralized, allowing anybody to audit the voting results using a block chain explorer. Vote results are non-binding so devs still have the ultimate say, but now everyone would objectively know coinholder sentiment. Furthermore, throughout the entire process a user’s bitcoin remains fully under their own control, with their private keys never leaving their local computer.
CryptoVoter enables Bitcoin users to vote on any topic based on the amount of bitcoin they own. Specifically, the software will enable bitcoin owners to express their opinion on what course of action the developers should take regarding the current block size debate.
This is comparable to shareholder voting in public companies, where shareholder votes are based on the number of shares owned by a particular individual. If the concept works for thousands of corporations worldwide then it should work for Bitcoin’s governance.
“The current Bitcoin and cryptocoin governance model emphasizes developer and mining pool consensus, while leaving Bitcoin holders out with no real say,” says Jim Joseph, chief executive of Blockchain Innovation Labs. “We developed CryptoVoter to change that by giving bitcoin holders a public voice in the development debates and provide the mandate developers need to implement controversial changes. By shifting the concentration of power away from developers and mining pools, CryptoVoter hopes to empower Bitcoin holders and strengthen the blockchain along the way.”
CryptoVoter’s voting client and code launched on September 14th and will go through approximately a one month test period holding development votes on a smaller cryptocurrency’s block chain before hosting the first Bitcoin block size-related vote on October 23.
The company hopes that by releasing the voting client as open-source the community will join in testing and evaluating the voting client before the first Bitcoin vote is conducted to address any issues that may have slipped past them during alpha-testing.
CryptoVoter will enable truly decentralized Bitcoin governance that will allow the network to grow over time and integrate new features. Bitcoin strives to be a global independent currency and store of value, for it to succeed it will need a decentralized governance system where all stakeholders have a voice.