Cardano: What It Is and Its Purpose
Cardano is a blockchain that seeks to deliver more advanced features than any protocol previously developed. Specifically, we aim to improve state of the art for Scalability, Interoperability, Sustainability, and Smart Contracts. I will explain more about these in the following sections.
Cardano is not a company, but rather a group of three organizations: IOHK (research & development — 160+ people), Cardano Foundation (non-profit that controls trademark, oversees the other two companies, and works with the community — 30+ people) and Emurgo (for-profit company focused on developing commercial ventures on the Cardano ecosystem, something similar to Consensys for Ethereum — 40+ people). This information can also be found in this video.
Working Philosophy: How to Achieve the Goal
In order to achieve such an ambitious goal, a great deal of innovation needs to occur. I will try to explain the process we have in place to get us there without diving into too many specifics:
We believe that research should be conducted by experienced individuals with a real-world background in their expertise, not just smart people that know how to code. We have more than 30 researchers working at IOHK for Cardano from some really prestigious institutions like the University of Edinburgh, the University of Illinois Urbana-Champaign, the Tokyo Institute of Technology and the University of Athens. To learn more about the teams, visit IOHK Research and Runtime Verification (RV is a longterm partner working in the smart-contracts).
It is not enough just to do research. It also needs to be peer-reviewed by a community of academics and experts in the same industry. This is to ensure that conclusions genuinely represents an advance in state of the art. This is why most of our papers are sent (and so far accepted) to prestigious conferences like Crypto 2017, Eurocrypt 2018 and others.
After research has been validated, it needs to be handed over to developers for them to implement into the protocol. For this, two processes are critical: High Assurance and Formal Verification (we also use this in Cardano).
- High Assurance means that what is actually coded corresponds precisely to the algorithm that was defined and proved correct by the researchers.
- Formal Verification is basically confirming the correctness of software by using formal methods of mathematics.
Current Problem in the Ecosystem
Scalability: The problems of scalability related to the number of transactions in Bitcoin and Ethereum are well-known. Additionally, there are other scalability issues associated with the size of blocks (broadcasting) and the size of the blockchain (the larger it is, the fewer full nodes in the network).
Smart Contract Hacks: More than 350 million USD has been lost due to hacks and problems in smart-contracts. One of the most recent exploits involved hackers forcing an input overflow tricking a validation and create tokens from thin air.
Funding: There are multiple blockchains with core developers like Bitcoin and Ethereum, but without the right incentives, new and established developers may choose other blockchains where their work gets paid, i.e., if you coded an improvement for Bitcoin, you don’t get paid anything even if you worked on it for months. Ethereum is a little different because there is some indirect funding through an ICO, but that is only for the dApp level, not the protocol level.
Protocol: We are conducting heavy research in Proof of Stake. We have improved our protocol substantially (Ouroboros (v1) -> Ouroboros Praos (v2) -> Ouroboros Genesis (v3)). With the latest proposal (Ouroboros Genesis), we strongly believe that we have solved Proof of Stake by creating a Provably Secure Protocol (mathematically proven secure) while avoiding the use of checkpoints and not suffering from some common attacks like stake grinding, nothing at stake and long-range attacks.
Scalability: Our protocol does ~200 transactions per second (without the tradeoff of decentralization like EOS). We are also working on Sharding, and we already have proposals for Sidechains which allow blockchains to communicate and interoperate like APIs. This could allow other blockchains to move back to Cardano as necessary.
Interoperability: We believe that at least a few blockchains will be around for the long-term, and thus, they should be able to talk between one another (at the very least, you should be able to move tokens, generate events for smart contracts, etc.). Also, if Blockchain is going to go mainstream is essential to ”talk” to traditional systems like banks. On this front, we are focused on providing support in our protocol so banks can implement compliance in transactions while also using our Sidechains protocol to move between chains.
Sustainability: As I mentioned before, it is essential to provide a mechanism to fund improvements to the protocol and the Cardano project in general. We are developing a blockchain that should survive for generations. To achieve this, we are implementing a public treasure system which gets funded from a small percentage of the rewards that go to stakers (miners in PoW). We are going to implement Liquid Democracy for voting to avoid some of the problems of traditional democracy systems like people having to vote for proposals that are not in their field (expected because blockchain is complex) and low voter turnout. Liquid democracy allows for you to delegate your vote for specific types of projects to someone else, so for example, if you are a marketer, you can vote in marketing related projects, but for development related projects, you can delegate your vote to an expert that you trust or even someone that you personally know.
More Information about Specific Key Concepts Mentioned Before
Most of the information about Cardano can be found here: https://cardanodocs.com/introduction/
Information about our roadmap can be found here: https://cardanoroadmap.com/
Sidechains allow blockchains to communicate and interoperate, like APIs. Because the miners that run a blockchain do not monitor other blockchain networks, this is difficult to do without short proofs. If a blockchain supports smart-contracts, like Ethereum, a smart-contract can be written to validate a NIPoPoW to check that something happened on another blockchain and react to it. For instance, a transaction made on Ethereum Classic could cause a payment to be released by an Ethereum smart contract.
Simple explanation: https://nipopows.com/
Talk from one of our main researchers: https://www.youtube.com/watch?v=7aflmniKI5s&feature=youtu.be
We are developing our own stack of tech for smart contracts. We already implemented EVM (Ethereum Virtual Machine) using K-Framework (more info below). This means that we are fully compatible with Solidity, and it is currently already possible to deploy on our testnet (testnet information: https://testnet.iohkdev.io/goguen/). There is a lot of information on that website if you are interested in the technical aspects of it.
We also already deployed our own virtual machine (VM) called IELE https://runtimeverification.com/blog/iele-a-new-virtual-machine-for-the-blockchain/ which takes into account most of the pitfalls of KEVM in order to provide a stable, safe and better VM. It is heavily inspired in LLVM, some people even refer to it as LLVM for blockchain. Developers now have the opportunity to explore Cardano’s smart-contracts technology and deploy smart-contracts on our testnet using the Remix IDE, read more here: https://buff.ly/2M5lkRp.
We are also working on other smart contacts languages like Plutus (Haskell inspired). More info will be available in the following months.
K-Framework: https://runtimeverification.com/blog/k-framework-an-overview/ (you do not actually need to know how to program for the K-framework, it is only to describe other languages or VM)
Explanation of Smart Contracts and VM in Cardano from one of our colleagues: https://www.youtube.com/watch?v=VZcKQFMEeVY&t=1s
Artwork: Joanna Kosinska