When we hear about Bitcoin, the first things that usually come to light are that it is decentralized and it is borderless. While this is true, its development is largely centralized, creating a bit of a disruption in its progression when it comes to altering the protocol for things like larger blocks. It’s not always apparent from the outside, but the coin is largely dependent on a few different developers.

How Changes Are Taken Live

For Bitcoin changes to go live (or any cryptocurrency, for that matter), miners have to agree to make the change. This means upgrading or otherwise altering their mining software to support the new changes. Essentially, it is the miners as a whole that determine what ends up getting passed and what doesn’t, as miners will only build on to chains that they agree with.

Essentially, the path to changes going live goes as follows:

  • The Core client is patched
  • Miners who want to use that patched version will swap their local one with it
  • If a majority of miners make the change, the chain will adopt it, as their blocks will be passed on, becoming the main chain, while others (depending on if it’s a hard fork or a soft one) can just be orphaned and forked

What’s important here is to note that there are two groups that changes must therefore pass through: the developers themselves and the miners. However, for the most part, they are working in tandem, as they are all for the same goal – strengthening the network and making sure their hard work (and expense) is not wasted.

Who Can Make Changes?

In theory, anyone is able to make changes to the Bitcoin code, even if you’re not a developer. The issue here, however, is that only certain ones will be accepted into the main development branch, of which only a few have access. And while altcoins are often run by other unrelated individuals, with Bitcoin, there is a lot of trust being put in the development team. After all, with a market cap that is over $8 billion, there is a lot at stake with any changes that are made to the system. As such, when we think about Bitcoin and getting involved, we just have one source that’s seen as being “legitimate,” so to speak: the Core repository. This is because while anyone can make changes, only those in Core are going to be accepted by most miners, so downloading altered software can lead to ending up on your own fork, as opposed to building on the main chain – wasted efforts. With that said, if someone comes to the scene with solid, verified ideas and pushes them towards the Core team, it is entirely possible to be added to it for future development. It’s an ever-changing environment, designed to help push Bitcoin forward.

Why is Development Slow?

Getting changes made to Bitcoin takes a lot of time. Instead of a lot of software where people just throw up patches, see if they work really quickly, and move on to the next thing, with Bitcoin, they are much more careful. A small change can make a huge difference both short- and long-term, and it’s important not to underestimate the potential complications that can occur as a result of quickly making decisions. A great case in point is the block scaling debate, which has created a bit of a rift between some community members. This is because while bigger blocks does allow more transactions in, it also reduces the fees obtained (as senders don’t have to compete) and greatly increases the size of the blockchain as well, along with things like slowing down the mining process by throwing in more data, and other things. Quickly jumping to a decision on scaling it up could lead to potential issues that cripple the network, and not doing anything could just as easily cause problems. It is this type of foresight and testing every possible angle that has brought so much trust to the Core developers. As a result, despite the development being quite centralized at this point, that is arguably a positive thing – they’ve shown resilience to pressure to work faster and throw up untested ideas.