Corda Top Ten Facts #7: Both a blockchain and not a blockchain
Myth: Corda is just a database
The Corda team got itself into a bit of a tangle a year or so ago. We presented at a Corda meetup to a group of developers and pointed out that Corda doesn’t have any blocks.
And then all hell broke out…
After that little run-in I realised I should perhaps listen a little harder to our marketing people and give up trying to be pure from an engineering perspective.
Wait? What?! You sold your soul?! Not quite: here’s what I mean:
- A Transaction in Corda is cryptographically linked (chained) to the transactions it depends on. Just like Bitcoin, but the range of concepts that can be expressed is far wider.
- Transactions in Corda are processed by having each participant in the transaction execute the same code deterministically to verify the proposed updates to the ledger. Just like Ethereum, but the languages you can use are high-level and productive, like Java, rather than obscure ones like Solidity.
- Transactions in Corda are shared only with those who have a need to know. Just like channels in Fabric but designed in from day one and fully integrated into the programming model.
- Transactions in Corda are confirmed through a process of consensus forming using one of a range of algorithms, including Byzantine Fault Tolerant algorithms. Just like any other blockchain, but with the unique features that a Corda network can support multiple different consensus pools using different algorithms.
So, for all intents and purposes, Corda is a blockchain. And yet… there’s also an utterly critical difference.
Unlike the platforms mentioned above, Corda does not periodically batch up transactions needing confirmation — into a block — and confirm them in one go. Instead, Corda confirms each transaction in real-time. No need to wait for a bunch of other transactions to come along. No need to wait for a “block interval”. Each transaction is confirmed as we go.
This massively increases privacy (your transaction is not intermingled with everybody else’s) and, because we support multiple notaries on the same network, also enables things to go faster.
So Corda is both a blockchain and not a blockchain!