Ok, I need a blockchain, but which one?
In previous posts we discussed why blockchain is not a silver bullet and those cases in which its usage is actually appropriate. Let’s assume the project you are reviewing needs blockchain and now it is time to select which particular blockchain to utilize.
People are arguing about which variety of blockchain is suitable for different sorts of projects, i.e., permissioned or permissionless, public or private.
The diversity of blockchain projects and consensus mechanisms creates complexity because every vendor is stating that their blockchain platform is the best. There are almost no publications that analyze the pros and cons of each mechanism.
It seems that all the buzz about “permissioned vs permissionless” is distracting us from the deep analysis of business problems and solutions which should be the true focus. Community members have to take sides. It feels wrong because we are talking about technology — there is no such thing as “good” or “bad”, just use cases. That’s why I have been thinking about finding criteria to create some kind of theory of blockchains :)
Let’s review criteria that in my opinion are not relevant but rather can be considered as features of particular blockchain.
Permissioned and permissionless — as soon as you try to think about also “public and private” it gets complicated. Public means that anybody can read and write, private — only designated parties. You can find permissioned but public blockchain… confusing, right? A good example of that is any proof of stake blockchain — to participate in consensus you need to have a stake upfront, i.e. you cannot join the system without buying a stake from another member.
Consensus algorithm itself is not the driver of blockchain selection, but is a result. Different consensuses are suitable for different business cases.
I’ve heard many name immutability level as a main criterion. I would argue with that because immutability really depends on the number of people who need to be convinced in making a change (decentralization of mining power or stakes). Any decentralized system relies much more on social consensus than on technological one. Sometimes public, decentralized, anonymous systems can be changed by the will of a single person. Industry has recently seen examples of this :)
Governance model itself cannot be considered an appropriate criteria for distinguishing among various types of blockchains. Governance is something that lies on top of consensus and uses it to change rules.
Anonymity of the user is not a criterion but rather a feature. You can have anonymous users even if validators are known and regulated. Existing banking system shows that it is definitely possible :)
Trust in a validator is something that connects a particular user and a validator and cannot be considered global.
I believe that amount of resources that is needed to recreate blockchain is a measure of immutability. Only social consensus matters.
I came to a conclusion that only 2 criteria matters when it comes to definition of an environment and a blockchain:
- level of anonymity of validators (i.e. do we know their identity?)
- level of trust in validators (in the sense of “how inevitable is punishment for misbehavior”)
Now let’s analyze the features of each type of a blockchain — permissioned vs permissionless, public vs private, consensus rules, immutability, anonymity of users and scalability.
Top left quadrant is for permissionless and public blockchains. Only proof of work, as something external to the system, can be applied here. One doesn’t need to be previously vetted in order to participate in the consensus process — just a computer to mine. Trust in a particular miner is very low, there is no punishment for attacking the system (except for the fact that mining equipment will become worthless if attack is successful). Such a structure is suitable for fully anonymous systems, totally out of government control. Examples — Bitcoin, Monero.
Top right quadrant is for permissioned and public blockchains. It is permissioned because one has to buy coins in order to mine. Coin is something that belongs to the system, unlike mining equipment in Bitcoin. Trust level in a validator is high because they will lose their security deposit if they attack the network with double spending attempt. Suitable for community governance, execution of contracts, private money systems. Bitshares, Ethereum (in the future) are good examples.
Bottom-left quadrant is for permissionless and public blockchains. Permissionless means a different thing here than in Bitcoin — “under certain social agreement anybody who qualifies can become a validator”. A good example could be a country where each citizen is eligible to set up a node and participate in consensus. Trust level in a validator is low, even though identities are known — validators have almost nothing to lose. Practice shows that FBA (Federated Byzantine Agreement) consensus is the best for this case (first naïvely implemented in Ripple, but then developed and proven in Stellar). Proof of stake is not applicable since every validator has equal voting power. Suitable for national or consortium blockchains.
Bottom right quadrant is for permissioned and private blockchains. Permissioned means that validator has to have some kind of a license or be a part of a limited group. This is the only type of a system where blockchain itself is not public. Edge case is internal banking system where blockchain is validated by a single entity. Fast consensus algorithms are applicable, based on high trust to a validator — PBFT, multisignature. High trust stems from the fact that misbehavior results in lost license or membership. Immutability really depends on agreement between validators. Applicable for banking, fast payment infrastructure, corporate usage etc.
Playing with a crystal ball
Top left quadrant will tend to drift to full anonymity (Monero, Zerocoin etc) and decentralization of mining (non-outsourceable puzzles that prevent creation of mining pools). Bitcoin as a network is a subject to threat of devolving into a simple multi-sig between huge mining pools (since they often control mining equipment too).
Top right square will improve reputation models via using security deposits and an election mechanism (Graphene fast proof of stake is a good example). Such systems will tend to evolve into slightly decentralized (dozens of very powerful nodes) but relatively fast and federated network.
Quadrant at the bottom-left will be used to build national or multi-national blockchains. Good analysis of scalability challenges for different consensus algorithms can be found here.
Bottom right quadrant will evolve into corporate systems and the word “blockchain” won’t be a selling point at all. What it will mean is traceability, flexibility, efficient governance and crypto-API for digital assets.
It is a very good question which of these types really require native coin but not just a payment mechanism. Will try to elaborate in the next post.
One more thing…
There is one class of systems that is not covered by this analysis (even though it is considered blockchain related), so-called multi-blockchain systems. In a broad sense this is a set of protocols that allows nodes to select an appropriate consensus mechanism. It is a very interesting topic and I will try to address it in one of the future posts.