# High-level Overview of Nova

The Fundamentals of Nova and Incrementally Verifiable Computation

Nova is another technique for Incrementally Verifiable Computation (IVC) that uses a cryptographic primitive called a Folding scheme. In simple terms, it is a proving system that uses Folding schemes and KZG polynomial commitments to achieve IVC, which allows proving that a function πΉ was repeatedly applied to some initial state π§, producing a sequence of states π§, πΉ(π§), πΉ(πΉ(π§)), etc.

This section will provide a high-level description of the Nova technique and how it works.

### Incrementally Verifiable Computation (IVC)

To understand Nova better, it is essential to understand IVC. IVC is a technique that allows proving that a function was repeatedly applied to some initial state, producing a sequence of states. The primary goal of IVC is to combine two cases of a given NP problem into one case.

## How Nova Works

If πΈ is the zero vector and π’ = 1, then we have π΄π§ Γ π΅π§ = πΆπ§. Namely, any R1CS can also be seen as a relaxed R1CS. Relaxed R1CS keeps the property that it is NP-complete, which means that we can change any NP problem to it. We want the folding scheme to combine two cases of R1CS with the same matrices π΄, π΅, πΆ into one case. Each R1CS has its own instance-witness pairs (that is, public and private data), π§π = (π€π , π₯π), and we want to make a new π§ = (π€, π₯) that meets the R1CS system of equations with π΄, π΅, πΆ, such that this also means that each π§π = (π€π , π₯π) does so. One way to do this is by having the verifier pick a random π and do the following change:

This change would work for linear systems of equations, however since the R1CS is nonlinear, we cannot use this simple method. If we put this into the R1CS then we have the following:

In the relaxed R1CS, the error term πΈ will take all the cross-terms made by adding the linear combination, and π’ will take the extra π term on the right-hand side. To do this,

and both π’, πΈ are added to the instance-witness pair.

The main problem is that the prover has to send the witnesses π€1, π€2 to the verifier so that he can calculate πΈ. To do this, we see both πΈ and π€ as witnesses and hide them using polynomial commitment schemes.

Last updated