July 31, 2018

A brief description of the Cardano blockchain for non-tech people

Nicolás Arqueros

Chief Technical Officer

Emurgo

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 handover 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).

  1. High Assurance means that what is actually coded corresponds precisely to the algorithm that was defined and proved correct by the researchers.
  2. 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.

Cardano Technology

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.

Smart Contracts: Solidity has demonstrated on multiple occasions that it is not a secure language to write smart-contracts, but it is too easy to get it wrong. Solidity helped spread the usage of smart contracts, but something better is needed, especially when money is at stake and Solidity is basically Javascript with some ”makeup”. That is why we are developing our own stack of technologies for smart contracts. We are working with RunTime Verification to implement a better Virtual Machine (IELE), which allows us to run multiple high-level programming languages for smart contracts with a limited gas usage and to make writing secure smart contracts easier. This is done on top of K-Framework, which is a ”metaprogramming language” that can be used to describe other programming languages. The purpose is that we can develop tools for K-Framework (type checkers, interpreters, formal verification, etc.) and they will work in all the programming languages described by K. Also we are developing our own programming language for smart contracts called Plutus, which is inspired by Haskell. Even one of the creators of Haskell (Philip Wadler) is working on it.

More Information about Specific Key Concepts Mentioned Before

General Information

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

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

Paper: https://eprint.iacr.org/2017/963.pdf

Smart-Contracts

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