At Digital Asset Research we focus on in-depth, objective blockchain research. We recently did a deep dive into Cardano’s governance system as part of a 77-page Cardano report that we published for our clients in early August. As part of that research we came up with some interesting observations about blockchain governance which we’ll be sharing as part of a multi-part Medium series.

What is Blockchain Governance?

Countries, states, and cities all have their own governance systems to create, update, and enforce laws. Blockchains also each have their own governance systems. But instead of laws, blockchains have code.

Sample source code from the Ethereum Virtual Machine

Blockchains do not need to enforce crime and wage war (at least not yet), but they do need a process to update their codebases, manage core funds, and set a long-term roadmap. Code updates are often made to improve security, as was the case in Bitcoin’s Segwit, or to increase scalability, as is the goal for Ethereum’s upcoming Casper implementation. These changes can be contentious (to say the least). Blockchains also need a process to manage funds and incentivize maintenance and protocol updates long into the future. These processes also fall under the scope of blockchain governance.

Modern democratic governments typically have three branches of government: legislative, judicial, and executive. Blockchains do not have formal branches of government but they do have three groups that are roughly equivalent to democracy’s three branches. One important note: there are many, many differences between the branches of traditional governments and the branches of blockchain governance. The following analogies only hold to a certain point. But the comparisons can at least serve as an analogy for describing basic blockchain governance structure.

Defining the Three Branches

Core Developers

Each blockchain has a core software repository that holds the code for the main implementation of its protocol. For example, Ethereum’s core repository is Go-Ethereum, while Bitcoin’s is Bitcoin Core. These software repositories are closely managed by a team of core developers who have a process to add or remove code to the repository. For example, the process for Ethereum works as follows:

Anyone with a GitHub account can submit a proposal, known as an Ethereum Improvement Proposal (EIP), for a code update.

EIPs are then informally discussed and reviewed on GitHub.

If an EIP is found to be technically sound it can be brought up at Ethereum’s bi-weekly “All Devs” meeting, which consists of Ethereum’s 50–100 core developers

The EIP is only added to the codebase if all the core developers unanimously agree to add it.

The core developers are like the legislative branch: they have the power to create code and add it to the core repository, but they do not have the power to put it into effect. Instead, full nodes have that power.

2. Full Nodes

Full nodes are a blockchain’s backbone. A “full node” is any computer that runs the full version of a blockchain’s software (i.e. Bitcoin Core, Geth, etc.). All full nodes contain a full copy of the blockchain ledger as well as routing software that runs the P2P protocol. Miners are a specific subset of full nodes who run specialized mining software, but many other full nodes run full versions of the software without actively mining. For code changes to go into effect, nodes need to individually update their software to include the updated code. This can either be done through a soft-fork, which is a backwards compatible change, or a hard-fork, which is not compatible with older versions of the software.

Forks can either be agreed upon or contentious (or a combination of both). Most forks are unanimously agreed upon by the network. For example, the Bitcoin SegWit fork was eventually unanimously agreed upon by Bitcoin full nodes, which meant that the entire network simultaneously updated to implement the new software. But other forks are contentious, like The Ethereum Classic Fork after the DAO hack. Contentious forks are a way of revolting against the core developers and forming a new cryptocurrency. The goal of any fork is to get as many nodes as possible to implement code changes, but ultimately the decision is up to each individual node.

Full nodes are like the judicial branch of blockchains. While the legislative branch can make as many laws as they want, the judicial branch can choose not to implement those laws if it finds them to be unlawful. Similarly, the core developers can write code, but the code is meaningless unless the full nodes run the software to implement it.

3. The Foundation

Most blockchains have a “foundation” or organization that manages its funds and reimburses its core developers (although some blockchains are managed by LLCs or other types of organizations, for the sake of simplicity I’m referring to this branch “The Foundation”). For example, the Ethereum Foundation is a non-profit organization that supports the development of Ethereum. It currently holds 663,046 ETH ($189,000,000) and is led by Vitalik Buterin. However, not all foundations are non-profit. Ripple is managed by a for-profit company, Ripple Labs Inc. Foundations/organizations are typically responsible for funding the ongoing development of blockchains and steering the overall direction and roadmap. While the foundation/organization can influence the roadmap, they do not execute it. That is up to the core developers, who write the actual code. Blockchain foundations also often have influential figureheads, somewhat like a country’s president. Vitalik Buterin is the founder of Ethereum and therefore has a large amount of sway within the community, although he does not have the power to single-handedly make additions to the core repository or force forks on the network. The Foundation may have direct control over appointing core developers, although some projects have more of an organic, open source process.

Checks and Balances

Blockchain governance checks and balances

Blockchain governance is a balance between the core developers, the full nodes, and the foundation. The software developers can release new code, but the changes will not go into effect unless the full nodes implement them. The nodes depend on the software developers to build and publish the updates needed to improve the protocol, but they can create a contentious hard fork if they disagree with the core developers’ decisions. The foundation can decide which core developers to support and influence the overall direction of the roadmap and protocol, but it cannot execute the vision without the support of the core developers and full nodes.

The fourth branch

But there is one other party that has some influence in blockchain governance: coin holders. Although coin holders do not typically directly influence the process of updating the blockchain, they indirectly influence it by how they choose to use their cryptocurrency. For example, if the developers and full nodes both agree on a change that is universally hated by the coin holders the coin holders may sell off their coins en masse and throw the entire system into chaos. “The People” are often considered the fourth branch of government. Similarly, coin holders can be considered the fourth branch of blockchain governance.

There are already several different philosophies on the best way to manage each of these branches of government. In our next post we will compare two of the main philosophies on how to structure blockchain governance.