# Fraud proofs and validity proofs

One of the core primitives at the center of rollup scaling efforts is proofs. They work by producing a succinct attestation to whether a rollup batch is valid or fraudulent, depending on the type of proof. Along with compressed transaction data, proofs allow rollups to achieve significantly more scale than Ethereum while also inheriting its security. In particular, fraud proofs and validity proofs are used to power rollups.

**Fraud proofs**

Fraud proofs are used to prove that a state transition made by a rollup was fraudulent. A state transition is simply an update to the state, which stores details of transactions, smart contracts, etc. As such, fraud proofs are only needed to assess if fraud took place — only when a rollup submits a batch of transactions that is being disputed. Unless a rollup batch is being disputed, a fraud proof isn’t required to be generated. Fraud proofs are most commonly used in optimistic rollups like Arbitrum — they are optimistic about the validity of the rollup batch.

The assumption of valid transactions increases the probability that an optimistic rollups submits a batch containing a fraudulent state transition. To reduce the probability of the L1 accepting an invalid state transition, a dispute window is needed to allow time for parties to call a dispute if they believe the rollup batch is fraudulent.

A longer dispute window increases the probability the state transition is correct but also increases the time to finality. Which is why it can take seven days to withdraw from an optimistic rollup. If a fraud proof is found correct, the rollup batch contained fraud, then the batch reverts to the previous correct rollup state. This means swaps, transfers, and all interactions in the batch are reverted.

**Validity proofs**

Validity proofs are used to prove that a state transition made by a rollup was valid. Unlike fraud proofs, validity proofs are generated and submitted to L1 with every rollup batch to verify that they are correct. As a result, rollups that use validity proofs don’t require a dispute window, making the transactions final once they are submitted to L1 — no 7-day withdrawal wait.

Although, submitting a validity proof with every rollup reduces efficiency compared to fraud proofs, which only post a proof if the rollup validity is disputed. Validity proofs are most commonly used in zkRollups like zkSync — they are pessimistic about the validity of the rollup transactions.