A rollup runs its own execution environment, then posts the resulting data to a layer-1. Because the data is on the base chain, a user can in principle rebuild the rollup's state and withdraw even if the operators disappear.
The two designs differ in how they prove correctness. An optimistic-rollup assumes batches are valid and allows challenges; a zk-rollup publishes a cryptographic proof with each batch.
Costs shifted materially once chains added cheap dedicated data space. A rollup's fee is mostly the data-availability cost it pays upstream, so L2 fees rise and fall with L1 congestion rather than being fixed. Check the current figure rather than assuming yesterday's.
Related: optimistic-rollup, zk-rollup, data-availability, layer-2