If one part of a whole system is different from the other, can we define the whole system with any part? If one part of a decentralized system is not decentralized, can we still call such a system decentralized?
We have a trust, safety and security problem. Blockchain seems to be a solution for it as a decentralized system. However is decentralization possible?
Satoshi Nakamoto – whether it’s an individual or a group of people – has created a fundamentally new and different way of organizing humans’ merit-based in an open way . Today, there are many applications that try to be trustless and secure platforms on top of blockchain. There are many companies that have launched or plan to launch an ICO for such a purpose. However, are they really decentralized?
Vitalik Buterin, the inventor of Ethereum, explains the problem blockchain solves :
Blockchain solves the problem of manipulation. When I speak about it in the West, people say they trust Google, Facebook or their banks. But the rest of the world doesn’t trust organizations and corporations that much — I mean Africa, India, Eastern Europe or Russia. It’s not about the places where people are really rich. Blockchain’s opportunities are the highest in the countries that haven’t reached that level yet.
So we do not trust the companies like Google, Facebook or any others from the perspective of manipulation. We do not want any entity as a man in the middle. How about the current situation at today?
Ethereum is the leading platform for decentralized applications by usage . Smart contracts are the code pieces that directly interact with blockchain. However, dApps built on Ethereum contain a very small percentage of smart contract codes:
In the case of Storj, the smart contracts, which are just 9% of the overall codebase, only exist to provide logic for transactions. There is no code for the storage and encryption of shared files, broadcasting a node or disc usage rules. The functional codebase that handles the above components is located in a separate repository written in NodeJS. Similarly, in the case of Golem, the smart contracts comprise only 3% of the codebase, and the codebase that does all of the heavy lifting is written in Python .
If a dApp connects to the backend first and then accesses blockchain, then this dApp may not be described as trustless or secure. When we talk about Ethereum, running a smart contract and accessing it directly from a dApp should be the best choice. One can still provide solutions while communicating with off-chain for others. But how can we trust a black box system that we are not sure about what it is doing, even if it connects to blockchain eventually.
We do not see a decentralized environment when we check how the mining occurs either. Mining pools are the common way for it. Here is the latest mining distribution by miners :
As it can be seen from the chart, the top three mining pools have a total hash rate of more than 60 percent. This makes solo mining impossible  and makes current systems centralized. Not miners totally, but mining pools are not decentralized . This is a problem to be solved. A possible solution could come from Vitalik’s suggestions :
- Reward all miners constantly instead of just a random miner each block
- Create a scheme where trusting your mining to someone else inherently gives them the ability to destroy your entire investment in mining instantly.
How about running a trustless world machine on entities like Amazon or Microsoft?
On the other hand, this ecosystem has exchanges that are not decentralized. Most of the world’s cryptocurrency trading is done through centralized exchanges such as Coinbase/GDax, Binance, Bittrex and the like . One can touch an exchange at any time. There are also wallet services that are not decentralized. So, can we define the whole system as decentralized without getting rid of them? We should move to Decentralized Exchanges (DEXs) instead of centralized ones.
We design decentralized infrastructures for a new world. However, we live in a centralized world. Whole data resides on centralized data sources. We cannot regret previous data when we create a new application. So how can we design a decentralized system that touches a centralized source? Assume that you are connecting to Facebook to collect data of a user into a platform on blockchain. Even if you design a perfect system on blockchain, you can’t provide a fully decentralized one if you connect to Facebook. You can’t guarantee immutability if you cannot trust Facebook. You can’t own your data if you get it from a data source that’s under someone else’s control.
We have many technical obstacles with blockchain, including computing costs, speed efficiency and providing light clients for different platforms. We need to wait for technology to evolve. Many developers use Infura for such reasons. Infura is a great tool but doesn’t it clash with the term of decentralization? Also, it doesn’t mean that just because an application is built on top of blockchain it is decentralized. One can write a smart contract that gives complete control to the owner of the contract.
We should not compare blockchain with a utopia, but rather, it’s the first steps of a transformation of the current system. We have a new form of decentralization. As the World Bank notes :
Decentralization is not a panacea, and it does have potential disadvantages. Decentralization may not always be efficient, especially for standardized, routine, network-based services. It can result in the loss of economies of scale and control over scarce financial resources by the central government.
Decentralization is not a panacea, but it does not result in loss of economies of scale. On the other hand, why should central governments control our financial resources?
All in all, other questions arise at this point. Should everything be decentralized? And what if something goes wrong on blockchain platforms? We should be aware that decentralization is not a silver bullet? Everything should not necessarily be decentralized. These are the first steps of a transformation. We may fail, but we should keep trying.
There are good efforts for decentralized applications, and some of them are really decentralized. But not all of them are on blockchain. The solution for a decentralized infrastructure is to transform whole parts of the current entities into a decentralized one. One day, we may have more fully decentralized platforms. Before the day of decentralization, we should migrate from such platforms day by day.
Be the owner of your data. Control your own data. Believe in the power of participation.