Rollups (Optimistic vs ZK) in Blockchain / Solidity - Hands-On Comparison
Start learning this pattern below
Jump into concepts and practice - no test required
rollup_speeds with these exact entries: 'Optimistic': 200, 'ZK': 1500, 'Other': 100Use curly braces {} to create a dictionary with keys and values separated by colons.
min_speed and set it to 300 to filter rollups with speeds at least this valueJust assign the number 300 to the variable min_speed.
fast_rollups that includes only rollups from rollup_speeds with speeds greater than or equal to min_speed. Use for name, speed in rollup_speeds.items() in your comprehension.Use dictionary comprehension syntax: {key: value for key, value in dict.items() if condition}
fast_rollups dictionaryUse print(fast_rollups) to show the filtered dictionary.
Practice
What is the main difference between Optimistic Rollups and ZK Rollups?
Solution
Step 1: Understand Optimistic Rollups behavior
Optimistic Rollups trust transactions are valid initially and allow a challenge period to dispute invalid ones.Step 2: Understand ZK Rollups behavior
ZK Rollups generate cryptographic proofs that transactions are valid immediately, so no waiting period is needed.Final Answer:
Optimistic Rollups assume transactions are valid until challenged; ZK Rollups use proofs to verify immediately. -> Option AQuick Check:
Trust first vs proof first [OK]
- Confusing which rollup uses proofs immediately
- Thinking both rollups have the same waiting period
- Assuming ZK Rollups do not move work off-chain
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 instantlySolution
Step 1: Identify ZK Rollup verification method
ZK Rollups use zero-knowledge proofs to verify transactions instantly.Step 2: Match the correct phrase in the comment
The comment should mention "zero-knowledge proofs" to describe ZK Rollups.Final Answer:
zero-knowledge proofs -> Option DQuick Check:
ZK Rollups = zero-knowledge proofs [OK]
- Choosing 'waiting period' which applies to Optimistic Rollups
- Confusing optimistic assumptions with ZK proofs
- Selecting manual challenges which are for Optimistic Rollups
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?
Solution
Step 1: Analyze the verification logic
The function assumes transactions are valid and waits 7 days for any challenge.Step 2: Consider no challenge scenario
If no challenge occurs within 7 days, the transaction is finalized regardless of validity.Final Answer:
The fraudulent transaction will be finalized after 7 days. -> Option CQuick Check:
Optimistic waits then finalizes if no challenge [OK]
- Thinking fraudulent tx is rejected immediately
- Assuming zero-knowledge proofs are used here
- Believing finalization is instant without waiting
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?
Solution
Step 1: Understand ZK Rollup verification
ZK Rollups use immediate proof verification and do not require waiting periods.Step 2: Analyze the code logic
The code incorrectly waits 7 days if proof is invalid, which contradicts ZK Rollup design.Final Answer:
ZK Rollups should not wait for challenges; proof validity is immediate. -> Option BQuick Check:
ZK Rollups = instant proof, no wait [OK]
- Thinking waiting is needed for ZK Rollups
- Misreading proof validity condition
- Assuming finalizeTransaction requires delay
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?
Solution
Step 1: Identify rollup goals
The goal is to minimize waiting time and handle complex off-chain computations.Step 2: Compare rollup features
ZK Rollups provide immediate validity proofs, enabling faster finality without waiting periods, suitable for complex computations.Final Answer:
ZK Rollup, because it provides immediate proof and faster finality. -> Option AQuick Check:
Minimize wait + complex work = ZK Rollup [OK]
- Choosing Optimistic Rollup for instant finality incorrectly
- Confusing which rollup uses zero-knowledge proofs
- Thinking ZK Rollups wait for challenges
