“Hyperledger Fabric is a fake blockchain!”

Since the release of Libra, the long-lost blockchain community has become active again, and some companies exploring the blockchain business are also sloppy. I believe you have also noticed that these large companies often turn a blind eye to the existing blockchains such as Bitcoin and Ethereum. This is because they know the importance of data, so they don't use Bitcoin, Ethereum, which open-source public blockchains, but have a soft spot for private blockchains that can control participants.

When it comes to private blockchains, you have to mention IBM. IBM is a leader in the private blockchain industry, and its blockchain product, Hyperledger Fabric, is the preferred choice for many blockchain developers, and IBM is also working with big companies like Wal-Mart and Aetna Insurance Financial Group. The exploration of blockchain landing scenes to seize the opportunities in the enterprise blockchain and expand the advantages. According to some statistics on Twitter, the number of IBM blockchain patents has increased by 300% in the past year alone.

As one of the many contributors to the Hyperledger Foundation, an open source non-profit organization, including the recently joined Microsoft and customer relationship management platform Salesforce, IBM has spent a lot of time promoting the development of Hyperledger Fabric, which means that Hyperledger Fabric will have The same characteristics of Bitcoin and Ethereum, which are common blockchains, will also remove the "not suitable for enterprise scenarios" feature.

Although IBM refers to Hyperledger Fabric as a blockchain and markets it in the name of a blockchain, Hyperledger Fabric sacrifices a lot in real terms, whether compared to licensed blockchains or public blockchains. The characteristics of the blockchain should be.

Although the architecture of the Hyperledger Fabric is far more complex than any blockchain platform, it is still not satisfactory in terms of security features such as tamper resistance and attack prevention. You may also think that the "private" blockchain will at least guarantee scalability and performance, but these two features of the Hyperledger Fabric will also disappoint you. In short, experiments based on Hyperledger Fabric will face complex and insecure blockchains, and the scalability of blockchains may not meet the demands of rapid business growth.

In this regard , the former Morgan Chase blockchain team leader Stuart Popejoy is even more sharp, claiming that IBM made a fake blockchain !

Why does Stuart Popejoy think that IBM has made a fake blockchain ? This article tells you.

[Declaration: The article only represents a personal point of view, and its content and opinions do not represent the position of the blockchain base camp]

Hyperledger Fabric performance indicators

Misleading

When I was working at JPMorgan Chase in 2016, I led a team specializing in cutting-edge technology to study the potential applications of the blockchain in the banking industry and strategic investments in the blockchain. As part of our work, we delved into earlier versions of Hyperledger, Axoni, Symbiont, Ripple, and Ethereum. It was clear at the time that several blockchain projects on the market were not technically suitable for real business scenarios. Unfortunately, Hyperledger Fabric has not solved this core problem to this day. The details we considered at the time included:

  • How does the intelligent contract language of the blockchain safely and simply express complex business logic?
  • How to ensure the validity of public key signature?
  • Can the blockchain be added to other participants (nodes) without significantly reducing performance, thus achieving scalability?
  • Those with long-term vision will also consider whether the selected blockchain can easily interoperate with other public blockchains or private blockchains in the future.

Starting from these details, I think that IBM's Hyperledger Fabric fundamentally lacks the necessary elements of the blockchain, and its performance indicators are full of misleading. The feasibility of long-term business can not help but make a big question mark.

We have never regarded the digital games of TPS and node counts as a blockchain adoption standard, but after experiencing these digital games, we think it is necessary to tell the reader what is the blockchain and what is not the zone. Blockchain.

What is a blockchain? What is not a blockchain?

To better understand the positioning of the IBM blockchain, we need to go back to the definition of the blockchain. The core of the blockchain is a decentralized, non-tamperable ledger with events or transactions stored in the book, and which data is added to the ledger is entirely determined by the consensus mechanism. In a public blockchain like Bitcoin and Ethereum, this consensus is achieved through proof of work or “mining”. In the licensed blockchain, participants provide cryptographic signatures to vote on the content of the consensus to reach a consensus. Either way, there is no central agency to intervene.

