We are hearing about blockchain all the time. Terms like “public”, “private” and even “consortium” blockchain can be heard very often. We are sure that some people do not know exactly the differences or even the meaning of these terms. Below we clarify them and spot the differences.
Starting with public, anyone can assume that this type of blockchain is … for the public. But for a chain to be really public all the following must hold:
a) there are many nodes who belong to different entities (people or organizations)
b) all have unrestricted read access on the whole chain
c) everyone has a chance to write on the blockchain (no permission is needed for someone to try to “win” the next block)
It is now clear that public chains are permissionless, that is, anyone can read and also participate in the consensus to produce the next block.
Private chains are the exactly opposite. Everything belongs in a single entity. Private chains can give access to the whole data, some data or nothing at all without permission. But participating in the consensus, and consequently, writing on chain, is restricted to the nodes that the entity owns. There is central authority for the nodes/servers, which by the way, are not many. It is clear that we have a centralized system in this case.
And what about the consortium chains? This category also belongs to permission blockchains. The difference is that not everything belongs to one entity, there is a closed group of entities, which probably do not trust each other. They reach consensus using some Byzantine Fault Tolerant algorithm. Reading on chain data also requires permission. The most known consortium blockchain today is Ripple.
Before seeing the pros and cons of each chain type, I want to dispel a myth. This myth is spread by companies who sell “blockchain solutions” , usually advocated as BaaS (Blockchain as a Service). Let’s see what is on IBM’s website about that:
The sole distinction between public and private blockchain is related to who is allowed to participate in the network, execute the consensus protocol and maintain the shared ledger. A public blockchain network is completely open and anyone can join and participate in the network. The network typically has an incentivizing mechanism to encourage more participants to join the network. Bitcoin is one of the largest public blockchain networks in production today.
One of the drawbacks of a public blockchain is the substantial amount of computational power that is necessary to maintain a distributed ledger at a large scale. More specifically, to achieve consensus, each node in a network must solve a complex, resource-intensive cryptographic problem called a proof of work to ensure all are in sync.
Another disadvantage is the openness of public blockchain, which implies little to no privacy for transactions and only supports a weak notion of security. Both of these are important considerations for enterprise use cases of blockchain.
Starting, we already have seen that “The sole distinction between public and private blockchain” is not only related on writing permissions, but also of how many nodes and entities participate. The real difference is an important one: centralization vs decentralization. Private chains are centralized, public are not.
Continuing reading, we see that they state “One of the drawbacks of a public blockchain is the substantial amount of computational power that is necessary to maintain a distributed ledger at a large scale”. Here they referring to Proof of Work (PoW) architectures. While this is true, it does not hold to Proof of Stake (PoS) consensus algorithms. And public chain can be PoW or PoS. So for PoS public chains this statement is simply not true.
Their second argument is about privacy: “Another disadvantage is the openness of public blockchain, which implies little to no privacy for transactions and only supports a weak notion of security”. This is wrong also. Many people not related
to blockchain may think that raw data (plain text) is written on blockchain. In fact, what is written on it are only hashes (hexadecimal numbers), which have no meaning for humans and also they can not be reversed. I am going to give a short example that is related and has many applications in real world business: Proof of concept (PoC).
Each piece of data can be “digitally signed”. It can be anything: a picture, text, video, computer code, a legal document. The hash is written on blockchain, but only that. The data are kept private by the owner or the party who is interesting in it. Digital signatures provide integrity. No one can change the data because the hash will change. And no one can change the hash, because blockchain data are immutable. Imagine the analogy without a blockchain. Two (or more) people , or even one (with a help of a notary or witness) sign a piece of paper. Each one has a copy signed by all members. They split. They don’t have to make public this document. They keep it for themselves. Only in a dispute they must provide it to the court to prove its correctness (because it is signed). No privacy is violated. The exact same thing happens in Proof of Concept by the use of cryptography.
Here some people maybe counter this reasoning by saying that transactions which belong to the same public address can be tracked, so privacy is threatened somehow. Even in the case that someone uses the same address again and again, we must bear in mind that we don’t know to whom the address belongs except of course in the case in which the the owner voluntarily gives up his anonymity. It is not possible for someone to know which address belongs to which person (physical or legal). There are also cryptographic solutions for complete privacy, if the issue is crucial.
It is obvious that IBM has a motivation to support the above (financial gains). Don’t get us wrong, IBM is a high quality company, providing very good services. They support the hyperledger fabric project, which contains quality code. This is a reality, we do not bring it up as an advertisement for IBM. And of course, other big companies provide BaaS. We have nothing against BaaS. But we want to clarify things.
What are the benefits of public (permissionless) blockchains? Decentralization, immutability and transparency build trust, as there is no single point of failure and no entity or party can control the chain. Everyone is sure that the blockchain will continue to exist. Also, integrity is ensured. As a disadvantage , we can say that longer blockchain creation time and lower throughput are a fact compared to permission blockchains (private or consortium). Why is this true? Simply, more nodes need more time to exchange data and reach consensus; higher latency, more network traffic and more “steps” of consensus algorithms required because of the trust-less nature of this type of architecture.
Keeping the above in mind, let us conclude about the usability of blockchain in business world and applications. The motivation for an application to use the blockchain is to become decentralized, that is, to build trust between its users. Without that, there is no need of a blockchain for them; a server or distributed system can do the job much better (lower costs, much higher speed, less complexity). It maybe sounds hard, but permission blockchains have no value for normal applications.
We don’t have the intention to devalue the permission chains. I will refer to exceptional cases, where they can be useful. There are small parties, which may not fully trust each other and also don’t care to share data or gain trust for third parties. A very good example is a banking system (we have already mentioned ripple example). For these use cases, a consortium chain is ideal. Consensus is reached via BFT (no trust between nodes) but with short transaction time (block time creation), high throughput and relatively low cost. For private chains, many claim that they have no reason of existence. In our opinion there is a use case. For a very big organization, usually a government but also an international non-profit organization or a big corporation, they can use a private chain for critical parts of their data and/or as proof of concept. Because the public already trusts them, building trust is not their priority. But integrity of data may be. Very big organizations and governments have internal problems (management, corruption, transparency of their spending and assets). For example, a government may want to fight the corruption of his officers; a non-profit organization can be helped to spend his income for his goals with transparency. A big organization to digital sign crucial documents and keep the signs on blockchain. Maybe IBM refers to these use cases.
But the above cases are just that: exceptions. The rule for applications who want to use a blockchain is decentralization. Blockchain adds value to them because of this basic property. Trust derives from decentralization, and trust is the most important thing in business.