How it works

NEBRA UPA 1.0 aggregates Groth16 proofs (more proof system to be supported in 2.0) from different sources. After a certain number of proofs (our current batch size is 40) from different parties have been submitted to our address (see Deployments), our off-chain prover network will generate an aggregated proof πagg\pi_{agg}. This aggregated proof effectively states that all the proofs in this batch have been verified. By only verifying aggregated proofs on-chain, the verification cost of each proof is amortized, bringing up to 10x gas savings (see Gas costs for details).

The workflow of a blockchain application powered by zero-knowledge proof using NEBRA is as follows:

  1. Register your verification key with NEBRA UPA. This will give you a circuitId (see Registering applications)

  2. Submit your proof to NEBRA UPA together with the public input associated with the proof

  3. Wait for the event indicating that the proof is verified. After this event, application can query isVerified function to execute the application logic

  4. Verified (or rejected) proofs can be viewed at NEBRA proof explorer:

Last updated