1. Research & development
  2. > Blog >
  3. The road to a million TPS (and beyond): Smart rollups are coming

The road to a million TPS (and beyond): Smart rollups are coming

announcements
16 November 2022
Nomadic Labs
share:

TL;DR: Smart rollups are feature complete, a reference manual is ready, and we are looking to onboard early adopters with relevant use cases.

The next generation of optimistic rollups on Tezos are nearing their inclusion in a protocol upgrade proposal, and we have interesting news to share.

If you haven’t read our introduction to smart rollups, the elevator pitch is that they are more than just smart contract-enabled optimistic rollups with high scalability.

They allow anyone to program and deploy their own interoperable Layer 2 solution in a number of popular programming languages, using a general-purpose infrastructure built for decentralization and security.

Fancy an EVM-compatible “sidechain” in the Tezos ecosystem? This can be implemented using the new rollup infrastructure. We are already exploring this and will ramp up our work once smart rollups are live on Tezos Mainnet.

Smart rollups also enable an entirely new way to write decentralized applications on Tezos. In addition to using smart contracts on Layer 1, developers will be able to implement a dapp as a rollup, though this is mostly relevant for users requiring high throughput and/or intense computation.

Doing so effectively makes the smart rollup work like an app-chain – a blockchain dedicated to a single application – but one that draws on the time-tested security model of the Tezos network.

Finally, let’s not forget scaling: smart rollups play a central role in our mission to reach one million transactions per second (TPS) on Tezos, as announced at the TezDev Paris conference earlier this year.

Note that the million TPS goal is one we have set for ourselves for the short term. In the long term, due to the combination of horizontal and vertical scaling, there is virtually no limit to the scaling potential of Tezos rollups.

Enshrined? What?

The key to the flexibility, decentralization, and security of these next-generation rollups is that they are implemented at the protocol level, making them a type of enshrined rollups.

Googling “enshrined” will get you the following definitions

  1. “place (a revered or precious object) in an appropriate receptacle”
  2. “preserving something in a form that ensures it will be protected and respected”.

And that is what enshrined rollups are about. Instead of deploying rollups as smart contracts like it’s done on, e.g., Ethereum, they are officially recognized by the Tezos protocol as special entities with particular privileges and features.

You could even argue that such tight integration with the underlying blockchain makes enshrined rollups a feature of Layer 1, rather than a Layer 2 solution.

Enshrined rollups also represent a social contract between protocol developers and the community. By design, they are equally available to everyone. And, if adopted by the community through a protocol proposal, they will be maintained and continuously improved in ways that benefit the Tezos network as a whole.

On the technical side, the benefits of enshrined rollups are significant

  • It generally enables complex features that are at best difficult and often impossible to implement using a smart contract-based rollup.
  • Rollup-related Layer 1 activity can be made much more computation/gas efficient.
  • Common infrastructure enables standardized and efficient communication with Layer 1 and between rollups, even with different execution environments.
  • Special data solutions can serve these rollups, so rollup-data doesn’t consume excessive storage and bandwidth on Layer 1.

Ready for data availability solutions

The ability to create tailored data solutions is particularly important for scalability.

While smart rollups are deeply integrated to the Layer 1 protocol, we want to avoid having Layer 1 becoming a bottleneck, as described in our post on scaling strategy. Trying to reach our million TPS goal would quickly fill up Layer 1 blocks, and bandwidth on the network would become an issue.

To tackle this challenge, we are implementing a general and flexible mechanism for providing arbitrary data to a rollup without going through Layer 1. The mechanism can be utilized in different ways, but we expect to see two approaches:

A Data Availability Committee (DAC) is an off-chain mechanism to keep data available for verification, which relies on a trusted set of data providers. This presents a compromise with regards to decentralization, and unless a user has specific needs for control of rollup data – for instance in a private solution – the use of DACs will likely be transitional.

The more decentralized approach is a Data Availability Layer (DAL), which serves data like a DAC, but is a “public good” provided by the protocol itself: a dedicated rollup data layer for Tezos. Such a layer is in development, and will be included in a future protocol upgrade proposal.

New reference manual for dapp developers

The (first) execution environment for smart rollups is WebAssembly (WASM), which was chosen for at least two reasons. First, WASM is designed for fast execution, and second, WASM is becoming a broadly adopted compilation target, which means you will be able to write your “smart rollup contracts” in a large set of popular programming languages.

We invite interested readers to explore our new reference manual, which demonstrates how to concretely implement a dapp as a smart rollup.

The manual covers

  • The generic optimistic rollup infrastructure developed for Tezos.
  • The life-cycle of a WASM smart rollup.
  • The software environment in which the smart rollup program is executed, including the API smart rollups can use.
  • How Rust can be used to implement a simple smart rollup.
  • How this simple smart rollup can be deployed on Tezos.

We have also released a Rust module that defines the low-level API that is made available to developers. We would love to see what kind of safe and efficient API Rust developers can come up with.

Of course, the language used is not limited to Rust. Any programming language that compiles to WASM and does not assume a browser as its sole execution environment can be used to implement smart rollups.

Start your WASM engines

The coming months are about making sure the Tezos ecosystem is off to a running start, once smart rollups are activated on Mainnet. It involves two important tasks:

Ecosystem testing: Smart rollups on Mondaynet are now feature complete. Things like APIs can still change, so (minor) breaking changes are possible, but there will be no paradigm or design changes. It’s time to start experimenting, and we are looking to onboard early adopters.

If you are part of a project/organization that requires the scalability or flexibility that smart rollups offer, don’t wait for Mainnet activation. Get in touch now, and get help with building your solution while helping us ensure smart rollups are optimized for our users’ needs upon Mainnet activation.

Tweaking and tuning: We are working on making sure the infrastructure for WASM smart rollups can handle the high throughput we have committed to reaching on Tezos. For instance, the rollup node that will be shipped with Octez will make good use of the performances of the WASMER execution engine.

Provided that no blocking issues are uncovered in this final testing phase, activation of smart rollups on Mainnet will be included in the ‘M’ protocol proposal in early 2023.

We look forward to exploring the power of this new rollup engine, and to sharing our experiences with the community. Stay tuned!

Learn more about smart rollups: