A zk-Rollup works by handing execution to an off-chain operator, called a sequencer, that collects hundreds or thousands of transactions, runs them, and compresses the results into a single batch. Instead of asking the base chain to redo that work, the sequencer generates a succinct zero-knowledge proof attesting that the new state follows correctly from the old one under the network's rules. A smart contract on the underlying Ethereum layer checks that proof in milliseconds and, if it passes, updates the rollup's official state root immediately.
Two proof families are used in practice: SNARK-based systems (zkSync Era, Polygon zkEVM, Scroll, Linea), which are compact but historically needed a trusted setup, and STARK-based systems (Starknet), which are larger but avoid trusted setup and use hash-based, post-quantum-resistant cryptography.
Because correctness is proven mathematically rather than assumed and later disputed, zk-Rollups skip the roughly week-long withdrawal delay that Optimistic Rollups impose, giving users faster, cryptographically final settlement. The trade-off is engineering complexity: proof generation is computationally heavy, and most zk-Rollups still rely on a small number of centralized provers and sequencers, meaning users trust these operators for censorship resistance and uptime even though they cannot forge invalid state.
Since Ethereum's EIP-4844 upgrade introduced cheaper blob storage for rollup data, transaction fees on major zk-Rollups have fallen to fractions of a cent for simple transfers, making them a practical default for everyday DeFi and payments activity.