For a (pretty) non-technical introduction to blockchain technology, please read this article in the series.
What is centralization?
Decentralization is the purported goal of blockchain technology, but what does decentralization mean? As the infrastructural technology and the application landscape evolves, the word "decentralization" has become a buzzword that has lost meaning through overuse and misuse, while rapidly devolving into divergent connotations. One way to better understand the meaning of decentralization is perhaps to explore its converse by looking at centralization, with everyone's favorite centralized foil, the bank, as our primary example.
The need for banks probably arose with the need to keep records of transactions between disparate entities, so these entities can agree on the transactions and resultant balances. In this way a bank is a type of third-party witness to transactions. If A sent B some money, and only A and B were aware of this transaction, then either party can refute that this transaction ever took place. To prevent this from happening, we introduce a neutral, third-party witness which both A and B trusts to make sure the transaction is not refutable. This is a form of centralized record-keeping.
But if you'd want to make a withdrawal from the bank, the bank will ask you to prove you are the owner of the account. Proof of ownership usually rely on several mechanisms today: possession, knowledge, and identity. In the case of the shirt you're wearing, the very fact that you're in possession of it is usually sufficient proof that you are the owner. If you buried some gold somewhere, knowing the location of the burial confers ownership of the gold. When you withdraw from a bank account, the bank will often either ask you for a password (knowledge) or a government-issued identification. Except for ownership by possession, ownership by knowledge and identity are usually validated by centralized entities - e.g., payment processors that validate your password, government agencies that validate your driver's license. This is a form of centralized validation.
Not everyone can own a bank account. For example, if you've been convicted of a felony in, say, money laundering, you won't be able to open bank accounts in most banks. If you are a minor (e.g., under 18 years old), you also cannot open a bank account on your own. Participating in ecosystems such as a bank is determined at the discretion of the bank's operators. This is a form of centralized membership.
While not an exhaustive list, we can characterize a centralized ecosystem as one where a central entity decides who can participate (membership), decides who is permitted to do what (validation), and decides what and how history is recorded (record-keeping). This is a good starting point to understand what a decentralized ecosystem is.
What is Decentralization?
If a centralized ecosystem has a central entity deciding record-keeping, validation, and membership, then would a decentralized ecosystem be exactly the opposite? Ideally-speaking, this is true. An ideal decentralized blockchain network, for example, would exhibit the following properties,
- Distributed records: all transactions and results of the transactions are stored on every single node on a blockchain network, everyone has the exact same copy which each node has calculated without relying (trusting) any other node.
- Decentralized validation: in addition to nodes independently validating and arriving at the network's records, blockchain consensus algorithms provide a mechanism for nodes to reach agreement on what they have each independently validated - agreement, however, is not guaranteed.
- Permission-less membership: any entity with the open-source code, hardware, and internet connection can join the network, no one entity acts as a gatekeeper that decides whether a particular entity is able to participate. Membership is completely open.
This seems very clear-cut, why is there confusion around decentralization? The devil comes in the details when trying to implement idealized decentralized blockchain technology in the real world.
Roadblocks to idealized decentralization
Many applications and networks claim to be decentralized, but almost none is ideally decentralized. Here are some practical problems to consider.
- Risk: decentralization also means individual responsibility. For example, in a perfectly decentralized network, if you lose your private key (in a text file, on a USB, in multiple M of N distributed keys, whatever), you lose your identity, funds, and everything that goes along with the key. This type of no-recourse responsibility is often too risky for end users, who often demand something akin to password-recovery, which means reliance upon another centralized entity.
- Performance: applications where performance is extremely important often require centralized systems to perform part of the task. CryptoKitties for example has algorithms for cat breeding and trading on the blockchain, but the user-facing application stack is entirely run on a central application server to ensure a smooth end-user experience.
- Updates: a fully decentralized network takes time to agree upon critical network decisions, such as protocol updates, especially when those updates significantly alter the economics of the network. Many emerging projects are opting to centralize decision-making power during the early phases of the network to ensure that new features and bug fixes are rapidly incorporated without a long, drawn-out and often cantankerous decentralized decision-making process.
- Collaboration: in networks such as BTC or ETH, miners collaborate in pools that work together to propose a block and split the resulting rewards. This ensures that even relatively lower-performing mining machines can contribute to the network and earn rewards, as well as providing a more predictable income stream for all miners in the pool. These collaborative efforts create large pools that look like an oligopoly and do not seem very decentralized.
These real-world considerations at a minimum force us in the blockchain space to closely examine our goals: do we want to simply decentralize everything, or do we want to solve practical problems? If we want the latter, a more practical (less dogmatic) approach is required.
Practical systems are never purely centralized or decentralized, as their respective advantages make them useful as a combination.
We here at Taraxa are committed to the ideals and benefits of decentralization - we believe that the pendulum has swung too far out of balance into the centralized direction. But at the same time, we are also committed problem solvers. While we strive to build the best-performing, secure, flexible, and decentralized technologies, we constantly look for ways to solve real problems that exist today with these technologies.
Idealistic in the long-run, practical in the short-run.