Corda
Key Points
Enterprise blockchains include: Fabric, Ethereum, Corda, Quorum, Sawtooth
References
Session Overview
Key Concepts
Corda Overview - R3
Corda Overview - Blockchains 101
https://101blockchains.com/corda-tutorial/
Compare Hyperledger Fabric, Ethereum, Corda, Quorum -2020 ratings
Fabric v Corda - 2018
fabric-v-corda-2018-features-medium.com-Hyperledger Fabric vs R3 Corda.pdf
corda v fabric feature compare
tokens c??? fabtoken delayed
privacy b
scale f???
finality b
batch proc ????
admin ????
languages f
interoperability b
open platform b
identity tools b???
pluggable f???
wide use cases f???
did support ????
multi cloud ????
consensus ????
default net b hyperchain, aws, ibm, azure
Enterprise Blockchain Protocols: A Technical Analysis of Ethereum vs Fabric vs Corda
https://kaleido.io/a-technical-analysis-of-ethereum-vs-fabric-vs-corda/
kaleido.io-Enterprise Blockchain Protocols A Technical Analysis of Ethereum vs Fabric vs Corda.pdf
Enterprise Ethereum | Fabric | Corda | |
Node Permissioning | Smart contract based rules, with file-based per-node rules as local overrides. | Configurable on node, channel and consortium levels. | Trusted network map service complemented by file-based configurations on each node. Corda networks are partitioned into compatibility zones that are governed by separate Certificate Authorities. |
Identity | Public keys – distributed, and interoperable between Ethereum based chains. Coupled to PKI via proofs. | Based on PKI with native organizational identity. Organizational identity rather than individual identities used throughout in consensus, and permissioning. | Based on PKI with both individual and organizational identity. |
Cryptography | secp256k1 | Pluggable (ECDSA with secp256r1 and secp384r1 built-in). | ed25519 secp256r1 secp256k1 RSA (3072bit) PKCS#1 SPHINCS-256 (experimental) |
Transaction Consensus | Order -> Execute/Validate | Execute -> Order -> Validate | Execute/Validate -> Order/Notarize |
Application Responsibility | Sending signed transactions to one node in the network. | Coordinating directly with all required participants to obtain endorsement, checking for consistent execution results, signature, and submission. | CorDapps use the flow framework to coordinate with transaction counter-parties to negotiate proposed updates, obtain signatures, and to finalize with the notary service. |
Applied Consensus Algorithms | Proof-of-Authority (BFT). Raft (CFT with trusted leader). Istanbul BFT (BFT with deterministic leader rotation). Tendermint | Kafka/Zab (CFT with trusted leader). Raft (CFT with trusted leader). | Raft (CFT with trusted leader) BFT |
Smart Contract Engine | EVM, in-process sandbox | Docker isolation by default, pluggable in v2.0 | Deterministic JVM |
Smart Contract Languages | DSL (Solidity, Serpent), guaranteed deterministic. | Full languages (Go, Node.js, Java), non-determinism is tolerated. | Java, Kotlin, deterministic by using recommended libraries |
Smart Contract Lifecycle | Immutable. Easy to deploy. Stored on-chain. | Requires elaborate process to deploy/change. Stored off-chain. | Requires node-level administrative operations to deploy/update. Stored off-chain. Ongoing work to split consensus-critical code vs. non-consensus-critical code for different storage strategy (on-chain vs. off-chain respectively) |
Smart Contract Upgrade | Programming patterns to extend/migrate code & data. | Replacing off-chain code via administrative procedure and upgrade transactions. | Contracts with hash-based constraints are explicitly upgraded via node-level administrative procedures and coordinated flow to authorize and upgrade. Contracts with signature constraints automatically allow new versions to execute, as long as signed according to the constraints and the hash matches. |
Tokenization of Assets | Native feature Many token standards: ERC20/ERC721/ERC777 etc. | Possible with custom solution. | Possible with custom solution. Corda Token SDK makes it easier to build. |
Multi-chains | Each chain is unique, and requires separate node runtimes (min or 3 or 4 depending on consensus). | Native feature (channels) with shared peer runtime, and shared orderer. Built-in governance for creating side-chains with isolated state. | No concept of a chain (shared ledger). Transactions always explicitly target specific nodes. States are scoped to the designated notary which can be retargeted to a different notary. |
Private Transactions | Public hash represents input. | Public hash represents input and private end state. | Inherently all transactions are private. The entire transaction is visible to a validating notary. |
Community of Contributors (as of writing) | Go-Ethereum: 429 Quorum: 383 Besu: 60 Autonity: 360 | Fabric: 185 | Corda: 146 |
Community Pulse (Month of Nov. 2019) | Go-Ethereum: 15 authors, 98 PRs Quorum: 9 authors, 13 PRs Besu: 23 authors, 66 PRs Autonity: 6 authors, 6 PRs | Fabric: 31 authors, 220 PRs | Corda: 33 authors, 91 PRs |
Ethereum Enterprise Blockchain implementations
EE Client | Modified From | Developer | Open Source License |
Quorum | go-ethereum | JPMorgan Chase | LGPL |
Besu | New implementation in Java | PegaSys | Apache 2.0 |
Autonity | go-ethereum | Clearmatics | LGPL |
Strato | Haskell Ethereum | BlockApps | Closed-source |
Consensus Models Compared
All blockchain systems need a consensus mechanism to ensure all nodes have the same view of the transactions input and order. Almost all existing protocols utilize consensus algorithms designed around the “order-and-execute” architecture. First all nodes agree on the transactions order inside a block, then the transactions are independently executed by each node to calculate the resulting state.
Fabric consensus model is different - order > execute > commit
Fabric achieves transaction finality differently.
It has a faster consensus model: execute > order > commit
option to listen for transaction commit completion event ensures finality
At a high level, a configurable number of organizations must come to consensus on the execution results, where the “endorsement policy” is defined at the chaincode level, private data collection level (starting in v2.0), or key level.
Corda consensus design is very similar to Fabric. First the nodes involved in the transaction coordinate among them to process the transaction by executing the target contract and signing the execution result. Once the required signatures are collected, the initiator node is responsible for sending the transaction to the notary service for consensus signature. The notary service maintains a full history of all the transactions that have been submitted and is able to determine if a double spending situation is happening. Once the notary service approves the transaction and signs of on the proposed result, the transaction is finalized and committed by all the parties. This makes it effectively the same execute-order-validate design that Fabric follows.
Transaction Execution | Ordering (double-spend detection) | |
Ethereum | Ethereum Node (all nodes) | Ethereum Node (block proposer) |
Fabric | Endorsing Peer | Orderer |
Corda | Corda Node | Notary |
Multi-version Concurrency Control for execute > order > commit flows
“execute first and order next” design implies that some kind of concurrency version control is necessary, otherwise when multiple transactions are trying to modify the same state value in parallel, the later one will overwrite the earlier one and wipe out the state transfer from the earlier transaction, instead of building on the result of the earlier transaction. Fabric employs a multiversion concurrency control (MVCC) technique borrowed from database design. Under the cover, the chaincode engine keeps track of what state values are being viewed (in readset) and updated (in writeset) when the smart contract is executed. During the validation phase, where each transaction contained inside a block is validated and state transfer is applied, if a transaction’s state value versions in its readset do not match the current versions, typically because they have been updated by an earlier transaction in the block, then the transaction is marked as invalid.
implication is that if a series of transactions need to modify the same state value, they must be regulated such that no more than one transaction lands inside a single block. Otherwise the application will observe a lot of invalid transactions due to concurrent modifications.
Techniques exist to program around this limitation, such as utilizing the composite key capability to assemble unique keys for each transaction while having the ability to group together keys targeting the same underlying state variable. The high-throughput sample application demonstrates how this can be done. Note, though, that not all scenarios can take advantage of this technique.
Corda XDC token - a staking token that is Ethereum compatible for DeFi
https://vinn9686.medium.com/enterprise-blockchain-token-comparison-xrp-vs-xdc-6d80b9a79113
One of the reasons XDC can create a completely decentralized trade finance ecosystem is that it supports smart contracts. Smart contracts are digital contracts written in the form of computer codes that negate the use of middlemen in transaction processes.
The support for smart contracts in XDC also allows the XinFin network to support applications such as automated payments, escrow, central bank digital currency deployment, etc.
In addition, XDC also has a staking functionality that maintains a consistent buy pressure and keeps the currency in demand.
You can Stake your XDC by hosting a masternode on XinFin Network or You can Stake XDC on AlphaEx Exchange.
Token Burning for Certificates, NFTs
XinFin also has a decentralized trade-finance platform dubbed TradeFinex that streamlines processes for trade finance originators. In addition, through BlockDegre, XinFin helps schools and colleges store and record academic certificates on a decentralized network.
Watch the live example of Token Burning with Confidence:
Token Burning on Blockdegree.org.
XinFin Network overview
XinFin is an enterprise-ready hybrid blockchain specifically designed keeping in mind the pain points in the trade and finance industry. It aims to digitize global trade and finance through its interoperable blockchain, XinFin. While most blockchains struggle with low scalability and high network congestion, XinFin Network supports the almost instantaneous settlement of trade transactions. It aligns itself to replace or work alongside various traditional — and complex — financial infrastructure so that it increases the efficiency of the industry and reduce organizations’ reliance on outdated infrastructure.
Higher Gas limit than Ethereum so larger blocks option
On the contrary, the XinFin network caps the gas limit to 420 million gas units. This means that more transactions can be stored per block on the XinFin network.
DPOS consensus protocol
The XinFin network deploys its version of the Delegated Proof of Stake mechanism known as XinFin DPos or xDPoS. Their protocol allows a selected group of nodes to represent all nodes on the network and approve the transactions. By doing so, they reduce the number of nodes that must individually approve a transaction, which results in a shorter time for transaction settlement. xDPoS also enforces KYC requirements on nodes to fit with the needs of all enterprises using the XinFin blockchain.
At present, the XinFin network creates one new block every 2 seconds and is capable of processing approximately 2,000 transactions every second.
Corda Token Performance
The XDC token on XinFin Network has shown an even faster transaction capability. Currently, XDC can support as many as 2,000 transactions per second, and it has the potential to settle almost 20,000 transactions per second with multiple solutions.
Stellar vs XinFin networks
https://vinn9686.medium.com/stellar-vs-xinfin-which-one-makes-the-cut-4ab60999c3d5
XinFin Network Features
https://vinn9686.medium.com/stellar-vs-xinfin-which-one-makes-the-cut-4ab60999c3d5
They have a host of applications that form a complete ecosystem that can be used for cross-selling or up-selling products for different intertwined business functions. Working on the principle of hybrid blockchain i.e. a combination of a public and private blockchain, this network has revolutionized the workings of a blockchain by making it more liberal, all the while keeping it more secure. This is done by a series of checks enabled by proof of stakes (PoS) methodology wherein, the nodes holding the largest amount of stakes would have the right to sanction transactions. The aforementioned host node is practically a part of a larger public chain while hosting its own private blockchain on that node. This creates a global connection while keeping the privacy of the organization secure.
Stellar Network Features
- Stellar (XLM) is a completely decentralized consensus platform.
- It is designed to support any type of currency.
- It has a built-in decentralized exchange that can be used to trade any type of currency or asset.
- Supports thousands of transactions per second
- It can be used to send or trade any currency, asset, or token.
Anchors are simply entities that people trust to hold their deposits and issue credits into the Stellar network for those deposits. Anchors do two simple things:
1) They take your deposit and issue the corresponding credit to your account address on the Stellar ledger.
2) You can make a withdrawal by bringing them the credit they issued.
Stellar has added enhanced security features to its network and a host of apps; including more security features such as multi-signature, batching/atomicy, and businesses can choose which nodes can validate their transactions. These increased security features are especially crucial for STOs, as the tokens represent real-world assets. Moreover, it enables trading between KYC/AML approved addresses only otherwise they stand of risk having a frozen account. It carries a ledger, which is able to store offers that people have made to buy or sell currencies. Offers are public commitments to exchange one type of credit for another at a predetermined rate. The ledger becomes a global marketplace for assets. It also allows you to send any currency you hold to anyone else in a different currency through the built-in distributed exchange. People can receive any currency through an anchor they added.
Errors in the Comparison Below
- You create custom tokens on Stellar using SDK
- For custom tokens you don't need a bank account in Stellar
The tipping point towards XinFin comes in when with double the transaction speed as Stellar and less than half the block creation time as that of Stellar, the XinFin coin XDC still manages to remain at a lower price, making it lucrative for small scale investors looking to start with something in the lower range yet carrying huge potential. The multi-currency exchange mechanism and the capability of creating digital assets using XDC token in order to support multiple currencies result in an expansion of feasibility and durability of operations.
Potential Value Opportunities
Potential Challenges
Candidate Solutions
Quorum
Quorum adds permissionless POS consensus
Quorum Control and presented by Quorum Control's Founder and CEO, Topper Bowers.
The title of their presentation is "Topper Talks Tupelo: Introducing the Future of DLT". In the presentation, Topper will give an overview of Tupelo. Tupelo is a permissionless proof of stake DLT platform purpose-built to model individual asset ownership and provenance as the base layer (rather than token exchange). Tupelo introduces a completely unique infrastructure to better support scalable adoption outside of currency-oriented blockchain circles and deliver concrete benefits to users, from enhanced data security to more accurate and transparent record-keeping.
About Topper Bowers:
Topper Bowers is an entrepreneur and engineer with 20+ years focused on building tech that betters people’s lives. Whether he’s designing user interfaces, managing world class teams, or
building high volume distributed systems for large nonprofits and Fortune 50 companies, he’s committed to making the kind of software that can change the world. He’s a former Y-Combinator founder (Summer 2012) with deep knowledge of distributed systems and distributed ledger technology.
Quorum Control is a VC-backed Berlin-based technology company building Tupelo, a permissionless proof-of-stake DLT platform purpose-built to model individual objects. After securing $2.9mm in traditional seed equity investment (lead by Initialized Capital) the team launched its first TestNet in November of 2018.
Step-by-step guide for Example
sample code block