Cartesi

[Short general description]: Cartesi is an infrastructure layer that brings real world computations to the blockchain. It offers blockchains powerful new primitives that enable smart contracts to formulate off-chain computations performed over off-chain data and then settle disputes over the results.

[Main problems tackled]: Current Blockchain consensus mechanisms are based on full redundancy. This means storage and computations are replicated across all nodes, resulting in an unscalable environment. Blockchains also rely on idiosyncratic VMs that lack valuable features found in general-purpose architectures, resulting in a restrictive environment. The restrictiveness and scaling problems don't allow for real world computations and large data on blockchains.

Below are listed the key problems on blockchain platforms today that Cartesi has a solution to:

1. Computations on the blockchain are inefficient and have limited throughput thus the number of transactions on current blockchains (ie. Bitcoin, Ethereum) is limited.

2. Computations on the blockchain are expensive due to the inefficiency and limited storage space, which results in the total dimension of the transaction being limited on most blockchains.

3. Off-chain computations are a solution to these, but up to this point cannot be verified in a decentralized way.

4. Restrictive environment. Developers don't have access to a full operating system and toolchains of the real world, and are forced to use specific programming languages with limited libraries.

[Main contribution proposal]:

1. Science - Outsourced computation will allow for millions of users to lend their idle computing power and help the world of science work towards goals of searching for extraterrestrial life, mapping asteroids, or helping the LHC collide particles.

2. Logistics - Dapps built on top of Cartesi can change the way the supply chain world works. Ensure your products are legitimate through verified consensus, making real world logistics solution actually feasible on the blockchain with massive amounts of data.

3. Finance- Cartesi applications will be able to to read the contents of multiple blockchains . This will enable smart contracts that depend on the information of other existing smart contracts. The key applications are interoperability between blockchains and services such as futures and insurance markets.

4. Computer Science - A trustless marketplace for AI and computational tasks. With the power of Cartesi’s decentralized automated verification, developers will be able to create services that allow new DApps to outsource and distribute work. These include machine learning, data analysis, or computational intensive tasks that require experts in the field. This would open possibilities for lower cost AI, developed by outsourced experts and bots.

5. Healthcare - Cartesi will help healthcare in a countless number of ways. Through folding proteins in search for cures for cancer, computing solutions for new drugs, or even creating neural networks that diagnose diseases.

6. Gaming - Cartesi's application to oracles will help transform decentralized games. Off-chain verification will make decentralized games a reality and large oracles will allow games to place massive amounts of data directly on the blockchain. Games such as fantasy leagues that rely on large external data will now allow trustless global participation.

[Innovation]: The Cartesi Project is divided into two major components:

1. Cartesi Node - The first component is the Cartesi Node. This is a software package that Clients, Miners, Experts, and Developers use to interact with Cartesi in their respective capacities. The Cartesi Node, in turn, interacts with the blockchain via a set of protocols and smart contracts, which together form the second major component of the Cartesi Project. Cartesi Nodes and Cartesi Contracts interact by means of simple, public, well documented, abstract interfaces. They are further divided into smaller components which similarly interact by internal abstract interfaces.

The Cartesi Node is the software that runs on any computer that wishes to interact with the Cartesi Project. It is divided into the following parts:

- Frontend

- Virtual Machine

- The operating system

- Offchain communications

2. Protocol Layer - The second component of the Cartesi project includes all the protocols and smart contracts that bridge to Cartesi Node with the blockchain.

Verification Contract serves as a judge determining whether a certain calculation made in the virtual machine (outside of the blockchain) is correct or not. Having this automated and transparent judge lays the groundwork for the trust needed for a decentralized and safe marketplace, similarly to what Ethereum smart contracts have done. This algorithm is extremely efficient, meaning that its running time off-chain is linear in the size of the computation and its running time in the blockchain is bounded by log(time) + log(space), which makes any calculation virtually cheap to verify.

There can be several types of protocols, depending on the application that the users have in mind. The main task of these protocols is to setup the Virtual Machine, guarantee data availability and call the Verification Contract in case of a dispute. Different applications require different protocols to setup the machine and Cartesi does not impose a preferred way of doing so, leaving this instead for the community to develop upon. Cartesi will however provide several interesting protocols that will cover many important use-cases.