Bird
Raised Fist0
Blockchain / Solidityprogramming~10 mins

Rollups (Optimistic vs ZK) in Blockchain / Solidity - Visual Side-by-Side Comparison

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Concept Flow - Rollups (Optimistic vs ZK)
User sends transaction
Rollup collects transactions
Optimistic Rollup: Assumes valid
Publish batch on main chain
Challenge period starts
If fraud proof submitted
Revert batch
Correct batch
If no fraud, batch final
ZK Rollup: Generate proof
Publish batch + ZK proof on main chain
Main chain verifies proof instantly
Batch final immediately
User transactions are collected by rollups. Optimistic rollups assume batches are valid and wait for challenges, while ZK rollups generate cryptographic proofs that are verified instantly on the main chain.
Execution Sample
Blockchain / Solidity
function optimisticRollup(batch) {
  publishBatch(batch);
  waitChallengePeriod();
  if (fraudProofSubmitted()) {
    revertBatch();
  } else {
    finalizeBatch();
  }
}

function zkRollup(batch) {
  const proof = generateZKProof(batch);
  publishBatchWithProof(batch, proof);
  verifyProofOnChain(proof);
  finalizeBatch();
}
Shows simplified functions for optimistic and ZK rollups handling batches of transactions.
Execution Table
StepRollup TypeActionConditionResult
1OptimisticPublish batch on main chainAssumes validBatch accepted, challenge period starts
2OptimisticWait for challenge periodChallenge period ongoingNo immediate finalization
3OptimisticCheck for fraud proofFraud proof submitted?If yes, revert batch
4OptimisticFinalize batchNo fraud proofBatch finalized
5ZKGenerate ZK proofBatch readyProof created
6ZKPublish batch + proofProof generatedBatch and proof on main chain
7ZKVerify proof on chainProof valid?If yes, batch finalized immediately
8ZKFinalize batchProof verifiedBatch finalized instantly
💡 Optimistic rollup waits for challenge period; ZK rollup finalizes immediately after proof verification.
Variable Tracker
VariableStartAfter Step 1After Step 3After Step 4After Step 5After Step 7Final
batchStatuspendingpublishedreverted or publishedfinalized or revertedproofGeneratedproofVerifiedfinalized
challengePeriodnot startedstartedongoing or endedendedn/an/an/a
proofnonenonenonenonecreatedverifiedverified
Key Moments - 3 Insights
Why does the optimistic rollup wait before finalizing the batch?
Because it assumes batches are valid but allows a challenge period for fraud proofs, as shown in execution_table rows 2 and 3.
How does the ZK rollup finalize batches instantly?
It generates a cryptographic proof that the main chain verifies immediately, so no waiting is needed, as seen in execution_table rows 5 to 8.
What happens if a fraud proof is submitted in an optimistic rollup?
The batch is reverted and corrected, preventing invalid state changes, as shown in execution_table row 3.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, at which step does the optimistic rollup finalize the batch if no fraud proof is submitted?
AStep 2
BStep 3
CStep 4
DStep 1
💡 Hint
Check the 'Result' column for optimistic rollup finalization in row 4.
According to the variable tracker, what is the status of 'proof' after step 5?
Acreated
Bverified
Cnone
Dpending
💡 Hint
Look at the 'proof' row under 'After Step 5' in variable_tracker.
If a fraud proof is submitted during the optimistic rollup challenge period, what happens to the batch?
AIt is finalized immediately
BIt is reverted
CIt waits longer
DIt generates a ZK proof
💡 Hint
See execution_table row 3 under 'Result' for optimistic rollup.
Concept Snapshot
Rollups bundle many transactions off-chain to reduce main chain load.
Optimistic rollups assume batches are valid and wait for a challenge period to detect fraud.
ZK rollups generate cryptographic proofs that verify batch validity instantly.
Optimistic rollups have delay but simpler proofs; ZK rollups finalize faster but need complex proofs.
Both improve scalability but use different trust and verification methods.
Full Transcript
Rollups are methods to bundle many blockchain transactions off the main chain to improve speed and reduce costs. Optimistic rollups publish batches assuming they are valid and wait for a challenge period where anyone can submit fraud proofs to revert invalid batches. If no fraud proof appears, the batch finalizes. ZK rollups generate a zero-knowledge proof for each batch that the main chain verifies instantly, allowing immediate finalization without waiting. Variables like batchStatus and proof change as the rollup processes batches. Optimistic rollups have a delay due to the challenge period, while ZK rollups finalize faster but require generating and verifying complex proofs.

Practice

(1/5)
1.

What is the main difference between Optimistic Rollups and ZK Rollups?

easy
A. Optimistic Rollups assume transactions are valid until challenged; ZK Rollups use proofs to verify immediately.
B. Optimistic Rollups use zero-knowledge proofs; ZK Rollups wait for challenges.
C. Both rollups require a waiting period before finalizing transactions.
D. ZK Rollups do not move any work off the main blockchain.

