This is the third part of the blog series “Blockchains and Azure”. The second part was about how blockchains work in general, and it can be found here.
So, blockchains exist, we have established that much. But there is no such thing as “one blockchain to rule them all”. Blockchains come in various tastes and flavors.
I prefer chocolate flavor.
But that’s only for ice creams. In blockchains, I prefer public blockchains.
Fully public ice creams… Uh… I mean blockchains, are blockchains, where:
- The blockchain is fully open (permissionless), trustless and transparent
- Anyone can join and run a node. Anyone can read and write any data
- All nodes are untrusted
- The blockchain is fully decentralized. Nobody is in control of the blockchain and there is no single point of failure
Since we have public blockchains, we naturally also have private blockchains. As opposed to public blockchains, private blockchains have the following characteristics:
- Invite-only blockchain: only selected participants can join
- Different participants may have different rights: read and write access may be restricted
- All nodes are trusted
- Run typically by one entity, fully centralized. Close to a single point of failure.
But not everything is that black and white; there are also lots of other types of blockchains. So let’s have a look at those next.
Spectrum of blockchains
You can imagine a rainbow of blockchains, if you wish
I like to think of different blockchain types as various positions (wavelengths) in a spectrum. The spectrum has rather distinct ends, with lots of variations in the middle. Also, only the ends are quite well defined, and everything in-between is up to debate.
The spectrum starts with private blockchains and ends with public blockchains. Between these two, there are at least consortium blockchains and hybrid blockchains. These are generally considered as the main types, although probably someone can think of other types as well.
Spectrum of blockchain types
Since consortium and hybrid blockchains are between private and public blockchains, they share some characteristics from both of them. Consortium blockchains are close to private blockchains, but they are typically controlled by a consortium instead of a single entity. Hybrid blockchains are located more towards public blockchains: some parts of the blockchain are private and some public. For example, any participant may be able to read data, but only certain participants are able to write data.
Why do we have different blockchain types? Why bother?
There are a few reasons why one blockchain type is not suitable for everyone. The main ones are:
- Secret data. Since public blockchains are transparent for everyone, no secret data may be saved there. For example patient records or bank transactions.
- The approval process for participants. This is related to the previous point: in some cases, not everyone should be able to join a blockchain. Participants may need to be processed with real-world forms and permits.
- Speed. In general, the more a blockchain is located towards the public blockchain type, the slower it is. Fully public blockchains (Ethereum, Bitcoin, …) have a transaction throughput of around 10 transactions per second. For private blockchains, this number is probably millions of times greater.
- Transaction costs. At the time of writing, the cheapest single transaction in the public Ethereum blockchain costs around 4€. In private blockchains, this figure is basically zero.
Public blockchains drain your money
At first glance, one might start wondering why anyone needs public blockchains since they are so slow and out of control. But being out of control is actually fundamental to the reason why they exist: it gives power to the users without any central authority. Nobody can censor your messages and nobody can dictate who can join the network. Some users take this to various extremes and claim that governments will cease to exist due to public blockchains, but in my mind, that’s just nonsense.
At the other end of the spectrum, private and/or consortium blockchains are useful for various bigger organizations. These organizations either need privacy or speed, or want to limit the amount of participants. Such organizations are, for example, financial institutions (banks) and supply chains management systems.
A serious looking picture I found with a Google search for “crypto anarchy”
Public blockchains often utilize the Proof of Work consensus protocol (“mining”). Since this protocol requires a lot of computational power, it also requires a lot of electricity. Calculating the exact amount of required electricity per blockchain is rather tricky, but average estimates for the Bitcoin blockchain are around 100 TWh (per year) – similar to, for example, the whole of Argentina.
It is obviously easy to shout and complain about energy consumption, and this makes some great headlines (“Bitcoin consumes more electricity than Argentina“). Yes, this is not environmentally friendly. However, I would argue that most people fail to see what we get with energy consumption: a secure, decentralized network. Some Bitcoin fanatics claim it will replace banks, but even if this isn’t true, it can’t be denied that bitcoin is a competitor to some of the banking functionalities. For some reason, nobody is complaining about how much electricity the current banking system requires.
There is, luckily, the light at the end of the tunnel. The second biggest blockchain, Ethereum, will transition out of the Proof of Work protocol into a more environment-friendly consensus algorithm called Proof of Stake, making its electricity requirements negligible. Hopefully, the Bitcoin blockchain will do something similar at some point.
The more a blockchain leans towards the private/centralized part of the spectrum, the less electricity it uses. A private blockchain is basically just an elaborate distributed database.
Blockchains and Zure?
Currently, Zure has no blockchain projects. There is, however, interest within the company to consider blockchain projects. One of the reasons I started writing this blog series is to do research and figure out what kind of blockchain projects Zure might do somewhere in the future.
Since Zure’s focus is on Azure, we should utilize the products offered there. Azure is not very friendly to public blockchain nodes, and they offer only private/consortium blockchains as service or product. Furthermore, currently Zure has quite limited know-how for the public blockchain environments. Private blockchains are closer to the projects we currently implement, so I believe that’s where we should be headed.
But how to start?
In the next post, I will look into various blockchain use cases in Finland and abroad. I will probably focus on public blockchains, but will also introduce some existing projects in the private blockchain space. Spoiler: public blockchains offer a dazzling selection of various weird things.