Decentralized or distributed?
I am sure a lot of us have heard about decentralization, blockchain and bitcoin, ethereum and many other cryptos. Putting some of these ideas into context, many of us have a hard time explaining the different kind of decentralization and the reason why decentralization is a good idea and why decentralization makes sense in some areas and why in some areas it doesn’t make any sense at all.
First of all, decentralization in general is not a new idea. we had human civilization for ten thousand years and over these years we had a lots of instances of centralized things such as centralized governments, centralized companies, centralized cites and some decentralized thing. There are some examples that even before we had computers, IT, we had various instances of decentralized economies , decentralized ways of interacting. For example looking at the insurance industries, we generally have insurance because of national government program or because we are buying insurance as a product provided by various insurance companies. But the way that insurance companies started in the first place as, a group of people coming together and making a contract of mutual understanding that all have ship and if one of my ship gets captured by pirates or gets damaged we can help each other cover the cost. This decentralized model is something that existed for quite a while.
Looking at the software industry, we have some decentralized application for quite a while such as BitTorrent. We have had decentralized network for sending files from one network to another. If we look at email, in some ways its a semi-decentralized protocol. You can access email though gmail, or Microsoft’s email or through some other email service or theoretically you could set up your own server. If you want to download some files, BitTorrent is one great way to do that. In fact, its something a lot of software developers use as a primary way of distributing data they produced to the user. Generally, if you use open source package, the developers don’t even have resources to actually setup and maintain the infrastructure to centrally upload and send their software to tens and billions of user. And a lot of times they use a means of decentralized network as a way of solving this problem.
In 2009 Satoshi Nakamoto came up with the idea behind bitcoin. He describes it as a peer to peer electronic cash system. Since then computer scientists and cyber punks have been interested in these idea of decentralization though blockchain for quite a while. But the one major application that they had really hard time is money. They figured how to decentralized messaging, sending decentralized files but currency is the one application that ended up taking a lot time to develop. Back in the 1980’s and 1990’s there were various kind of cryptographic emoney but coming up with a version that doesn't rely on one central party that vanishes the whole system actually proved to be really challenging.
Ethereum is another project with the goal of bringing the idea behind bitcoin, the blockchain technology and try to make it more generalized. It has come up with a architecture that we can use to build decentralized application in a very general sense.
There are a lots of people trying to define decentralization. In my opinion most people that are trying to do this tend not to come up with a good classification. Many people think decentralized and distributed are synonyms and there are people who agree on particular way categorizing it. I mostly agree with Vitalik Buterin’s way of classification of decentralization. He categorized Decentralization into 3 types:-Architectural Decentralization, Political Decentralization and Logical decentralization.
When people talk about blockchain they actually tend to talk about the benefit of having single database instead of having a local private database that are used by many institutions and banks which have very complex and inefficient process for reconciling between them. This is where logical decentralization plays a important role. Logical decentralization has the zero probability of system failure and can tolerate any accidental faults in the system. A attack aimed at disestablishing the system will have minimal or null effect on it. Lastly, a local system cannot act independently which also maximize the efficiency of the decentralized system as a whole.