At the moment there is a huge debate raging in the Bitcoin community on whether or not there should be a hard fork into two different currencies along the same lines as what happened to Ethereum in 2016. As can be imagined, the debate is intense with many folks taking extreme sides. My goal for this essay is not to weigh in on that battle as my technical understanding of Bitcoin is limited in this debate compared to many of the developers and other folks who are staking their businesses and focus on it. But there is another idea that is constantly springing up in many of these debates and that is this idea of decentralization and more importantly, building decentralized applications. So why is the concept of building decentralized applications gaining prominence?
First, there are three types of ways that applications can be built: centralized, decentralized, and distributed. The majority of general applications being built are centralized, that is, there is a unique core node that must be used in order to access what the app is offering (be it data, an API, or your account) and the core node instructs all of the connected nodes as to what to do. If we take a step back and analyze this idea we can see that all information being produced will flow through a single center (or node). Every person who uses these services is dependent directly on this central authority maintaining the power to send and receive information. Google, LinkedIn, Facebook, and Amazon are all built on centralized stacks and this design works powerfully for them both technologically and business wise.
Then there are distributed and decentralized applications. A distributed system means that computation is spread across a network of multiple nodes which helps speed up computing and latency of data access. A company like Google builds distributed software to help speed up their services. A decentralized application means that there is no central node that instructs the other nodes on what to do. Bitcoin is the ultimate decentralized application because if one node fails, it will not have an effect on any of the other nodes and the network will continue to operate. For the purposes of this essay, I am going to skip going through anymore detail on distributed systems.
So why should we care about decentralized systems/applications especially since centralized systems already work so well for these companies already? For one, there is a rather large possibility that these applications will be used for their superior incentive structure, resiliency, transparency, and distributed nature. Using a blockchain (peer-to-peer distributed ledger) to a form a trustless system, value can be created using cryptographic tokens, which can then be used to access the application. As I stated in the previous paragraph, the premier decentralized app at the moment is Bitcoin (and this could very well change down the road) which simplifies the traditional financial system. In order to access the network, one must own some bitcoin, which can then be used to store value, or easily transfer it from one wallet address to another. For example, cross-border payments are made easily since the value isn't being transferred through several financial middleman.
Another way that decentralized applications are being built is as protocols that use another blockchain, such as Ethereum, and issue their own tokens to function. One interesting example is the Golem Project; it lets users access another users computer using their tokens as the exchange of value. For example, if I set up some spare computers and put them on the Golem network, anyone with Golem tokens can use my computers in exchange for those tokens. We suddenly have a way to put our spare CPU's to work. This has been an idea I have thought about considerably using bitcoin as the exchange of value instead. Either way would work well and put spare computers to work.
But let's not get ahead of ourselves quite yet. Centralized services still absolutely dominate the vast amount of users and will continue to do so over the coming years. It may not even be until innovation begins to slow down or companies begin having other problems that will eat up their time (this could be anything from internal problems to governments/states coming down hard on them). If this does happen, then decentralized systems built on blockchains could start becoming more well known as easier and stable computing platforms. In fact, I am thoroughly convinced that these systems will be incredibly important for businesses, customers, and citizens. But it will be a long road before we get there successfully and my goal is help pave it along the way.