IBM's definition of blockchain continues the elements of decentralized and non-tamperable blockchains, but it does not negate the decentralized consensus mechanism. To some extent, Hyperledger Fabric does not A true consensus mechanism is needed. Instead, Hyperledger Fabric recommends a “subscription service” called Kafka.

The problem is, if there is no enforcement based on cryptographic algorithms, no high degree of democratization, and no cryptographic mechanisms to ensure the safety of participants voting, then you can't prove whether someone has falsified the blockchain book. Consensus with a fault-tolerant mechanism is a hallmark feature of blockchains. Without it, IBM's "blockchain" is nothing more than a time-stamped list of projects.

The Hyperledger Fabric architecture exposes a number of vulnerabilities that could be exploited by malicious participants. For example, it introduces public key cryptography and certifier signatures "inside the network," but these major security guarantees are only generated after a transaction with an external signature is submitted.

This fundamentally abolishes bitcoin and other blockchain time-tested security models where the source of any transaction is only guaranteed by the external user's public key signature and the system cannot interfere in any way.

In stark contrast, the only important signature in the Hyperledger Fabric is the verifier's signature, and the user's signature disappears into any database replicated over the blockchain network.

Hyperledger Fabric 1.0 transaction life cycle

Image source: developer.ibm.com

With the help of the API provided by Hyperledger Fabric, adding a transaction to the blockchain goes through the following steps:

After a transaction pre-proposal is submitted, the endorsing peer executes its logic through the smart contract language chaincode, and it queries the state database and generates the read-write set (REset) to be used, after which it will also The generated read-write set returns a response to the transaction pre-proposal. Next, the system will submit the transaction pre-proposal with the read-write set. The ordering service will add a batch of transactions to the block. All nodes will receive the block information sent by the subscription service, but they need to verify the transaction information in the block to ensure the security of the data in the blockchain. The steps are as follows:

1. Verify the execution strategy of the endorsement node;

2. Verify the version of the read-write set in the current state database;

3. Submit block information to the blockchain;

4. Submit the verified transaction information to the status database.

Researchers at Hyperledger Fabric have spared no effort to play these digital games, making a fuss about so-called performance metrics, because the architecture of the Hyperledger Fabric is simply not scalable while maintaining optimal performance. Hyperledger Fabric uses a multi-chain environment (called "channel channels") to ensure privacy between participants. This privacy is an important feature of the private "enterprise" blockchain, but it will inevitably lead to some trade-offs and will greatly increase the complexity of the blockchain.

However, multi-chain solutions are not a good choice in terms of the scalability of the enterprise blockchain, because doing so will make the deployment process too complex, unevenly distributed nodes, unreliable smart contracts, and Increase potential points of failure.

As a result, the Hyperledger Fabric blockchain's performance metrics after deployment are not satisfactory, as node performance increases rapidly, and its claimed performance is single-channel performance: if you want to span multiple The channel interacts with the entire blockchain network, and these so-called performance metrics don't make any sense .

Even so, for each independent channel, the transaction volume per block of the blockchain is difficult to break the 800 mark, but even the blockchain with 16 channel configurations can hardly reach 1500 TPS, if the blockchain has been Maintaining a throughput capping run can take 10 to 20 seconds to delay.

Recent research aimed at speeding up the operation of the Hyperledger Fabric has allowed it to process an astonishing 20,000 transactions per second, but behind the performance boost is the researchers' massive “magic change” to the Hyperledger Fabric architecture, which makes Hyperledger Fabric The blockchain that has become an approximation has become a quadruple: Endorsers no longer act as verifiers and Kafka is considered the only viable subscription service . In the end, these are still just single-channel performance, which means it goes against the idea that the blockchain is a shared trusted source.

Note: In theory, Hyperledger Fabric can use the true blockchain consensus, but the blockchain will become very slow, and slow in the production environment, so no one will be in the production environment. use it.

Why is smart contract important?

