Rollups themselves can be a difficult concept to grasp, and having multiple types of rollups each with distinct names can make things tricky. Although, the definitions given for different rollups do serve their purpose to provide distinctions between them. These distinctions are derived from where the rollup publishes data and the type of proofs it uses.
A quick refresher. A rollup is a separate blockchain that bundles multiple transactions together and sends them in a single batch to a consensus layer to be verified.
Rollups can choose to publish data on-chain or off-chain. On-chain data refers to a default secure chain that the rollup uses to publish data to. Off-chain data refers to data that is published anywhere other than on-chain. Off-chain data could be published on a second general-purpose chain or a specific data availability layer. Ethereum typically acts as both the consensus layer, providing transaction verification, and as the data availability layer, where data is published and made available.
When rollups send a batch of transactions to be verified, a proof will be used at some point to demonstrate a particular result. These proofs typically fall into two buckets, fraud proofs, and validity proofs.
Fraud proofs attempt to prove whether there are any fraudulent transactions in a rollup batch. These are used in optimistic rollups like Arbitrum. Fraud proofs don’t have to be sent with every rollup batch. They are only used once an entity wants to dispute whether the rollup batch contains any fraudulent transactions.
A dispute window is given to optimistic rollups to allow time for disputes to be called. Once the window is over, the transactions are considered irreversible — typically 1 week. The dispute window is responsible for withdraws from optimistic rollups requiring a long wait time. The window must close before the withdraw can be allowed to exit the optimistic rollup.
Validity proofs are used by zkRollups to prove that transactions are valid. Unlike fraud proofs, validity proofs must be sent with every zkRollup batch to prove it is valid. The benefit is that transactions are irreversible once they are validated by the consensus layer.
zkRollups that only publish data off-chain are called a validium. For example, some of the applications built on StarkEx utilize a validium. In their case, a committee of trusted parties is used to ensure that data will remain secure and available. A situation that results in data being withheld by the committee members will allow the zkRollup users to force an exit and withdraw their funds.
A zkRollup that can publish data either on-chain or off-chain is called a volition. A volition gives users the option to choose where their data is published. On-chain data is slightly more expensive with the best security. Off-chain data is cheaper but provides less security — depending on where it is published. In a volition, on-chain data is the rollup mode whereas off-chain data is the validium mode.
zkRollups can also incorporate different proof systems (e.g. SNARKs and STARKS) in conjunction with validity or fraud proofs. The proof system explains how rollup batches are proved, and validity or fraud references what the proof is trying to demonstrate. For example, StarkEx uses STARK proofs to attest to their rollup batches that are submitted to Ethereum. Because the STARK proof also attempts to prove that the transactions are valid, they must be sent with every rollup batch but won’t require a dispute window.
* While there are multiple other niche types of rollups only the most common ones have been included for the sake of brevity.