Blockchain technology is relatively new. We are still in the early stages of figuring out how to build and use it. But even with that, there is already quite a selection of blockchain platforms. Choosing one gets complicated really fast.
Firstly, let’s look at what is out there. Here is a nice introduction into 17 blockchain platforms. It covers the following (in the alphabetical order):
- BigChainDB, an open source system that “starts with a big data distributed database and then adds blockchain characteristics — decentralized control, immutability and the transfer of digital assets”.
- Chain Core, a blockchain platform for issuing and transferring financial assets on a permissioned blockchain infrastructure.
- Corda, a distributed ledger platform with pluggable consensus.
- Elements Blockchain Platform, an open source, protocol-level technology for extending the functionality of Bitcoin.
- Ethereum, a decentralized platform that runs smart contracts on a custom built blockchain.
- HydraChain, an Ethereum extension for creating Permissioned Distributed Ledgers for private and consortium chains.
- Hyperledger Fabric, which supports the use of one or more networks, each managing different Assets, Agreements and Transactions between different sets of Member nodes.
- Hyperledger Iroha, a “simple and modularized” distributed ledger system with emphasis on mobile application development.
- Hyperledger Sawtooth Lake, a modular blockchain suite in which transaction business logic is decoupled from the consensus layer.
- Multichain, an open-source blockchain platform, based on bitcoin’s blockchain, for multi-asset financial transactions.
- Quorum, an open source distributed ledger and smart contract platform based on Ethereum.
- Stellar, an open-source, distributed payments infrastructure that provides RESTful HTTP API servers which connect to Stellar Core, the backbone of the Stellar network.
- Symbiont Assembly, a distributed ledger inspired by Apache Kafka.
These are a lot to consider. But if we can simplify this a bit. Group the related technologies together. Eliminate a few that are still maturing, have smaller communities and low popularity. Now we have pretty much just four to consider:
With these we can dive into some detailed comparison. There are a few of these online, but the one that we think deserves special attention is this article in the blog of Multichain project. Sure, there is some bias, but there’s also plenty of authority on the technical details.
In this article, my goal is to examine some of the major differences between smart contract approaches and the trade-offs they represent. I’ll do this by looking at four popular enterprise blockchain platforms which support some form of customized on-chain code. First, IBM’s Hyperledger Fabric, which calls its contracts “chaincode”. Second, our MultiChain platform, which introduces smart filters in version 2.0. Third, Ethereum (and its permissioned Quorum and Burrow spin-offs), which popularized the “smart contract” name. And finally, R3 Corda, which references “contracts” in its transactions. Despite all of the different terminology, ultimately all of these refer to the same thing – application-specific code that defines the rules of a chain.Smart contract showdown: Hyperledger Fabric vs MultiChain vs Ethereum vs Corda
And as for the bias, there was this clarification in the Hyperledger mailing list.
At AlleoTech, we’ve been mostly working with Multichain. But we are constantly looking at and learning other blockchain platforms. Irrelevant of whether we use them for real projects or not, they help us understand the challenges of the blockchain technology and how different people solve them.