When we evaluate the blockchain, the last consideration is how the blockchain is going to extend the private database, and how the blockchain tools (for example, the smart contract language) do not fall out of the chain when the business scale is growing rapidly. It should be noted that smart contracts are more than just a piece of code, it is the embodiment of the company's business logic. Smart contracts can perform property registration on the blockchain, verification of digital identity, and even can be used to perform custody transactions between the buyer and seller of the used car. Most importantly, smart contracts are reliable, and they always act according to the rules you give them.

When building business logic on a blockchain, you need to represent what you want to do (buy, sell, package, etc.) with smart contracts. If the smart contract language is simple and convenient to use, you can quickly build the business logic you want to cross your boss or shareholder. More importantly, you will definitely want smart contracts to be very powerful and can bring revenue or some positive impact to your business.

Hyperledger Fabric's smart contract (called chain code "Chaincode") can be written in a variety of programming languages, including the common Javascript language and the Go language. But the development of a common programming language that developers know very well is a double-edged sword that greatly simplifies the development process while greatly reducing the security compared to programming languages ​​developed specifically for blockchain. If there are more and more accumulated rights in the Hyperledger Fabric, there will always be people taking risks.

At this point, if the code is defective or incorrect (because it is not designed for the blockchain) then it could cost millions of dollars. Therefore, we believe that smart contract languages ​​must be designed specifically for blockchain and optimized for security. Ideally, smart contract languages ​​should also be easy to learn and easy to use in blockchain environments.

Chaincode has completely failed in these aspects. We found that the first program "Hello World", which is known as the developer, can be implemented in just a few lines in other languages, but in the Chaincode it needs 150. There are so many lines. The more code there is, the more vulnerabilities there may be. There are many vulnerabilities that can cause millions of dollars in damage in such a large amount of code.

Writing and reading smart contracts shouldn't be so difficult. Developers have to deal with low-level issues such as dispatch and argument discovery. The more code there is, the more vulnerabilities there may be.

Writing "Hello World" smart contracts with Hyperledger Fabric

Image source: Chainhero, Kadena

Not ready for the future

In the blockchain ecosystem, more and more old observers are beginning to realize that the private blockchain and the public blockchain cannot be completely isolated, but will go to cooperation, complement each other and promote together: private blockchain You will want your pass to be available to customers on the public blockchain, and decentralized applications deployed on the public blockchain will also want to store private data in a private blockchain.

Unfortunately, both Hyperledger Fabric and R3 Corda are cut from the public blockchain because of the complete incompatibility of the architecture. There is also a smart contract responsibility because their smart contract language cannot be in the public blockchain and private blockchain. Seamless switching.

IBM has led the development of standards for many enterprise blockchains through intensive collaboration with other large companies, but it is important to fade away from the glitz of the surface to explore the blockchain in depth.

IBM's so-called "blockchain" technology has flaws in many aspects, such as security, performance, reliability, etc. In other words, IBM provides a poor quality solution for companies that want to use blockchain to achieve business improvement. To better realize the value of the blockchain, seasoned customers will choose blockchain solutions that have better tools, better blockchain performance, better vision, and a true understanding of how to use this technology.

[Declaration: The article only represents a personal point of view, and its content and opinions do not represent the position of the blockchain base camp]

About the Author:

Stuart Popejoy has 15 years of experience in building trading systems and data exchange backbones for financial institutions. In 2016, Stuart and Will Martino co-founded blockchain solution company Kadena and became the company's president. Prior to this, Stuart worked in the blockchain product division of JPMorgan Chase & Co., where he led and developed Juno's main blockchain product, Juno, while Stuart also wrote many trading algorithm scripts for JPMorgan Chase. Help him develop a simple, customized smart contract language Pact at Kadena.

Today's topic
A thousand readers have a thousand Hamlet, and the author's critique of the Hyperledger Fabric is a hit. What do you think of it?

Author | Stuart Popejoy

Compile | Wang Guozhen

Produced | Blockchain Base Camp (blockchain_camp)