We're sorry
You're using an old Web-Browser

The micobo website is not viewable on Internet Explorer.
Please download a new browser and visit micobo.com.

Download Chrome

We want to inform you by using our site, that micobo uses cookies to improve your user experience and tracking usage of our site. You can find more related information in our Customer Data Privacy Policy Page

I understand and approve
Micobo Preloader
Benefits of Corda

Benefits of Corda

This article outlines the benefits of Corda and also the striking features and differences when compared to the other Blockchain systems. The major observations are:

  • In Corda, data is only shared on a need to know basis. There is no global broadcast of transactions but, the dependency graph of a transaction is provided from the sending node to the receiving node on demand [1]
  • All communications between the nodes are direct. Nodes are arranged in an authenticated peer-to-peer network [1]
  • Each message send between nodes has an integrated deduplication key. A receipt is created when a message is successfully processed by a node which serves as an undeniable evidence that would later stand up in a dispute mediation process [1]
  • Corda uses the UTXO model where a transaction consumes a set of input states and produces a set of output states. This allows the transactions with different inputs to run in parallel thus increasing the number of transactions per second [2]. Therefore, unlike Ethereum and Bitcoin, the data as a result of a transaction is not just a key-value pair but rather states. As a result, the Corda database can contain arbitrary data and not just a value field [1]
  • Corda does not use the concept of proof-of-work or miners, instead, each state points to a notary which signs a transaction only if its inputs states are unconsumed thus preventing double spends. In this case, the need for two-phase commit between notaries are avoided as a transaction is not allowed to consume states controlled by multiple notaries [1]
  • Corda is not restricted to a particular consensus algorithm. It employs different algorithms for different scenarios [1]
  • Unlike Bitcoin and Ethereum, Corda is a semi-private network into which the admission requires obtaining an identity signed by the root authority (also called ‘permissioning service’). This allows the creation of an entirely anonymous Corda network. The transactions are digitally signed without disclosing its contents to the signing entity. This is achieved by structuring the transaction contents to a Merkle tree and the contents the signing entity doesn’t need to see are ‘torn-off’ [1]
  • Each node is backed up by a relational database from which the data can be easily queried using SQL. It is also possible to perform joins, induce relational constraints and query at particular points in time [1]
  • Corda re-uses the existing technologies such as standard JVM programming languages for the development of CorDapps, existing SQL databases and existing message queue implementations [2]
  • All parties in a transaction are identified by their public key. For each transaction, a fresh key is generated for each party (key randomization) which prevents an observer from identifying which parties were involved in a given transaction [2]
  • Since Corda works with identities and not hashed public keys (like Bitcoin), identifying or searching for recipients is easily achieved through auto-completion and search at the UI instead of using QR codes [1]
  • Corda makes use of Composite keys (referred above as ‘public key’) which are trees in which the leaves are regular cryptographic public keys. The validity of a set of signatures can be determined by tracing the tree bottom-up and summing up the weights of the keys holding a valid signature and comparing it against certain threshold [1]
  • The other blockchain systems like Bitcoin only allows to append the transactions to the ledger and other useful information generated during the transaction such as text message, refund address, identity information or progress information are not supported. In Corda, each transaction involves multi-step negotiation and all the information is considered essential. Therefore, instead of having global broadcast as the primary form of communication, in corda, all communications take the form of multi-party sub-protocols called flows [1]
  • These flows allow the embedding of further sub-flows and also reports progress indicating which steps they are upto [1]
  • Corda uses the just-in-time state machine compiler which rewrites the code on the fly which makes it appear like the code is executing in a single blocking thread [1]
  • Financial institutions need the ability to resolve conflicts using the traditional legal system where required. Corda resolves this by having a legal attachment that backs all code contracts and having permissioned networks which makes it possible for the parties to be aware of whom they are trading with [2]
  • Corda does not have per transaction network fees, which is a huge source of complexity in the other systems. This is balanced out by making sure that the transactions respect the fungibility rules in order to ensure that the issuer and reference data is preserved as assets are passed from hand to hand [1]
  • Corda uses client-side hardware to hold private keys. The benefits of keeping the signing key on a personally controlled device are- no single point of failure when the node is hacked, clarity regarding who signed off an action as the signatures prove which device was used for the signing and more security can be added by integrating fingerprint readers and other biometric authentication [1]
  • Corda addresses the shortcomings of the BIP 70 protocol by integrating a transaction summaries field to the transaction format to verify the legitimacy of the transaction [1]
  • Corda provides app-level robustness services such as checkpointing which is not provided by the other platforms [1]
  • Corda allows contract code upgrades and dispute resolution in case of failed contracts [3]. Node activity logs are correlated to determine the entities who have to agree to discard the transaction. Corda uses a tool which find all the affected parties and signals their respective node administrators who accepts the ‘investigation request’ send by the tool through the node explorer for discarding the transaction. The ledger is updated by adding new transactions to extend the transaction chain which will correct the database to match the reality [1]
  • The Corda platform support a rich type system and allows representation of entities like dates, currencies, legal and financial entities whereas, other systems like Bitcoin has rigid data format which can hold very little data [1] [3]
  • Other Blockchain systems provides no way for the contract to examine the structure of the entire transaction which puts a heavy limitation on what the contracts can do. This is overcome in Corda, as Corda uses Turing-complete contracts which can be written in any programming language that targets the JVM and allows arbitrarily-precise time-bounds to be specified in transactions which is attested by a trusted timetsamper [3]

References:

  1. Hearn. Corda: A distributed Ledger. November 29, 2016. Version 0.5.
  2. https://docs.corda.net/key-concepts-tradeoffs.html
  3. G. Brown, J. Carlyle, I. Grigg, M. Hearn. Corda: An Introduction. August, 2016.