Public Vs Private Blockchain In A Nutshell
When we try to understand the main difference between a public and private blockchain, it is important to notice that the terminology in the media gets often improperly stated.
A Public Blockchain is a permissionless blockchain. Anyone can join the blockchain network, meaning that they can read, write, or participate with a public blockchain. Public blockchains are decentralised, no one has control over the network, and they are secure in that the data can’t be changed once validated on the blockchain.
On the other hand, a Private Blockchain is a permissioned blockchain.
Permissioned networks place restrictions on who is allowed to participate in the network and in what transactions.
When people get into blockchain, there’s a natural discussion about what type of blockchain, because blockchain comes in many different types.
Normally, we hear about public versus private blockchains.
One factor that often gets left out is also the idea of an open versus closed blockchain. And it’s important to consider both parameters, so you know which possible solutions are good for your idea.
When we talk about public and private, what we’re really talking about is who is able to write data onto that blockchain or onto that ledger.
The open versus closed brings in to consideration who’s able to read that data.
And so, we can talk about solutions which are public and open, public and closed, private and open, private and closed.
When we talk about public blockchains, what most people are really talking about is a public open blockchain. It’s a blockchain where anybody can write data to the blockchain, and anybody else can come and read that data.
Public blockchain platforms like Bitcoin, Ethereum, Litecoin tend to get talked a lot right now, these are what we also refer to as permissionless blockchain platforms, meaning that they really strive to, by design, increase and protect the user’s anonymity.
There’s a perception that public blockchain platforms like Ethereum can’t be used to build permission scenarios or to control access to data.
The truth is that they can, they just don’t give you all the built-in tools that you can find on a private or permission blockchain platform. But basically, you can always use these open public platforms to build a permission solution, you just need to be aware that it’s upon you, your architects and your developers to create that permissioning model, and that all starts with some kind of identity management system.
When we think of public blockchains, we think about blockchain platforms like Ethereum and Bitcoin, which by default, by the very nature, they’re designed to protect anonymity.
If we don’t know who a user is, we really have no way of creating permissions, role-based access and controlling what data they can read or write.
In a lot of situations, this is desirable, this is why we see cryptocurrencies based on public blockchain platforms, because having that anonymity is important, it is one of the major benefits of using cryptocurrencies.
Well because, if a user has a currency, something of value, they should be able to exchange it and spend it, and do what they want with it, just like anybody else. We don’t want to treat any class of users differently than any others in those scenarios. So, for that, we have public blockchain, and that’s a very different creature from the private permission blockchain.
Private blockchains are more specifically known as permissioned blockchains.
When we talk about private blockchain or when we hear people talking about private blockchain solutions, they tend to be talking about things on the private and closed end of the spectrum. We want to control who can write data to this blockchain, and we want to control who can read data from this blockchain. And in order to do that, the first step is identity. We need to know who is part of the blockchain network. If we don’t know who a user is, it becomes difficult, if not impossible, to define rules about what data they can commit to the ledger and what data they can consume from the ledger.
When we talk about private blockchain, think about a permissioned blockchain, which from the beginning has an idea of who you are.
And this is very different from a public platform like Ethereum, in which the platform tries to protect and maximise anonymity.
Which as said before, by design, don’t know who a user is.
Most of the time, private blockchains tend to come with identity management tools or a modular architecture, where you can plug in your own identity management solution. This can be anything from a Membership Service Provider to an OAuth solution using Google, Facebook, LinkedIn, etc.
This is the idea behind private blockchains.
All starts with understanding who a user is, because once we understand that,
we can determine what role they’re in, and we can use that role to determine what information should they and should they not have access to.
In Public Blockchain, we need to change a bit the incentive for good behaviour, because we don’t know who a user is.
We rely on economics and game theory incentives to ensure that everybody in the system behaves honestly and according to the rules.
We set up situations through group consensus, through which honest participants are economically rewarded, where dishonest ones only incur work or cost, with no possibility of ever recouping that cost.
In a Private Permissioned Blockchain, we rely on the fact that we know who a user is.
So, in a corporate case scenario, blockchain for the business, blockchain for supply value chains, because we know who an individual is, what organisation they’re associated with and what their role is, we also assume that they’re going to behave fairly, because if not, we know exactly who’s misbehaving and they know that they’re gonna suffer the consequences for that.
So, public and private blockchains have two very different offerings.
A lot of people get the impression that they compete with one another, but they really don’t. They just serve to provide different types of solutions.
Lets discuss what private blockchains are and why they are utilised by enterprises:
Private Blockchains are also referred to as Permissioned or Enterprise Blockchains. Enterprises need to ensure some level of security, privacy, compliance, performance, and many of the properties that a private blockchain can provide.
Can be open sourced, consortium, or privately developed.
There are many options for a private blockchain, and the most common ones are Hyperledger, R3 Corda and Quorum.
Transactions are processed by selected nodes in the blockchain.
From a performance perspective, this is where having only a few nodes process transactions vs 12,000 nodes in Ethereum’s case can really create a performance gain around latency and transaction speed.
Transactions are not publicly viewable (transparent) in the blockchain, and only selected nodes can access the ledger.
Examples include: R3 Corda, which can transact between nodes, and the rest of the blockchain does not participate.
Some of the benefits of public blockchains are:
- Open Read and Write
Anyone can participate by submitting transactions to the blockchain, such as Ethereum or Bitcoin; transactions can be viewed on the blockchain explorer.
- Ledger Is Distributed
The database is not centralised like in a client-server approach, and all nodes in the blockchain participate in the transaction validation.
When something is written to the blockchain, it can not be changed.
- Secure Due to Mining (51% rule)
For example, with Bitcoin, obtaining a majority of network power could potentially enable massive double spending, and the ability to prevent transaction confirmations, among other potentially malicious acts.
Some of the benefits of private blockchains are:
- Enterprise Permissioned
The enterprise controls the resources and access to the blockchain, hence private and/or permissioned.
- Faster Transactions
When you distribute the nodes locally, but also have much less nodes to participate in the ledger, the performance is faster.
- Better Scalability
Being able to add nodes and services on demand can provide a great advantage to the enterprise.
- Compliance Support
As an enterprise, you likely would have compliance requirements to adhere to, and having control of your infrastructure would enable this requirement more seamlessly.
- Consensus More Efficient (less nodes)
Enterprise or private blockchains have less nodes and usually have a different consensus algorithm, such as BFT vs POW.
Now that we have talked about public and private blockchains, we can talk about some of the differences and what each different type of platform aims to provide.
So, Public Blockchains are really good for scenarios where protecting the anonymity of users is important or adds value to the solution, and they’re really great platforms for solutions where all users should be treated equally.
And we can see this, because most public blockchains right now are used to support cryptocurrencies, and this is a real great use case.
With a cryptocurrency like Bitcoin, Litecoin, Ethereum, etc., we don’t want to have any permissioning or role-based access.
Anyone should be able to own some Bitcoin.
Anyone should be able to trade it with anyone else.
And so, that leads to an open permissionless model with full transparency.
This is very different in the corporate world, where we see private blockchains being adopted at scale, because the concerns are the opposite.
In a corporate scenario, in a business scenario, anonymity is a bad thing.
I want to know exactly who all the participants are, and I need to know who they are, because I don’t want full transparency.
I don’t want to share all my business data with all the participants in my business network or the public at large scale.
I want to control who sees what type of information under what circumstances, and I also want to control who is able to write that information onto the blockchain.
So, I might use a private blockchain solution to manage supplier-vendor relationships, where only myself and my suppliers can see the price that I’m paying for a certain item. Only a particular supplier gets to see the details of the contract that I have with them, and not the details of a contract I have with any other suppliers.
And I may wish to share some of this high-level macro data with consumers, so that they can see the origins of the products they’re buying, but of course I’d want to hide the financials aspect behind all that.
So, when we look at how these two solution types differ, we see the public blockchains tend to focus more on B2C or Business to Consumer scenarios,
whereas private blockchain like Hyperledger, really are well structured to B2B or Business to Business scenarios, supply chain, value chain relationships
or creating any kind of shared infrastructure between enterprises.
As we said before, it is important to remember that there’s a big misconception that public and private blockchains are competitors.
But, they’re not and many real-world use cases use components of both.
It’s important to understand the difference between them and it really all starts with identity management.
Basically, when you’re thinking in your head about public vs private blockchain think that it all begins with identity management, and in a private blockchain you know who all the participants are right from the beginning.
In the public blockchain, again, you don’t know who those participants are, and that’s not to say that you can’t build a permission solution on a public platform, but yourself, your architects, and your developers are going to have to develop the logic and the mechanisms behind identity management.
And that’s Public and Private Blockchain in a Nutshell. They are two very different things.
They serve different purposes and you will realise that a lot of real-world use cases you’re going to find make use of both types of blockchain integrated seamlessly.