package octez-libs
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=dbc3b675aee59c2c574e5d0a771193a2ecfca31e7a5bc5aed66598080596ce1c
sha512=b97ed762b9d24744305c358af0d20f394376b64bfdd758dd4a81775326caf445caa57c4f6445da3dd6468ff492de18e4c14af6f374dfcbb7e4d64b7b720e5e2a
doc/octez-libs.plonk/Plonk/Polynomial_protocol/Make/index.html
Module Polynomial_protocol.MakeSource
Parameters
module PC : Polynomial_commitment.SSignature
module PC = PCUnderlying polynomial commitment scheme on which the polynomial protocol is based. Input of the functor Polynomial_protocol.Make.
The type of prover public parameters.
The type of verifier public parameters.
The type for transcripts, used for applying the Fiat-Shamir heuristic
The type for proofs, containing a commitment to the polynomial T that asserts the satisfiability of the identities over the subset of interest, as well as a PC proof and a list of PC answers.
val setup :
setup_params:PC.Public_parameters.setup_params ->
srs:(Octez_bls12_381_polynomial.Srs.t * Octez_bls12_381_polynomial.Srs.t) ->
prover_public_parameters * verifier_public_parametersThe polynomial commitment setup function, requires a labeled argument of setup parameters for the underlying PC and a labeled argument containing the path location of a set of SRS files.
val prove :
prover_public_parameters ->
transcript ->
n:int ->
generator:Plonk.Bls.Scalar.t ->
secrets:(Plonk.Bls.Poly.t SMap.t * PC.Commitment.prover_aux) list ->
eval_points:Identities.eval_point list list ->
evaluations:Bls.Evaluations.t SMap.t ->
identities:Identities.prover_identities ->
nb_of_t_chunks:int ->
proof * transcriptThe prover function. Takes as input the prover_public_parameters, an initial transcript (possibly including a context if this prove is used as a building block of a bigger protocol), the size n of subgroup H, the canonical generator of subgroup H, a list of secrets including polynomials that have supposedly been committed (and a verifier received such commitments) as well as prover auxiliary information generated during the committing process, a list of evaluation point lists specifying the evaluation points where each secret needs to be evaluated at, a map of the above-mentioned polynomials this time in FFT evaluations form, for efficient polynomial multiplication, and some prover_identities that are supposedly satisfied by the secret polynomials. Outputs a proof and an updated transcript.
val verify :
verifier_public_parameters ->
transcript ->
n:int ->
generator:Plonk.Bls.Scalar.t ->
commitments:PC.Commitment.t list ->
eval_points:Identities.eval_point list list ->
identities:Identities.verifier_identities ->
proof ->
bool * transcriptThe verifier function. Takes as input the verifier_public_parameters, an initial transcript (that should coincide with the initial transcript used by prove), the size n of subgroup H, the canonical generator of subgroup H, a list of commitments to the secret polynomials by the prover, a list of evaluation points as in prove, some verifier_identities, and a proof. Outputs a bool value representing acceptance or rejection.