A Comparison of ZK Rollups

I put together a brief beginner’s overview of ZK rollups on Ethereum as of fall 2022.

Brief Overview of ZK Rollup Mechanics

ZK rollups are scaling solutions. The goal is to derive economic security from Ethereum, but scale throughput by moving execution off-chain. The set-up works as follows:

Design Choices

Here I describe several key ZK rollup design choices.

Data Availability (DA)

ZK rollups move execution off-chain, but typically rely on the L1 for DA. Alongside the ZK proof, they publish a small amount of data for each transaction on Ethereum via calldata. DA allows anyone to verify the state of the rollup.

However, DA gas costs increase with L1 blockspace demand. Further, the rollup is ultimately bound by the data capacity of Ethereum, limiting long-term scalability.

So, ZK rollups are often designed as volitions, which contain: 1) a rollup with on-chain DA and 2) a validium with off-chain DA. In a volition, ZK proofs are published to Ethereum, but users choose between expensive, more secure rollup settlement or cheap, less secure validium settlement. One way to improve off-chain DA is with a DA committee, a group of trusted parties who attest to DA. An even stronger alternative is to rely on a POS DAC, where anyone can join as a “DA validator.”

STARKs vs SNARKs

The choice of ZK proof system is crucial. SNARKs are based on elliptic curve primitives, while STARKs are built on collision-resistant hash functions. The nitty-gritty technical differences have important implications for rollups.

Below is a summary from Vitalik’s blog of where popular ZK proof systems lie on the the security vs proof size trade-off:

Escape Hatch

Most ZK-rollups are bootstrapped with centralized sequencers/provers (ZK proofs are computationally intensive and often require specialized hardware), which creates the risk of censorship. Rollups are committed to decentralization, but the process will take a while.

In the meantime, rollups can provide a weak liveness guarantee by implementing an escape hatch. This allows users to withdraw even if the sequencer/prover stops operating by sending a “forced transaction” to the rollup’s L1 smart contract.

Upgradability

As ZK proof systems evolve, teams want to be able to upgrade their L1 smart contracts. So while the contracts are mostly controlled by multisigs at the moment, teams can improve security guarantees by implementing: 1) pmandatory timelocks, 2) mandatory timelocks which can be reduced with a majority vote by a Security Council made up of trusted community members.

zkEVM

ZK rollup teams have quite a bit of flexibility in their zkEVM designs.

Making the VM as compatible as possible with Ethereum is great for developer experience. Engineers could rely on standards that have been refined in the Ethereum ecosystem, including DSLs (Solidity/Vyper), token standards (ERC20/ERC721) and block explorers. In an ideal world, developers could simply copypasta smart contracts from Ethereum onto ZK rollups.

However, such backwards compatibility comes at the expense of longer proof times. Several of Ethereum’s cryptographic primitives, including Keccak and RLP-based Merkle Patricia tree, require expensive ZK computation. Supporting such complex ZK proofs may also require specialized proving hardware at the expense of decentralization.

Below is a summary of the zkEVM design space taken from Vitalik’s blog, where Type 1 is fully Ethereum-equivalent and Type 4 is high-level language equivalent:

Current Projects

The table below summarizes the design choices made by players in the ZK rollup space (taking into consideration recent zkEVM announcements).

zkSync

Starknet

Polygon zkEVM

Scroll

Aztec