I’ve heard it mentioned that Corda is NOT a distributed ledger technology, but a shared ledger technology - can someone please explain the difference?
The two terms distributed ledger technology and shared ledger technology are often used interchangeably to represent the universe of all blockchain-like technology platforms.
Having said that, there is quite a subtle distinction between distributed ledger technology and shared ledger technology. David’s point was likely in regard to the way in which consensus is managed within Corda:
Bitcoin, Ethereum and other similar “permissionless” ledgers all achieve consensus at the ledger level.
We can say that consensus is “distributed” among all the participants in the ledger. See the venn diagram below for clarification; whilst there are only 3 parties here, the distributed consensus model is replicated for all participants on the ledger.
For this to be the be the case, it follows that all transaction data on the ledger must be broadcast to all other participants on the ledger, otherwise how could consensus be achieved at the ledger level?
The obvious disadvantage here is privacy and scalability:
Privacy because all participants have to see all other participants transactional data.
A system which relies on message broadcasts to all participants is inherently unscalable.
Corda takes a different approach:
By default, information about transactions is only shared with those parties to a transaction.
This is best described with another venn diagram:
Here, let us assume that Alice, Bob and Sue have entered into a mutual agreement.
Lets also assume that Sue and Ivan have entered into a bilateral agreement. Notice that Alice and Bob are not required to see Sue and Ivan’s agreement for consensus to be reached.
We can now say that Sue and Ivan share consensus. We can also say that Alice, Sue and Bob also share consensus but about different facts.
This is a more appropriate model for financial services where privacy of transactional data is highly important.
With Corda, consensus can be reached by way of appending digital signatures to a contract state.
If signatures are present from all parties to a transaction then we assume that the transaction is agreed upon and consensus is achieved.
Bitcoin and Ethereum issue digital asset that has no counter party risk (except for the network itself), therefore, it’s mandatory that the WHOLE ledger need to agree on ALL the facts (who owns what) and ALL the rules (how new facts can be created). It makes absolute sense that CORDA doesn’t have to achieve consensus at ledger level for facts and rules (i.e. agreements) meant for small number of parties.
Please help me to understand that how data consistency will be provided by Codra shared ledger technology. In the above picture, what will happen one Node(Sue’s) is down and not available and not reachable? What will happen the facts in between all others? Worse scenario, If Sue and Ivan’s node both down at same time, How we will restore the data or ledger on those nodes?