Zero-Knowledge Rollup (ZK-Rollup)

ZK-Rollups are Layer-2 scaling solutions that bundle multiple transactions into a single transaction, using zero-knowledge proofs to validate their correctness on the main chain.

ZK-Rollups enhance blockchain scalability by processing transactions off-chain and then submitting a validity proof to the mainnet. This proof confirms the integrity of the off-chain transactions without revealing the underlying data. This approach significantly reduces the computational load on the main chain, leading to higher throughput and lower transaction fees for users. The use of zero-knowledge proofs ensures that the state transitions are valid, maintaining the security of the underlying blockchain.

ZK-Rollups offer a significant advantage in terms of scalability and efficiency compared to other Layer-2 solutions. They leverage cryptographic proofs to verify the validity of transactions, allowing for faster transaction times and reduced costs. The core principle involves bundling multiple transactions into a single batch, generating a succinct proof, and then submitting this proof to the mainnet. This method allows the mainnet to quickly verify the validity of the batch without re-executing all the transactions.

        graph LR
  Center["Zero-Knowledge Rollup (ZK-Rollup)"]:::main
  Pre_zero_knowledge_proof["zero-knowledge-proof"]:::pre --> Center
  click Pre_zero_knowledge_proof "/terms/zero-knowledge-proof"
  Rel_optimistic_rollup["optimistic-rollup"]:::related -.-> Center
  click Rel_optimistic_rollup "/terms/optimistic-rollup"
  Rel_validium["validium"]:::related -.-> Center
  click Rel_validium "/terms/validium"
  Rel_data_availability["data-availability"]:::related -.-> Center
  click Rel_data_availability "/terms/data-availability"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 Explain Like I'm 5

Imagine a busy cashier (the main [blockchain](/en/terms/blockchain)) who can only serve one person at a time. A ZK-Rollup is like a helper who takes 100 people's orders, checks them all quickly, and then gives the cashier just one single, verified list of all the orders, making the cashier much faster!

🤓 Expert Deep Dive

ZK-Rollups leverage succinct non-interactive arguments of knowledge (SNARKs or STARKs) to compress transaction data and provide cryptographic validity. The process typically involves an operator (sequencer) collecting transactions, executing them off-chain, generating state transitions, and constructing a validity proof. This proof attests to the correctness of the state transition function applied to the batch of transactions. The Layer-1 contract verifies this proof, which is computationally cheaper than re-executing all transactions. State updates are managed via state roots stored on-chain. Data availability is a critical component; ensuring that the transaction data (or at least its compressed representation) is available off-chain (e.g., via data availability committees or posting compressed data to Layer-1 calldata) is crucial for users to reconstruct the state and exit the rollup if the operator misbehaves. Different ZK-Rollup designs vary in their proof systems (SNARK vs. STARK), data availability strategies, and mechanisms for handling withdrawals and potential operator failures.

🔗 Related Terms

Prerequisites:

📚 Sources