R3 Corda Explained : in a nutshell

This blog contains content to walk you through the enterprise use case based DLT — “Corda”. Please keep reading , if you are not very familiar with this amazing platform and want to understand everything about Corda in a nutshell.

Lets get started!

Introduction
Throwing a little light on the origin of this technology, Corda is an open source technology which was developed in a New York headquartered organisation, R3 in collaboration with over 200 technology and industry partners.

Like Ripple, Corda is not a Blockchain but is a DLT (Distributed Ledger Technology) though it is designed to solve various problems in diverse industries like Blockchain. It is inspired from Blockchain system, but is designed in a way that it covers appropriately all the aspects for financial usecases unlike public Blockchains like Bitcoin and Ethereum.

Which Industries are making use of Corda?
Unlike Blockchains and other DLTs , Corda was not designed as a generic solution to all problems. It was designed specifically for financial institutions as can be concluded from the official whitepaper(version 3.3). It targeted problems with current Banking usecases however, it is not limited to only Banks now a days. Many industries are now making use of it to achieve seamless solutions to common but unavoidable issues. These include Supply Chain, Insurance, Healthcare and Government. B3i is one such example which targets to solve various insurance related issues and achieve customer satisfaction using Blockchain and DLTs ,primarily Corda.

Key Concepts in Corda
Cordapp : A CorDapps (Corda Distributed Application) is an application that run on Corda platform and allows nodes in a transaction to reach agreement on updates to the ledger. A Cordapp exist at the individual node level and not at network level.
The network : A network in Corda consists of assembly of nodes running Cordapps and services. The access of nodes is permissioned and regulated by a service called Doorman. Point to point communication occurs between nodes.
The ledger: Ledger in Corda is not common to all nodes in the network. Instead each node maintains its own version of ledger . Ledger contains fact which are same in the ledgers of the nodes which share it. For eg: lets say, there are 5 nodes in the network which share facts among each other and not everyone can see every fact. They can only see the facts in their ledger which belongs to them or which are facts shared in a transaction in which they were a party to the transaction.
Identity : A node once joins the network is issued a certificate(Corda X.509 certificate) by the root permissioning authority. The cerificate works basically as an attestation to the Legal Identities of nodes which are public keys of nodes. The addresses along with the Identities are maintained in an Network Service Map in Corda. These identities are called Well Known Identities. However there are nodes which have to keep their identities confidential. Confidential identities are not published in NSP and are the public keys in this case is only shared with the transacting party.
States : States are the on-ledger facts in corda stored in vaults of nodes. These are immutable objects which contain arbitrary data. States are private to the transaction parties. Whenever ledger is updated in corda, a new state is formed consuming the previous state and marking it as Historic.
Contracts : Contracts are pure functions written in java which determines if a transaction is valid or not. It provides validity of both input and output states in a transaction. A state contains reference to the contract it is validated from.
Transactions : Process of consumption of one or more input states to produce output state/s . It is a proposal to update the ledger.
Flows : Flows automate the process of agreeing to ledger updates. Communication between nodes occur in the context of these flows.
Consensus : Achieving both validity and uniqueness of a transaction so that it updates the ledger.
Notaries : Services that are responsible for preventing double spends. They may or may nor validate the transactions. A network can have multiple notaries that may choose to run on different consensus algorithms. Notaries are associated with states. A state may choose which notary it has to be associated with in case of multiple notaries.
Time-windows : if a transaction includes a time-window, it can only be committed during that window. The notary acts as the time stamping authority, which refuses to commit any transactions outside of the window. Time-windows can have a start and end time.
Oracles : A transaction can have a fact as a part f command. An oracle comes into play at the time of this fact and signs a transaction only if this fact is true.
How is Corda similar to Conventional Blockchains?

When we talk of Blockchain, the first word that comes to our mind is Decentralisation. Corda though is a permissioned platform successfully maintains the essence of decentralisation .

Corda has similarities to conventional Blockchains, primarily Bitcoin and Ethereum:

It has got states which are produced as a result of a transaction and are marked as historic when a new state due to a subsequent transaction is added. This is similar to immutable ledger concept in Blockchains where data can only be added but previous data can not be deleted.
Transactions in corda can have multiple inputs and outputs similar to UTXO in blockchains like bitcoin.
In Corda also, we have the concept of contracts which are pure functions and do not have any storage or ability to interact with anything like in Bitcoin.
Corda runs on a virtual machine — JVM just like ethereum runs on EVM.
How is Corda different from Conventional Blockchains?
The evolution of Blockchain technology resulted in platforms like Corda which are more fit for enterprise grade usecases(primarily financial usecases) , thereby resulting in maximum utilisation by industries which demanded a need of technologies like these since long. To accomodate industrial needs, the initial concept of blockchain had to be reshaped and thats where the differences arise between Corda and other blockchains.

Privacy and Security are two such factors which are most sought after by industries including Banks. Corda succeeds in providing both , at the same time maintaing its decntralised nature.

Lets see how is Corda differs from Ethereum. When we talk of smart contracts in Ethereum, we know these are set of rules or simply a program that is replicated and maintained by every node in the Ethereum network. This is like an object in an Object Oriented program: it can send and receive messages, update local storage ,etc. Contrary to this, implementation of a smart contract in corda refers to a set of functions, one of the function among these functions is responsible for synchronisation in the nodes (the verify function) and this function is pure and stateless ( it does not interact with other parts of the system whilst executing). Since contracts do not have any mutable storage, there is nothing like a “message” in Corda.

There is no concept of mining in Corda and hence no Proof of work exists here.

It does not have an associated cryptocurrency like Bitcoins and Ethers as in case of Bitcoin and Ethereum blockchain respectively.

Corda is permissioned. The entry of nodes in the network is regulated and is controlled by something known as Doorman service in Corda. That means unlike Ethereum and Bitcoin, a node can not join the network simply on its own.

Also the identities of the parties or nodes which are a part of the network in Corda are not kept anonymous like other public Blockchains. Identity of every node that joins the network is maintained by a Network Service Map.

Coming to transactions, the transactions are not broadcasted to all the nodes in the network as in Bitcoin and Ethereum. Instead, there are state objects in Corda which are on-ledger facts shared only among parties involved in a transcation.

Thats all folks! This was pretty much all of it wrapped at a high level.

Happy Blockchaining!

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now