Wtf is hyperledger fabric, & why use it over ethereum ?
Disclaimer : I am a eth maxi, hence views might be biased jk
In simple words, Hyperledger Fabric is an open source enterprise-grade permissioned blockchain by the Linux Foundation. Yes, you heard it right. It is a permissioned blockchain unlike well known permission-less blockchains like Ethereum, Solana, Arbitrum etc.
Let's dive deep!
We have seen wide range of L2s on ethereum and other popular blockchains which focus on certain specific use cases which the Layer 1 lacks or does it better than the Layer 1 network. However, the main advantage that conventional blockchains like Bitcoin and Ethereum offers, i.e. anonymity and permission-less blockchain, that becomes a disadvantage when it comes to enterprise usage. There are certain specifications when a tech is to be used for enterprise purpose.
And what are those (quoting from the hyperledger fabric docs)?
Participants must be identified/identifiable
Networks need to be permissioned
High transaction throughput performance
Low latency of transaction confirmation
Privacy and confidentiality of transactions and data pertaining to business transactions
About point 3, 4 we have already achieved both in Layer 1 blockchains like Solana and almost all Layer 2 blockchains like Polygon have high throughput and low latency transaction confirmations. But let's continue with Hyperledger for now.
The key words that appear repeatedly in the Hyperledger fabric docs are :
Modular and configurable
Permissioned blockchain
Pluggable consensus
Let us go through them one by one.
1. Modular and configurable
Modularity means customization, and that's what Hyperledger Fabric offers. Features like :
pluggable consensus : basically means we can choose what consensus protocol we want to use
smart contracts can be run in container environment
ledger can support various DBMSs
p2p gossip service, etc
make Hyperledger Fabric modular. Different enterprises can have different requirements, and no one blockchain can serve all the different specification. Hence, the modular components enables the enterprises to configure their version of Fabric according to their requirements.
2. Permissioned blockchain
Blockchain was initially developed to be permissionless. But in an enterprise environment, permissionless also means that anyone can participate and view their data, which is not desirable. Apart from being permissionless, blockchain also provides a lot of other advantages as compared to traditional databases which can be very useful for corporate companies. Fabric offers just that.
Permissioned blockchain operate within a set of known, identified participants under a governance model that yields a certain degree of trust. By relying on identities of participants, a permissioned blockchain can adopt traditional consensus mechanisms like crash fault tolerance(CFT) or byzantine fault tolerance(BFT) that do not require mining.
This also means that no one can randomly introduce malicious code through smart contracts, as the participants are already known and all transactions are recorded. So if you do something like that you will loose your job!
3. Pluggable consensus
Without going into much technicalities, as Fabric offers modularity it's consensus can be tailored to the trust assumption of a particular deployment or solution. This allows to rely on traditional consensus mechanisms like CFT or BFT.
Some other key points
Smart contracts or what Fabric refers as "chaincode", can be written in standard language unlike other blockchains using domain-specific-language which hinders widespread adoption.
Fabric introduces a new method for transactions called execute-order-validate. It works as :
execute a transaction and check its correctness, thereby endorsing it,
order transactions via a (pluggable) consensus protocol, and
validate transactions against an application-specific endorsement policy before committing them to the ledger
Privacy and confidentiality is inherently addressed as Fabric is a permissioned blockchain and it's participants are known.
If you made it this far, you've probably understood why we are not using ethereum for this particular use case.
My concluding thoughts
It's very clear that a permissioned blockchain simply means it's a centralized blockchain which deviates from the sole purpose blockchain was developed i.e. decentralization. But if we try to be open minded about new tech, then probably permissioned blockchain is the way to go for enterprise environments. As a company won't be broadcasting their confidential transactions or data openly, but they can surely benefit from the other advantage that blockchain has to offer.
Plus Hyperledger Fabric is being developed under the Linux Foundation which is very well known for developing LINUX obviously. But also having a very successful history of incubating open source projects under open governance.
That's why it is being used over ethereum in "an enterprise environment".