blockchainopinionUncategorized

The Dilemma of Permissioned Blockchain

A couple of weeks ago, came the news of the closure of TradeLens, the biggest blockchain implementation in production for the supply chain and shipping industr...

By Ahmed Abdelhamid
Featured image

A couple of weeks ago, came the news of the closure of TradeLens, the biggest blockchain implementation in production for the supply chain and shipping industry.

After reading the announcement, looks like the reasons are more around that the different parties in this network didn't agree on one approach and strategy for the network. Also, TradeLens wasn’t able to catch the needed momentum to have all major shipping companies and related government organisations onboard to make it “the” shipping network.

This reminded me of when I started working in blockchain when I was in Oracle in 2018. Indeed, focus of these major vendors and enterprise software companies is on premissioned or private blockchain, which is a totally different story than the public blockchain ones like Bitcoin and Ethereum. I was at that time working on promoting its use cases, especially for the government and public sector.

At that time, IBM was leading in the area of permission blockchain and was sponsoring and funding a lot of the work on its open source implementation Hyperledger. Microsoft was already having both Hyperledger and Ethereum blockchain services on its Azure platform. Oracle catched up with its Hyperledger- based service on Oracle Cloud. Few months later, Amazon introduced its blockchain service on AWS, which we will talk about later.

Many PoCs were made by many banks and organisations. May be SWIFT was the most famous one. However, none of these initiatives was promoted from the PoC stage to be a real running production system.

A year later, I moved to Amsterdam and was curious to know the updates in this field, so I attended a small conference held in Amsterdam city center about blockchain. I was surprised to know that still many of the pitched projects were still in a PoC or pilot phase and didn't continue to be in production.

When I first started working in permissioned blockchain, I always found this missing link in the logic justifying and promoting for using blockchain between enterprises. Let me explain this more.

Trust-based Systems

Let's first recap what are the benefits of using blockchain, in its public form as it was invented. I will be taking the the example of you, the creditor, making a transaction of transferring money to someone that you don't know (or trust) in another country, may be a supplier to your company or whatever.

The entire system relies on the following:

  • The destination or debtor bank, which holds the debtor bank account, trusts and knows the person you will send money to because they already made the KYC homework about them.
  • The destination bank trusts the sender bank (or the creditor bank, your bank).
  • The sender bank trusts and knows you because the bank already did his KYC and compliance homework about you.

So the destination bank doesn't trust you directly but they trust the middle man which is your bank or the sender bank. At the end, you can't send money to this person in another country without at least two middle entities (the two banks) that trust each other.

As we can notice, this system assumes the following:

  1. End users: End users of this network don't trust each other.
  2. Mediators: The mediators in this network trust each other.
  3. Membership control: End users can only join this network if the mediators approve (your bank approves opening an account for you).
  4. Transactions control: Any transaction between the end users has to pass through those trusted mediators, and has to be approved by them.
  5. Disputes: If there is any problem or dispute between the end users, they go to these trusted mediators for support or arbitrage.

Public Blockchain (No Trust) Systems

Public blockchain was invented to remove those mediators. So people, who don't trust each other, can have nodes on these public networks. And they can make transactions, only if they were able to prove it (Prove of Work), which requires as well some consensus from the other nodes. Only then the new transaction is added to this global replicated ledger as an immutable new row. This implementation assumed the following:

  1. End users: End users of this network don't trust each other. (same as in the banking example).
  2. Mediators: There is no mediators at all.
  3. Membership control: Any one can join this network as they like, by just creating a new blockchain node, without even disclosing their real identity.
  4. Transactions control: Transaction is done on this one common replicated immutable ledger and replicated to all the nodes worldwide. It doesn't have to be approved by any central or trusted entities. Actually there is no even trusted entities to apporve or disapprove.
  5. Disputes: If there is any problem or dispute, you are simply screwed. No big guy to solve your problem. Example; losing the keys of your blockchain node.

So the difference is clear between regular trust-based systems in our life and the public blockchain with the pros and cons for each. I will not go through crypto since it is not the aim of this post.

Permissioned Blockchain Systems

The idea of permissioned blockchain and all the use cases around it was more around creating an automated business process, but not within the same organisation, between the different departments, that trust each other, as in the regular case of BPM, but across different organisations that don't trust each other. Examples are like customs, identity management..etc.

It assumes the following:

  1. End users: End users of this network don't trust each other. However, the central governance trust all the members.
  2. Mediators: There is a mediator still, but as a central governance.
  3. Membership control: End users (organisations) can only join this network if they got the approval of the mediator, or central governance.
  4. Transactions control: Any transaction has to be approved by some consensus algorithm. Without getting into details, this consensus algorithm assumes the other members are trusted.
  5. Disputes: If there is any problem, there is this governing entity to go to.

So as we can see here the conflict, points number 3 and 4 assumes trust in the network, at least that the central governance entity trusts the members, while point number 1 assumes no trust. 

Actually, the principal value of blockchain is to remove mediators between untrusted parties! 

Here is the conflict and the dilemma.

If you trust the members of the network, then there is no need for all this complexity, that is only needed between untrusted parties as in the case of public blockchain.

if you don't trust the members, then this is not possible, since you wouldn't let them in the network, and the consensus algorithm in this case won't work since it assumes trust.

The "permissioned" nature simply contradicts with the founding requirement that justifies all the complexity in blockchain, to make the network totally unpermissioned, or public!

This showed up in many use cases, for example, any business process for the same governments between different departments or ministries. If the government controls all these entities and who and how they can join the network, then a simple ESB might be enough :-D

So this reduces the value of permissioned blockchain to only the technical value. To only use it as another integration tool, as a distributed immutable database between different known writers and readers on this database. And actually this is close to what Amazon introduced in its blockchain service on AWS.

Here is an interesting video from 11:FS on TradeLens and more or less discusses the same point.

I have to admit I am a couple of years late in writing this post. But I preferred to wait and see since there were still some well-known projects in production. But now, after TradeLens, I can join the masses in doubting the concept.

Late is better than never anyway.