This post is part of a series on Blockchain. This is the second installment of the series.
Have you ever been to a public chess park? If you have you will notice all sorts of people playing chess, from young to old, from seasoned pros to beginning novices. You might have an Archeologist taking on a homeless man; a curious teenager squaring off against a gunslinger. Several different languages rise up from the soft murmuring at the tables or off those passerby or of those watching the match. This is totally different from playing chess at home where you know your opponent and only those you invite to your house can play the game or watch it.
Blockchains are not too dissimilar to where and with whom you play the chess game. You can have a Blockchain that anyone can join, or you can have one that is fully private, where only a selected few can access it. Therefore, Blockchains are roughly split into three categories, mainly Public, Private and Federated (sometimes also called a Consortium). There is also another category called Hybrid, which I will also expand on in this article.
The following properties are used for comparing the above three types of blockchains:
- Consensus determination: whether all nodes can take part in the consensus, a set of nodes are responsible for validating the block, or only one organization determine that final consensus.
- Read permission: who can view the transactions on the Blockchain.
- Immutability: how easy is it to tamper with the Blockchain?
- Efficiency: how long it takes to propagate transactions and blocks.
- Centralized: whether Blockchain is decentralized, partially decentralized or fully centralized.
- Consensus process: whether permission is required to join the Blockchain or not.
Bitcoin and Ethereum are instances of public Blockchains, which are open and decentralized. Anyone can join and leave the network at any time. There is no central entity that manages who joins or leaves the network. This also means anyone can read written content on the Blockchain. They can also download the code and start running the public node on their local device validating transactions in the network, thus participating in the consensus process.
Other example of public Blockchains are Monero, Dash, Litecoin, Dogecoin etc.
In private Blockchains, the owner of the Blockchain is a one or multiple entities or an organization that has an access control that limits who can take part in the network. This is similar to playing chess at home where you have the right to decide who can play or be invited to the game. Read permission is either public or restricted to an arbitrary extent.
So why have Private and Public Blockchains? Private Blockchains have tried to address the privacy and scalability issues that has plagued public Blockchains. Transactions that take place on a public Blockchain are public. This means that anyone can see them. Similarly public Blockchains can't handle large quantities of transactions. However since 2016, public Blockchains have made strides to address scalability problems. Going private with Blockchains also puts you at a risk of security breach just like in a centralized system. Once breached, the malicious attacker is able to control your Blockchain.
In Federated or Consortium Blockchain, a pre-selected set of nodes control the consensus process. Consortium Blockchains are mostly used in the banking sector. The right to read the Blockchain may be public, or restricted to the participants. Example of Federated Blockchains are R3 (Banks), EWF (Energy) and B3i (Insurance).
Hybrid Blockchain is a new kid on the block that provides benefits of a private blockchain with the security and transparency benefits of a public blockchain. Considering Blockchain is still evolving, Enterprises want the benefits that blockchain can deliver without the associated risks of a public Blockchain and sametime leverage scalability capability of private Blockchain.
In the following post, I will discuss the Blockchain Consensus.
Thanks for reading!
If you enjoyed this article feel free to share on social media 🙂
Github repo: hseera