# Why is Mina so tasty ? part 1 : Kimchi

This post explores the zero knowledge proof system that Mina uses to create zkSNARKS, I do assume some knowledge of zero knowledge proofs, if this area is new to you, please read some of our introductory articles such as

A gentle introduction to zero knowledge proofs, or our guide to using Zokrates. I have tried to explain the concepts here with using mathematical formulae.

Mina have a proof system that creates recursive proofs called Pickles, which relies on a protocol called Kimchi to produce the proofs, it is Kimchi that we will look at in this post.

For their proving systems Mina has built upon a family of protocols such as PLONK, SONIC and Marlin which have ‘knowledge of exponent’ as an underlying cryptographic assumption.

Cryptographic assumptions

Most cryptographic systems rely on a security assumption, that is something that is thought to be unfeasible in practice, such as finding a hash collision, or the discrete log in a group. For the family of proof systems that PLONK belongs to, we rely on the knowledge of exponent assumption.

These protocols have improved upon earlier protocols such as Groth16 to give improved performance (though not in all aspects as we shall see) and more flexibility around making changes to the system after the trusted setup has been completed. Let’s start by looking at PLONK.