Welcome to the Hyperledger Global Forum

Even amid the global fear of coronavirus, several hundred blockchain enthusiasts, software developers, and business executives gathered in Phoenix, Arizona for the annual Hyperledger Global Forum last week. I attended the forum on my way from Taipei (office) to Austin (home).

As bitcoin price crashed with the rest of the market and the “crypto winter” persisted, the Hyperledger community stayed true to its commitment to enterprise blockchains. The forum is filled with lively discussions on how the blockchain technology can be used by enterprise IT to improve business operations. Remarkably, there is little talk about cryptocurrencies and their prices.

The four-day conference featured over 100 speaker sessions, a well-attended exhibit hall, several networking events, and of course, a good venue and delicious food. You can watch recorded videos of all the speaker sessions online. This article is not a comprehensive review of the conference nor the Hyperledger ecosystem at large. It reflects my personal opinion on the current state and possible direction for blockchain-related technologies in the enterprise.

If a business objective can be achieved with the blockchain or a mismash of distributed database solutions, the right question to ask is why NOT blockchain?

Why do I need a blockchain for that?

Many sessions in the forum discuss real-world use cases of consortium or private blockchains. The applications range from supply chain management, finance, digital identity, record keeping, digital data exchange, insurance, charity, to cross border commerce and payments. While many applications are still in the pilot phase, some of them are already in production. It is clear that Hyperledger powered blockchain solutions are delivering value to enterprises.

However, most speakers I saw were defensive in their choice to use blockchain to solve these business problems. Some emphasized that the blockchain is just a small part (maybe less than 5%) of a large IT system, while others noted specific blockchain features such as consensus and transparency. Yet, for me, none of those individual blockchain features is convincing. Here are some examples.

Consensus. One of Satoshi Nakamoto’s greatest intellectual contributions is the invention of Proof of Work (PoW) consensus, which allows anonymous parties to collaborate on the blockchain. Yet, without the PoW, consensus is simply a voting system that can be reliably implemented with non-blockchain networking technologies. The commonly used enterprise blockchain, consortium blockchain, and private blockchain consensus mechanisms are just such electronic voting systems.

The distributed ledger. The ledger in blockchain systems is a database. In fact, most blockchain systems use open source database software to implement their ledgers (i.e., the state store).

Immutable records. To be clear, the ledger on a blockchain can and should be changed. Think account balances. There is nothing immutable about account balances. The transaction history is stored in the blocks, and they are not supposed to change. But except in PoW public blockchains, the consensus parties can actually change this history by creating an alternative branch of the blockchain.

Transparent and traceable history. The blockchain contains a full history of all transactions and state changes in the system. Anyone can verify it by re-running the transactions in blocks themselves. But journaled databases or even journaled file systems can do the same with much higher performance.

Decentralized identity. Blockchain accounts are owned by individuals who have access to private keys. They are not centrally managed. However, that is a feature of the public key infrastructure that blockchain systems adopted. In fact, a presentation at the forum was titled “Decentralized Identity without blockchain”.

Hence, the soul-searching begins. Why do we need blockchains? The answer seems to be that we do not really NEED blockchain. Yet, what software stack should we use to address the business need for multi-party, decentralized, and transparent data stores?

Maybe the right question is why NOT blockchains? Compared with a mishmash of distributed database solutions, blockchain systems like Hyperledger provide the most comprehensive set of tools and coherent infrastructure pieces to support enterprise use cases that require multiple stakeholders, independent identity, internal transparency, and traceability. As one of the speakers noted, Hyperledger is not competing against databases, it is competing against email.

Blockchain as an application platform

When we say that Hyperledger enables decentralized enterprise applications, we are referring to its ability to act as an application platform. One of the key characteristics of enterprise blockchains is that they must go beyond simple coin transfers. Developers create application services on enterprise blockchains to support business use cases.

Software frameworks like the Hyperledger are designed to support applications. In Hyperledger jargon, those applications are called chaincode (sometimes they are also called “Hyperledger smart contracts”, but as we will see, they are very different from smart contracts on public blockchains). Chaincode applications are regular server-side applications developed using the Hyperledger SDKs. They are packaged into the blockchain software and deployed on each node.

The chaincode paradigm is for application-specific blockchains. If we need a new business application, we will create a new blockchain with the business logic baked in. However, deploying your own application-specific blockchain is to manage a complex infrastructure of nodes, networks, operation systems, etc on your own. Given the complexity of blockchain implementation and governance, that means only the most expensive IT projects can benefit from blockchains. The forum has a great talk on how to sell blockchains to enterprises.

The popularity of cloud computing tells us that developers and IT overwhelmingly prefer fewer infrastructure complexities — and hence the rise of “serverless” and “microservices”. In a serverless world, developers just need to upload their code to the cloud, and users can access it and pay for the usage.

That vision is, in fact, very close to smart contracts on Ethereum blockchains. To support user submitted, potentially unsafe application (smart contract) code, we need a Turing-complete, secure, and high-performance virtual machine on blockchain nodes. Compared with chaincode, on-chain smart contracts have some significant advantages.

They allow user submitted code and make the blockchain system adaptable for multiple applications and future applications.

They are executed inside virtual machines and would not crash the system if they are buggy.

They are specially targeted to run only when a transaction asks for a contract. In contrast, chaincode must run against every transaction. On-chain smart contracts are faster and more scalable.

The on-chain smart contracts themselves are part of the transaction history, and hence make the blockchain more transparent and reproducible.

I personally believe that on-chain smart contracts will be the future. They are much easier for developers, easier to sell to executives, safer, and frankly closer to the ethos of blockchain. While Hyperledger is deeply rooted in chaincode, it is heartening to see multiple on-chain smart contract projects in the Hyperledger ecosystem to present at the conference. They include

Ethereum Virtual Machine (EVM) for Hyperledger Sawtooth and Burrow.

A WebAssembly-based virtual machine for Hyperledger Sawtooth and Burrow.

An Ethereum Virtual Machine (EVM) for Hyperledger Besu.

I believe those on-chain smart contract virtual machines and runtimes will enable Hyperledger to adapt to more enterprise use cases.

Attendees are building applications on the Hyperledger platform

Hyperledger and Ethereum

The Ethereum Enterprise Alliance (EEA) is an organization that promotes the Ethereum protocol, including its on-chain smart contracts, to enterprises. The EEA has collaborated with Hyperledger since 2018. This year, we saw Consensys, a major software developer in the Ethereum ecosystem, joining Hyperledger as a Premier member, and contributing to Hyperledger Besu. Not surprisingly, the Hyperledger Burrow, Sawtooth, and Besu projects also prominently feature the Ethereum Virtual Machine (EVM) as the runtime for on-chain smart contracts.

In fact, the Hyperledger Labs is incubating a new Solidity language compiler for the WebAssembly target. It is closely aligned with our vision for the SOLL compiler, which provides an LLVM-based set of compiler tools that can handle multiple front end languages, and generate bytecode output for both the EVM and next-generation WebAssembly flavored EVM (Ewasm).

Speaking of the next-generation Ethereum runtime, I would love to see Hyperledger adopting one of the leading open-source implementations.

Conclusions

Overall, I enjoyed the forum. Hyperledger is a set of enterprise technologies that go much beyond the blockchain. With on-chain virtual machines on Hyperledger, we could make blockchains more like cloud computing and make it much easier to adopt in enterprises.

I look forward to contributing to the Hyperledger community in 2020 and beyond!

To learn more about smart contract application development, check out my book Building Blockchain Apps. With the BUIDL tool, you can get your first smart contract-based web app up and running in 5 minutes!