Cut-and-Choose is a general strategy for achieving ZK, which works by having the prover cut the statement into multiple parts and then having the verifier choose one of those parts to reveal.
The "Cut-and-Choose" naming
The naming in inspired by the famous “fair cake-cutting protocol” in which one person cuts the cake, then the other person chooses which half to get.
Intuition
A Cut-and-Choose protocol generally follows these ideas:
Splitting the statement into parts
The prover splits the statement and witness into multiple parts , such that
- Just seeing any one part’s witness does not reveal anything about the actual witness .
- All parts together reveal the witness
- If we don’t care about Proof of Knowledge, it’s sufficient to say that it’s difficult to reveal all parts if .
Info
The first property will enable Zero Knowledge: a protocol transcript will only contain a single . The second property will enable Proof of Knowledge: the extractor can get multiple through Rewinding.
The protocol
The protocol then works as follows.
- The prover splits into .
- The prover sends the split statements .
- The verifier chooses a random index .
- The prover reveals .
- The verifier checks that
- is a valid split of (details depend on the protocol)
- is a valid witness for .
Notation
For , we often zero-base the names of the split so that the challenge is a bit and points to the part to open.
Challenge space
Because the challenge space is small for Cut-and-Choose protocols, the soundness error is large. Cut-and-Choose protocols generally have to be repeated multiple times in order to bring the soundness error down to acceptable levels.
Protocols that follow this idea
”Pure” Cut-and-Choose
- Quadratic Residue Protocol
- Splits ” is a square root of ” into (0) ” is a square root of ” and (1) ” is a square root of ” for a random .
-
- Graph Isomorphism Protocol
- Splits ” is an isomorphism between and ” into (0) ” is an isomorphism between and ” and (1) ” is an isomorphism between and ” for some random permutation .
- Graph Isomorphism Protocol
Using commitments for the split
(sometimes called “Commit-and-Prove”)
- 3-Colorable Protocol
- Splits ” is a valid 3-coloration for ” into ” assigns the nodes different colors” for each edge .
- Stern-like ZK
- Class of protocols for ZK proofs for Lattice problems with applications to post-quantum secure protocols, e.g. KTX identification scheme.
- MPC in the Head
- Splits the statement into pairs of views of participants of an MPC protocol that verifies that statement.
Resources
- Basic protocols: Lecture (slides)
- https://doi.org/10.1016/0022-0000(88)90005-0 coins the “Cut-and-Choose” terminology.