Since its inception, blockchain has been perceived as a revolutionary technology that will change the way we handle money, investments, entertainment, and pretty much anything you can imagine. That excitement has only grown from there as the community has been able to better articulate that potential, along with visionaries who helped shape tech enthusiasts’ expectations for the future of decentralized technology.
Even so, the scaling limitations of blockchain made these promises anything but live up to their initial hype. While one could argue that great projects were delivered on Decentralized Finance (DeFi) last year, even these developments were frustrating at times, with extremely high fees and the migration of users to more centralized platforms. Not to mention the various verticals, such as gaming, social media, government transparency, that have experimented with blockchain in the past, but have now been gentrified away from decentralized platforms to make room for financial applications that pay higher fees.
However, the obstacles to blockchain adoption are not just the scaling issues. Developing software on these platforms has always been very difficult, costly and prone to bugs and delays. The main reason behind this is that developers have to build applications in a new programming language (Solidity) and start from scratch, without resorting to the thousands of libraries that they have grown accustomed to. So together with the scalability problems, these idiosyncrasies and the immaturity of the ecosystem are the main reasons that hold back the broader adoption of blockchain.
Of course, people have been aware of these limitations for a long time. Several leaders of the field and many projects have been coming up with solutions to these problems, like plasma chains, state channels, side-chains and rollups. The latter has become the most promising of them all for two reasons: first, it provides a very generous scaling factor with very few compromises on security and versatility and secondly, rollups and sharding form a very powerful combination that complements each other to push scalability even further.
So, what are these so-called rollups again? Put very simply, rollups are a technique to push complex computations outside of the blockchain, alleviating the heavy burden that is responsible for its current jamming. When employing rollups, the blockchain role becomes solely to receive transactions and log them. On rare occasions that parties disagree with the outcomes of a computation, the blockchain also gets involved in resolving these disputes.
Offloading the blockchain from these complex computations, together with the aggregation and compression of data is expected to increase the number of transactions that a blockchain can process by a factor of at least 100x. Not to mention that these transactions can now involve much more complex logic since rollups allow applications to perform virtually any amount of computation they want. In practical terms, the benefit of all this is multifold. Old applications will be able to run at a fraction of their previous cost, while applications that were previously impossible will now start to flourish. More about this under ‘A Deeper Look into Cartesi Rollups’.
The Cartesi Foundation has extensive experience in developing tools for scaling computations on blockchains, as can be seen in the tools we have already developed (such as Descartes) and our technical demos (like Creepts and Poker). This expertise put us in a privileged position to launch a rollups solution for blockchains that shines on many different levels. This article starts the presentation of Cartesi Rollups, which will completely change the capabilities and the way in which people develop decentralized applications.
As mentioned earlier, rollups solutions move the processing of transactions from the blockchain to another computing environment called a virtual machine (VM). The VM is a central component in any rollups solution and the choice of this VM has serious consequences for what can be built on top of these rollups. Most projects have developed their virtual machines based on the existing Ethereum Virtual Machine (EVM) to maintain compatibility with already developed smart contracts. Cartesi breaks with these legacy limitations by implementing a VM capable of running a true Linux operating system. Doing so, Cartesi not only provides scalable transactions but also allows applications to be developed in any programming language using any of the thousands of existing tools and libraries. This will bring decentralized applications to a whole new level of maturity and a decentralized world computer much closer to reality.
Cartesi Rollups are a new way to write smart contracts, which as usual are able to manage assets and create their own rules for everything from trading to governance. But the biggest improvement that smart contracts running on Cartesi Rollups bring when compared to traditional ones is their scalability and programming environment.
In short, Cartesi Rollups are able to increase the number of transactions per second in the underlying layer by a factor of at least 100 (and tend to reach 10000 times when sharding is launched). Furthermore, the processing of each of these transactions can now be as intense as an application could possibly need. Plus, the logic of these applications can be fully unleashed, ranging from AI, compression, statistical analysis, and whatnot. This added complexity imposes negligible costs and retains the decentralization guarantees that blockchains provide in terms of correct execution.
One may ask what are the downsides of such a solution that seems to almost magically improve everything that blockchains offer. The answer is that Cartesi Rollups do not offer fast finality guarantees. Instead, in the rare cases where results of computations are challenged, it can take much longer to finalize results on the blockchain.
It is important to notice, however, that this slower finality only impacts the transfer of assets on the base layer of the blockchain. So for example, anyone executing a Cartesi Node can be instantaneously sure about the outcomes that will be eventually finalized on-chain. This allows for the creation of markets of liquidity providers that facilitate faster withdrawals.
Building a rollups solution that enables Linux applications is no easy task and the team at Cartesi has worked for months on various different projects that ultimately constitute Cartesi Rollups.
More than that, several of the components that have been developed along the way are important pieces of infrastructure for the larger Ethereum community and Cartesi will publish them as independent software components under Open Source licenses.
In order to make an orderly delivery of Cartesi Rollups over the next weeks, the Cartesi team will publish each of its underlying components in a separate publication, together with their corresponding code. Here follows a brief overview of each of these projects.
State Fold — Getting information from the blockchain is a challenging task. First of all, blockchain applications should be extremely robust and resilient, even in the presence of blockchain reorganizations. Moreover, consolidating information that gets emitted by the blockchain as well as variables stored in smart contracts can be tricky and error-prone. This is why we have designed a specific tool to gather information from the blockchain in a reliable and foolproof way, the so-called State Fold. We will present this tool and its code and a more detailed announcement in the coming days.
Transaction Manager — Another challenge that blockchain developers face is how to submit transactions to the blockchain in an automated and safe way. Some of the challenges involved in this task are: signing and estimating gas, dealing with gas peaks, reading information from the mem-pool, cleaning transactions that got stale due to low gas price and making sure that transactions are included before a deadline. Instead of dealing with all these problems on a case-by-case basis, we have again decided to create a specific software component whose sole objective is to deal with transaction submissions. We have named this project Transaction Manager and we will also present it as a separate piece.
Rollups on-chain — What makes rollups possible is a collection of carefully designed smart contracts that are deployed to the underlying blockchain and enforce the correct execution of the rollups logic. These contracts are going to be presented in a separate announcement, in which Cartesi will also explain how users and other applications will interact with rollups: deposit and withdraw assets, send messages and more.
Cartesi Node — The network that sustains Cartesi Rollups is composed of several Cartesi Nodes that are constantly executing on users’ computers. These nodes are responsible for executing the computations that arrive at the Cartesi Rollups, presenting their results to interested parties. Put simply, Cartesi Nodes play a role that is similar to what Geth does on the Ethereum ecosystem: execution and retrieval of information. Note that although we have already built our dispute resolution system, it will not be integrated into rollups in this first testnet delivery.
Cartesi has just begun delivering our full vision of how decentralized applications will look like. In the coming months, we will be working hard to deliver some very important features of rollups, including the aggregator, a detailed tutorial on how to build a wallet application, the Validator Marketplace and integrating disputes resolution in rollups.
We are very excited about the road ahead.
Cartesi is a multi-chain layer-2 infrastructure that allows any software developer to create smart contracts with mainstream software tools and languages they are used to while achieving massive scalability and low costs. Cartesi combines a groundbreaking virtual machine, optimistic rollups and side-chains to revolutionize the way developers create blockchain applications.