Technology Fridays: Chain Core Wants to be the RedHat of the Blockchain
Welcome to Technology Fridays! Today, I would like to cover one of the platforms that has been driving the enterprise blockchain ecosystem: I am talking about Chain Core.
Many people like to compare blockchain platforms to the internet. I believe that comparison is flawed on several levels but that’s a topic for another day :). In my opinion, a better analogy for blockchain platforms can be found in the server operating system(OS) space. Specifically, I like to compare the blockchain platform space to the Linux OS ecosystem and I think we can find many interesting similarities between the evolution of those two technology movements. Just like in the Linux world, today we have several version of blockchain-based platforms that are actively trying to achieve relevance in the enterprise. Chain Core is one of the platforms leading that charge that, many times, doesn’t get the credit and visibility it deserves.
At its core, Chain Core is a software framework designed to run on permissioned blockchain networks. Chain Core’s nodes maintain a cryptographically-secured, multi-asset ledger that enables the processing of distributed assets. My favorite feature of Chain Core is its super-simple programming model which is a rarity in an ecosystem plagued with complexity. At a high level, Chain Core architects blockchain programs using a handful of fundamental constructs such as Keys, Assets, Accounts and Transactions.
Each participant in a Chain Core application requires a private key as the main authorization mechanism for the issuance and transfer of assets. Chain Core keys must be generated using an HSM( hardware security module) which can be sort of expensive but the platform includes a MockHSM API that streamlines the generation of keys in development environments.
Assets are a fundamental concept in Chain Core applications that abstract the types of value that can be processed by an endpoint. In Chain Core, an Asset definition is, essentially, a set of key-value pairs that describe its properties. When a participant issues an Asset in Chain Core, its effectively creating an instance of that definition and declaring the number of units that need to be issued.
In order to track Asset ownership, Chain Core uses the concept of Accounts. The Chain Core platform maintain a local repository that hosts the definition of the existing Accounts. That repository is local to Chain Core and is not persisted in the underlying blockchain. Instead, the blockchain ledger is used to record instances of Transactions that transfer a number of units of a specific Asset.
One of the areas in which Chain Core really innovates is the security of Assets using the concept of Control Programs. Chain Core Control Programs are a set of predicates that must be satisfied in order to process a Transaction. The platform includes several types of Control Programs such as Account Control Programs to process Asset units or Retirement Control Programs to remove an Asset from the blockchain. Developers can even create Custom Control programs using a domain specific language included in the platforms.
Like other blockchain platforms, Chain Core enables the implementation of Smart Contracts that orchestrate flows a specific Transaction flow. Chain Core’s Ivy language enables the modeling of Smart Contract using a high level, domain specific syntax. Ivy is recommended to use mostly for experimentation and not in production scenarios but is, nonetheless, a powerful addition to the Chain Core stack.
Developers can start building Chain Core application susing the platform’s API or one of its several SDKs that today include languages such as Java, Ruby or NodeJS. The SDKs make it extremely simple to assemble highly sophisticated blockchain interactions. all objects created in a Chain Core application are persisted using a JSON format and are accessible via a simple query language available in the API and SDKs.
Just like Linux, the blockchain platform ecosystem is getting really really crowded. Chain Core typically competes with tier 1 blockchain platforms such as Ethereum, IBM Hyperledger Fabric, Intel Sawtooth or R3 Corda. Domain specific blockchain platforms such as Ripple, J.P Morgan Quorum or Nasdaq Linq can also be considered part of Cain Core’s competition.