We want to benchmark:
- hash functions, both on CPU and inside SNARKs
- algebra implementations (fields, elliptic curves, etc)
- circom / Groth16 implementations
- different proof systems
- approaches to lookup tables in SNARKs
- various zkVMs
- etc
Note: Right now, this is very much WIP...
Some examples of relevant hash functions
- Poseidon
- Poseidon2
- Reinforced Concrete
- SHA256
- Keccak256
- Blake2
- Blake3
- Arkworks
- Constantine
- Gnark
- Zikkurat
- mcl
- SnarkJS
- RapidSnark
- Ark-circom
- Gnark
- Bellperson
- Groth16
- PLONK
- Spartan
- Nova
- STARK+FRI
- etc etc
- plookup
- logarithmic derivatives
- cached quotients
- Lasso
- etc (there a lot of variations)
- Cairo (StarkWare)
- Risc0
- MidenVM
- TritonVM
- Lurk (LISP zkVM)
- etc