---
title: "Proof malleability"
description: "A valid proof can be transformed into a different valid proof for the same statement."
type: "failure-mode"
url: "https://zkpick.com/audit/failure-modes/proof-malleability/"
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/proof-malleability.json"
---

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

# Proof malleability

A valid proof can be transformed into a different valid proof for the same statement. Any system that treats a proof hash as a unique identifier — for deduplication, nonces or replay protection — breaks.

**Mitigation:** Never treat proof bytes as a unique identifier. Derive uniqueness from constrained in-circuit values such as nullifiers, and canonicalise encodings on deserialisation.
