Private blockchains vs. public blockchains
The full article was originally published by Stefano Della Valle on Medium. Read the full article here.
First of all, I would like to point out that the word “blockchain” refers to the data structure that can store the information that in a monetary exchange system are called “ transactions”. This is why the blockchain has become synonymous with ledger.
Second, it must be explained that the reason a blockchain is a preferred choice over a database is because linking transactions in blocks and linking blocks between them creates a computational difficulty to an attempt to modify the data.
In a traditional database, the impediment to modify a data is dependent on the performance of the host machine’s operating system which is, of course, prone to attacks in many ways.
As demanding as it may be, modifying a blockchain is not impossible.
For this reason, a network of nodes has been created to replicate the blockchain and to produce a “distributed consensus” on its validity.
Distributed consensus is a way to combine the opinion of multiple independent subjects and guarantee certainty.
It could be defined as a democratic process of signing the statement “the data contained in our copies of the blockchain is authentic”.
As for a law that in the democracy is valid for all, if the majority agrees on the validity of the blockchain then the blockchain is valid for all.
Creation of the distributed network
The advantage of having many copies of the blockchain is obvious, however, supporting a replica of the blockchain has a cost. If we want many nodes to be activated, we need to provide them with an incentive that exceeds the costs.
Since it is not possible to remunerate all the nodes, a race is carried out for each block. The fastest node able to validate a block is assigned with a remuneration. In addition, it gets the transactions fees.
This is why a public blockchain can have a large number of nodes.
The larger the number of nodes, the greater the distributed consensus on the replicated blockchain is and the more difficult it is to create a valid distributed blockchain that was tampered with.
What is a private blockchain?
The nodes of a public network are:
– uncontrolled: there is no node management center
– not forced to operate: they can interrupt their calculation at any time.
– unauthorized: they participate in the network without asking someone for permission.
Equivalently, the nodes of a private network are or can be:
– controlled: they can belong to a company that manages them;
– authorized: only an authorized node can enter the network and manage transactions.
So we can say that a privately distributed blockchain is equal to a publicly distributed blockchain (as a matter of fact you can use the same software) and the only difference is in the organization of the nodes.
Pros and cons of blockchains
Issues on consensus
It is clear that without a large number of nodes a public blockchain is easily attackable: a few nodes can become the majority and confirm invalid blocks.
Therefore, small public networks cannot produce a strong consensus on their blockchain.
Since a private network is not open, an external attack is not possible. However, it is possible for an internal attack to occur, organized by the node managers or coordinated by the company that controls them.
Secondly, a private network is comparable to a small public network. In both cases, the consensus on the ledger is very poor.
One could say that consensus on a private network is not necessary because you trust those who use it. If distributed consensus is not required, why use a complex technology instead of a simple database, delegating to a database manager the task of managing its content?
Effect on the token value
If the ledger is attackable then its content is not safe. Therefore, the value represented in the ledger (the sum of the balance of every address) is not safe.
This is the reason why the value of the token managed on a blockchain with a small public network cannot be high. The risk of loss is too high for big money investments to make sense.
Of course, a private blockchain can be used to log transactions of any token.
The problem is: who will have enough trust to invest in a token managed by a company on a private blockchain system?
The answer is twofold:
– if the company is unknown, no one will ever trust it;
– if the company is well known and appreciated, certainly many will invest in its tokens as many would invest in its shares.
It remains to be seen why this company should use a private blockchain instead of a widely used and reliable payment system or, in the case, a simple database.
If you need to manage data and transactions in absolute privacy you must choose between two options:
– use a public blockchain encrypting transactions so as to make them understandable only to those who have been authorized;
– to use a private blockchain.
However, it should be noted that it is not necessary to be able to decipher a transaction in order to verify that it has not been altered.
Therefore, encrypted transactions on public blockchain can have a high consensus. While transactions on a private blockchain, encrypted or not, will never have it.
Public blockchains can’t be fast. At least not those that are based on Proof of Work.
The faster the block generation and bigger the blocks are, the lower becomes the number of nodes that can compete on a block. The risk of a coordinated attack increases proportionally.
So if you want performance is good to think of a private blockchain. Although, if you need a certain performance, why use a blockchain?
Service Level Agreement
If you are planning a business model based on a public blockchain, you need to know that no one will ever give you a service level agreement. Costs, performance and reliability are not predefined and cannot be controlled. Reliability depends on the behavior of the nodes operating according to economic interest. Greater economic advantage results in increased costs and/or reduced performance.
So, if you need a service level agreement you probably have to use a private blockchain.
But once again I wonder why you would use a private blockchain if you need to control costs and performance. A database is definitely more performing and easier to manage.
One of the strengths of a public blockchain is the system of governance. If the number of nodes is high enough, the blockchain and the token it manages acquire value. This rewards the contribution of a large distributed organisation working to improve the platform.
The same obviously cannot happen in a private blockchain. On the contrary, in a consortium of companies sharing a private blockchain, it is easy to find one who actually coordinates the whole system. Over time, consortium participants may change or no longer be interested in that tool.
The risks inthis scenario arevery high: the persistence of the blockchain can be compromised by the disappearance of the interest of some partners.
PoS vs. PoW
I have analyzed the advantages and disadvantages of public vs. private blockchains by referring to blockchains with a Proof of Work based mining process.
Someone might dispute that with the Proof of Stake system things would be very different, to the full benefit of the public blockchain. I think it doesn’t change much at all.
A PoS system is based on the risk of losing capital. Instead of investing in powerful mining systems, in a PoS system, a validator node immobilizes a capital that is lost if it does not behave properly.
The PoS in a private blockchain does not make sense.
On a public blockchain it has only one significant effect: the performance can be high because the validation of the block does not require heavy computations. The rest (privacy, service level agreement, etc.) remains unchanged.
In addition, PoS has its own flaws: the number of validators is theoretically unlimited and with various methods you can avoid centralization on a few validators. However, the number of validators can be very small compared to the total number of users. In fact, in a still nascent market, the value of the token can fluctuate a lot. The reward for having immobilized the capital does not encourage those owners who have the ability to speculate on the market earning much more in the presence of volatility.
This scenario is currently very present and I think it will be for a long time, creating dangerous scenarios of centralization.
IOTA, a special case.
I conclude this roundup of pros and cons on the blockchain with positive news: there is an alternative.
IOTA doesn’t use the blockchain, but that’s an unimportant detail.
The interesting thing is that there is no mining and therefore there are no fees, rewards and validator nodes. Network management is cooperative.
The practical effect is that owning a IOTA node is simple and cheap. It is quite similar to owning and managing a database. With IOTA it is then possible to obtain a perfect compromise between a public network with data replication on thousands of other nodes and private network with costs, performance and reliability guaranteed by our node (or by a group of our nodes).
This is why we mostly base our projects on IOTA instead of using private or public blockchains.