STAP use-cases: Zero Knowledge

Zero Knowledge Proofs (ZKPs) allow one party – the prover – to prove to another party – the verifier – that a statement is true without disclosing any information beyond the statement’s validity.

ZKPs use arithmetic circuits, which reduce computational problems to algebraic problems involving low-degree polynomials over a finite field. In several ZKP protocols, XOR relations can be proven for free, and the complexity essentially depends on the number of AND gates of the relation to be proven.

This cost metric suggests that ciphers that find a use-case in ZK protocols should desirably minimize their use of non-linear operations while most cryptographically relevant work is performed as linear operations. This design philosophy is related to the fundamental theoretical question of the minimal multiplicative complexity (MC) of certain tasks, which is simply the number of AND gates in a circuit. A lower MC allows for a positive impact on latency and throughput of the ZK evaluation of the cipher. Classical symmetric algorithms become inappropriate in this context, and new cryptographic protocols must then be combined with symmetric primitives whose proposed constructions use non-linear functions whose algebraic representations remain very simple on a large finite field F_q where q is either a large prime integer or a power of 2 greater than 2^128, such as a sparse polynomial of F_q[X].

Applications

ZKPs are used in many different applications, including authentication protocols, digital signatures, electronic voting, and cryptocurrency transactions.

Symmetric primitives

ZK-friendly symmetric primitives are usually classified in 3 types.

Low-degree primitives

The first wave of ZK-friendly primitives aimed at limiting the number of nonlinear operations by relying on inner functions of low degree so that it is trivial to verify the result using low-degree functions.

Primitives

Feistel-MiMC
GMiMC
MiMC
Neptune
Poseidon
Poseidon2

Field size

F_2^n or F_p
F_2^n
F_2^n or F_p
F_p
F_p
F_p

State size

m = 2
any m
m = 1
m even
any m
any m

Equivalence relations

The second type of primitive is based on equivalence relation or design strategies allowing high-degree evaluation and low-degree verification at the same time.

Primitives

Anemoi
Arion
Friday
Grendel
Griffin
Jarvis
Rescue
Rescue-Prime
Rescue-Prime Optimized
Vision

Field size

F_2^n or F_p
F_p
F_2^n
F_p
F_p
F_2^n
F_p
F_p
F_p with p = 2^{64} – 2^{32} + 1
F_2^n

State size

m even
any m
any m
any m
m = 3 or 4m’
m = 1
any m
any m
m = 12 or 16
any m

Look-up tables

The last family corresponds to more recent primitives that use look-up tables.

Primitives

Monolith
Reinforced Concrete
Tip5
Tip4

Field size

F_p with p = 2^{64} – 2^{32} + 1 or 2^{31} – 1
F_p
F_p with p = 2^{64} – 2^{32} + 1
F_p with p = 2^{64} – 2^{32} + 1

State size

m >= 8
m = 3
m = 16
m = 12 or 16

STAP Lounge

The STAP Zoo currently collects information about the following list of STAP primitives used in ZK:

Anemoi
Arion
GMiMC
Grendel
Griffin
MARVELlous designs (Jarvis and Friday)
Marvellous designs (Rescue, Rescue-Prime, Rescue-Prime Optimized, Vision, Vision Mark-32, XHash8 and XHash12)
MiMC
Monolith
Poseidon variants (HadesMiMC, Neptune, Poseidon and Poseidon 2)
Reinforced Concrete
Tip5 variants (Tip5, Tip4 and Tip4′)

ZK-friendly primitives sorted by types
keyboard_arrow_up