---
title: "Missing nullifier or replay protection"
description: "A valid proof can be submitted more than once, or across chains, contracts or epochs, because nothing binds it to a single use."
type: "failure-mode"
url: "https://zkpick.com/audit/failure-modes/missing-nullifier-or-replay-protection/"
section: "03 Auditing a ZK protocol"
authors:
  - "MarketComp"
publisher: "MarketComp"
version: "1.3"
updated: "2026-09-12"
license: "CC-BY-4.0"
json: "https://zkpick.com/data/audit/failure-modes/missing-nullifier-or-replay-protection.json"
---

*By MarketComp. Updated 2026-09-12. Version 1.3. CC BY 4.0.*

# Missing nullifier or replay protection

A valid proof can be submitted more than once, or across chains, contracts or epochs, because nothing binds it to a single use. Nullifier derivation may also be malleable, allowing distinct nullifiers for the same underlying secret.

**Mitigation:** Bind proofs to a domain, a chain identifier and a spending context; constrain nullifier derivation to be deterministic and collision-resistant in the circuit; check the nullifier set atomically with the state change.
