package octez-libs
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
sha256=55ea1fb8bb3273a7fc270ca8f650d45c56449665619482aad9bc12f3ea736b7e
    
    
  sha512=fec850fc2d17d7490bbabd5147d62aad13b3aaed8774270f8a38ab419670ed03e0fd30cf8642a97984eca5c2446726fe590ad99c015f7ec50919dc7652f25053
    
    
  doc/octez-libs.plonk/Plonk/Main_protocol/Make/argument-1-PP/index.html
Parameter Make.PP
module PC : Kzg.Interfaces.Polynomial_commitmentUnderlying polynomial commitment scheme on which the polynomial protocol is based. Input of the functor Polynomial_protocol.Make.
type prover_public_parameters = PC.Public_parameters.proverThe type of prover public parameters.
val prover_public_parameters_t : prover_public_parameters Repr.ttype verifier_public_parameters = PC.Public_parameters.verifierThe type of verifier public parameters.
val verifier_public_parameters_t : verifier_public_parameters Repr.tThe 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:(Kzg.Bls.Srs.t * Kzg.Bls.Srs.t) ->
  prover_public_parameters
  * verifier_public_parameters
  * Kzg.Utils.Transcript.tThe 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 ->
  Kzg.Utils.Transcript.t ->
  n:int ->
  generator:Kzg.Bls.Scalar.t ->
  secrets:
    (Kzg.Bls.Poly.t Plonk.Identities.SMap.t * PC.Commitment.prover_aux) list ->
  eval_points:Identities.eval_point list list ->
  evaluations:Identities.Evaluations.t Plonk.Identities.SMap.t ->
  identities:Identities.prover_identities ->
  nb_of_t_chunks:int ->
  proof * Kzg.Utils.Transcript.tThe 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 ->
  Kzg.Utils.Transcript.t ->
  n:int ->
  generator:Kzg.Bls.Scalar.t ->
  commitments:PC.Commitment.t list ->
  eval_points:Identities.eval_point list list ->
  identities:Identities.verifier_identities ->
  proof ->
  bool * Kzg.Utils.Transcript.tThe 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.