Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Setup ¶
func Setup(ccs constraint.ConstraintSystem) (ProvingKey, VerifyingKey, error)
Setup prepares the public data associated to a circuit + public inputs.
func Verify ¶
func Verify(proof Proof, vk VerifyingKey, publicWitness witness.Witness, opts ...backend.VerifierOption) error
Verify verifies a PLONK proof, from the proof, preprocessed public data, and public witness.
Types ¶
type Proof ¶
type Proof interface { }
Proof represents a Plonk proof generated by plonk.Prove
it's underlying implementation is curve specific (see gnark/internal/backend)
func Prove ¶
func Prove(ccs constraint.ConstraintSystem, pk ProvingKey, fullWitness witness.Witness, opts ...backend.ProverOption) (Proof, error)
Prove generates PLONK proof from a circuit, associated preprocessed public data, and the witness if the force flag is set:
will executes all the prover computations, even if the witness is invalid will produce an invalid proof internally, the solution vector to the SparseR1CS will be filled with random values which may impact benchmarking
type ProvingKey ¶
type ProvingKey interface { // io.WriterTo // io.ReaderFrom VerifyingKey() interface{} }
ProvingKey represents a plonk ProvingKey
it's underlying implementation is strongly typed with the curve (see gnark/internal/backend)
type VerifyingKey ¶
type VerifyingKey interface { // io.WriterTo // io.ReaderFrom // InitKZG(srs kzg.SRS) error NbPublicWitness() int // number of elements expected in the public witness }
VerifyingKey represents a plonk VerifyingKey
it's underlying implementation is strongly typed with the curve (see gnark/internal/backend)