Solution

  1. Step 1: Understand Optimistic Rollups behavior

    Optimistic Rollups trust transactions are valid initially and allow a challenge period to dispute invalid ones.
  2. Step 2: Understand ZK Rollups behavior

    ZK Rollups generate cryptographic proofs that transactions are valid immediately, so no waiting period is needed.
  3. Final Answer:

    Optimistic Rollups assume transactions are valid until challenged; ZK Rollups use proofs to verify immediately. -> Option A
  4. Quick Check:

    Trust first vs proof first [OK]
Hint: Optimistic trusts first, ZK proves first instantly [OK]
Common Mistakes:
  • Confusing which rollup uses proofs immediately
  • Thinking both rollups have the same waiting period
  • Assuming ZK Rollups do not move work off-chain
2.

Which of the following is the correct syntax to describe a ZK Rollup in a blockchain smart contract comment?

// This rollup uses ______ to verify transactions instantly
easy
A. manual challenges
B. a waiting period
C. optimistic assumptions
D. zero-knowledge proofs

Solution

  1. Step 1: Identify ZK Rollup verification method

    ZK Rollups use zero-knowledge proofs to verify transactions instantly.
  2. Step 2: Match the correct phrase in the comment

    The comment should mention "zero-knowledge proofs" to describe ZK Rollups.
  3. Final Answer:

    zero-knowledge proofs -> Option D
  4. Quick Check:

    ZK Rollups = zero-knowledge proofs [OK]
Hint: ZK means zero-knowledge proofs, not waiting [OK]
Common Mistakes:
  • Choosing 'waiting period' which applies to Optimistic Rollups
  • Confusing optimistic assumptions with ZK proofs
  • Selecting manual challenges which are for Optimistic Rollups
3.

Consider this pseudocode for an Optimistic Rollup transaction verification:

function verifyTransaction(tx) {
  assume tx is valid
  wait 7 days for challenge
  if no challenge then finalize tx
  else revert tx
}

What will happen if a fraudulent transaction is submitted and no one challenges it?

medium
A. The system will generate a zero-knowledge proof to verify it.
B. The transaction will be rejected immediately.
C. The fraudulent transaction will be finalized after 7 days.
D. The transaction will be finalized instantly without waiting.

Solution

  1. Step 1: Analyze the verification logic

    The function assumes transactions are valid and waits 7 days for any challenge.
  2. Step 2: Consider no challenge scenario

    If no challenge occurs within 7 days, the transaction is finalized regardless of validity.
  3. Final Answer:

    The fraudulent transaction will be finalized after 7 days. -> Option C
  4. Quick Check:

    Optimistic waits then finalizes if no challenge [OK]
Hint: No challenge means finalize after wait in Optimistic Rollups [OK]
Common Mistakes:
  • Thinking fraudulent tx is rejected immediately
  • Assuming zero-knowledge proofs are used here
  • Believing finalization is instant without waiting
4.

Identify the bug in this ZK Rollup pseudocode snippet:

function verifyZKProof(proof) {
  if (proof.isValid) {
    finalizeTransaction()
  } else {
    wait 7 days for challenge
  }
}

What is the main issue?

medium
A. finalizeTransaction() should be called only after waiting.
B. ZK Rollups should not wait for challenges; proof validity is immediate.
C. The proof.isValid check is missing a negation operator.
D. The function should always wait 7 days regardless of proof validity.

Solution

  1. Step 1: Understand ZK Rollup verification

    ZK Rollups use immediate proof verification and do not require waiting periods.
  2. Step 2: Analyze the code logic

    The code incorrectly waits 7 days if proof is invalid, which contradicts ZK Rollup design.
  3. Final Answer:

    ZK Rollups should not wait for challenges; proof validity is immediate. -> Option B
  4. Quick Check:

    ZK Rollups = instant proof, no wait [OK]
Hint: ZK proofs mean no waiting, immediate finalize [OK]
Common Mistakes:
  • Thinking waiting is needed for ZK Rollups
  • Misreading proof validity condition
  • Assuming finalizeTransaction requires delay
5.

You want to design a rollup system that minimizes user waiting time but can handle complex computations off-chain. Which rollup type should you choose and why?

hard
A. ZK Rollup, because it provides immediate proof and faster finality.
B. Optimistic Rollup, because it finalizes instantly without proofs.
C. Optimistic Rollup, because it uses zero-knowledge proofs for speed.
D. ZK Rollup, because it waits for challenges before finalizing.

Solution

  1. Step 1: Identify rollup goals

    The goal is to minimize waiting time and handle complex off-chain computations.
  2. Step 2: Compare rollup features

    ZK Rollups provide immediate validity proofs, enabling faster finality without waiting periods, suitable for complex computations.
  3. Final Answer:

    ZK Rollup, because it provides immediate proof and faster finality. -> Option A
  4. Quick Check:

    Minimize wait + complex work = ZK Rollup [OK]
Hint: ZK Rollups = fast finality with proofs, best for complex tasks [OK]
Common Mistakes:
  • Choosing Optimistic Rollup for instant finality incorrectly
  • Confusing which rollup uses zero-knowledge proofs
  • Thinking ZK Rollups wait for challenges