A Pragmatic Perspective of the Top Cloud Blockchain Runtimes
The blockchain as a service(BaaS) space is starting to become one of the new competitive frontiers among the top cloud platform providers and a new generation of enterprise blockchain startups. The growing number of product releases, partnerships announcements or funding rounds in the BaaS makes increasingly difficult to differentiate signal from noise. Today, I would like to provide a pragmatic view of the BaaS space based on our experience at Invector Labs.
Permissioned blockchain solutions in enterprise environments remain mostly in the pilot and experimentation phase. While there is an increasing interest for blockchain/distributed ledger architectures in the enterprise and the number of startups tackling industry-specific solutions powered by blockchain technologies has grown significantly, the number of production workloads remains relatively low. The limited production deployments of blockchain have its root causes in two main factors:
1) Mission Critical Applications: Most blockchain pilots have focused on improving complex, mission critical enterprise processes such as supply chain management or trade settlements. While the value of blockchain technologies in these scenarios is unquestionable, the replacement of existing solutions can be a lengthy exercise.
2) Operational Immaturity: Managing the lifecycle of permissioned blockchain solutions remains an infrastructure expensive exercise. The tools for deploying, monitoring and scaling blockchain solutions remain incredibly complex and very often required specialized services.
In the current market environment in which permissioned blockchain stacks are being used in complex enterprise processes while their operational readiness remains relatively immature, the ability to experiment quickly, evaluate ideas and show incremental wins becomes extremely important. BaaS stacks often become the first exposure of enterprises to blockchain solutions and they are rapidly becoming the favorite runtime for blockchain experiments in enterprise environments.
What to Look for in a BaaS Platform?
When comes to selecting a BaaS stack in the enterprise, we’ve often witnessed enterprises make two fundamental mistakes:
i. Rely on their Established Cloud Provider: If you are an AWS or Oracle Cloud customer, it’s very tempting to run your first blockchain experiments in those same runtimes that have already been vetted by your corporate standards. This could be a terrible mistake. At this point, the support for BaaS capabilities among cloud providers is relatively limited and differentiated enough that it merits its own evaluation.
ii. Rely on a Large System Integrator: Many of the initial pilots for blockchain solutions in the enterprise have been influenced by the advice of large system integrators(Sis). In our experience, the knowledge from those large SIs is constrained to tier1 stacks like Ethereum or Hyperledger Fabric but rarely take advantage of new blockchain protocols and technologies that are powering mission critical workloads in public blockchains. Not surprisingly, most blockchain pilots in the enterprise remain incredibly basic technologically and failed to leverage the technical assets of the blockchain ecosystem. When comes to blockchain technologies, deep technological rigor and strong knowledge of blockchain protocols, tools and frameworks is way more important than vertical expertise.
How to select the right BaaS stack for my scenarios? When evaluating blockchain as a service(BaaS) technologies for real world blockchain solutions, there are a series of capabilities that should be top of mind. Some of those capabilities are going to result obvious while others are non-trivial and become more relevant in advanced stages of the development process:
1) Rapid Provisioning: The ability to launch blockchain networks rapidly and without any infrastructure effort is essential for rapid prototyping in BaaS runtimes.
2) Integration with Backend Services: Any enterprise blockchain solution requires integration with backend systems and services. Developing Oracles for those integrations becomes a constant struggle for development teams that often hinders productivity. A BaaS runtime should support out-of-the-box integration with popular cloud services as well as mainstream open source technologies that are prevalent in enterprise environments.
3) Security Based on IAM Platforms: The whole purpose of permissioned blockchains is…well…to establish permissions on different segments of the network. Integration with identity management platforms is the easiest way to extend the security capabilities of enterprises into their new blockchain applications.
4) Smart Contract Deployment and Testing: Smart contracts are the main vehicle for authoring business logic in permissioned blockchain applications. However, the immutability of the blockchain makes the process of deploying and testing smart contracts foreign to most developers. Tools for testing, auditing, versioning and deploying smart contracts should be a key capability of BaaS stacks.
5) Support for Different Blockchain Runtimes and Frameworks: Most BaaS stacks support popular blockchain runtimes like Ethereum, Hyperledger Fabric or R3 Corda but few support complementary frameworks and protocols that are common in permissioned blockchain applications. Look for a BaaS platform with first-class support for diverse blockchain technologies and protocols as well as the corresponding extensibility mechanisms
1) Support for Identity-Based Consensus Mechanisms: Most blockchain runtimes are based on computationally-intensive consensus mechanisms such as proof-of-work(PoW) or proof-of-stake(PoS) which are completely unnecessary in enterprise solutions that operate in environments with known identities. BaaS stacks should increasingly support mechanisms such as proof-of-authority(PoA) or similar identity-centric consensus models that will simplify the processing of transaction in enterprise blockchain solutions.
2) Support for Permissioned Ethereum Blockchains: Ethereum remains the most popular blockchain stack in the market but its applicability in the enterprise if often challenged due to basic technical limitations such as privacy or side-chain support. Variations of Ethereum such as Parity or Quorum are very well suited for enterprise blockchain scenarios but the support in most BaaS stacks remains limited at best.
3) Block Explorer and Monitoring Tools: Monitoring and troubleshooting blockchain applications is far from trivial. Block explorers are a common tool to trace the provenance of transactions in blockchain runtimes. Supporting block explorers and integrating them with mainstream application performance monitoring tools should be a key feature of BaaS technologies.
4) Blockchain-First Services: Technologies like IPFS, BigChainDB, Swarm, Truffle, Metamask, ENS and many others are common building blocks of blockchain solutiosn in the real world. Eventually, BaaS stacks should support these technologies as native services simplifying the need for developers to integrate them into their applications.
5) Support for State/Side Channels and Private Transactions: Many of the computations of permissioned blockchain applications take place off-chain. However, most BaaS stacks have no support for state channels or side chains that can help to offload those computations from the main chains. Improving this capability could really streamline the adoption of BaaS runtimes in the near future.
Taking the aforementioned requirements under consideration, how would we rank the main BaaS providers in the market? That would be the subject of the second part of this article 😉
A No-BS Guide to the Blockchain as a Service Space Part I was originally published in Hacker Noon on Medium, where people are continuing the conversation by highlighting and responding to this story.