package tezos-plonk

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
module PC : sig ... end
module Evaluations : sig ... end
type prover_public_parameters = PC.Public_parameters.prover
val prover_public_parameters_t : prover_public_parameters Repr.t
type verifier_public_parameters = PC.Public_parameters.verifier
val verifier_public_parameters_t : verifier_public_parameters Repr.t
type transcript = PC.transcript
val transcript_t : transcript Repr.t
type proof = Polynomial_protocol.proof = {
  1. cm_t : PC.Commitment.t;
  2. pc_proof : PC.proof;
  3. pc_answers : PC.answer list;
}
val proof_t : proof Repr.t
type eval_point = Polynomial_protocol.eval_point =
  1. | X
  2. | GX
  3. | Custom of string * PC.Scalar.t -> PC.Scalar.t
val convert_eval_points : generator:PC.Scalar.t -> x:PC.Scalar.t -> eval_point list -> PC.Scalar.t Plonk.SMap.t
val get_answer : PC.answer -> eval_point -> string -> PC.Scalar.t
val merge_prover_identities : prover_identities list -> prover_identities
val merge_verifier_identities : verifier_identities list -> verifier_identities
val compute_t : n:int -> alpha:PC.Scalar.t -> nb_of_t_chunks:int -> Evaluations.t Plonk.SMap.t -> Evaluations.polynomial Plonk.SMap.t
val setup : setup_params:PC.Public_parameters.setup_params -> srs:(Bls12_381_polynomial.Srs.t * Bls12_381_polynomial.Srs.t) -> prover_public_parameters * verifier_public_parameters
val prove : prover_public_parameters -> transcript -> n:int -> generator:PC.Scalar.t -> secrets: (PC.Polynomial.Polynomial.t Plonk.SMap.t * PC.Commitment.prover_aux) list -> eval_points:eval_point list list -> evaluations:Evaluations.t Plonk.SMap.t -> identities:prover_identities -> nb_of_t_chunks:int -> proof * transcript
val verify : verifier_public_parameters -> transcript -> n:int -> generator:PC.Scalar.t -> commitments:PC.Commitment.t list -> eval_points:eval_point list list -> ?non_committed:non_committed -> identities:verifier_identities -> proof -> bool * transcript
type prover_aux = Polynomial_protocol.prover_aux = {
  1. answers : PC.Scalar.t Plonk.SMap.t Plonk.SMap.t list;
  2. batch : PC.Scalar.t Plonk.SMap.t list;
  3. alpha : PC.Scalar.t;
  4. x : PC.Scalar.t;
  5. r : PC.Scalar.t;
  6. cm_answers : PC.Scalar.t;
}
type verifier_aux = Polynomial_protocol.verifier_aux = {
  1. alpha : PC.Scalar.t;
  2. x : PC.Scalar.t;
  3. r : PC.Scalar.t;
}
val poseidon : PC.Scalar.t array -> PC.Scalar.t
val prove_super_aggregation : prover_public_parameters -> transcript -> n:int -> generator:PC.Scalar.t -> secrets: (PC.Polynomial.Polynomial.t Plonk.SMap.t * PC.Commitment.prover_aux) list -> eval_points:eval_point list list -> evaluations:Evaluations.t Plonk.SMap.t -> identities:prover_identities -> nb_of_t_chunks:int -> (proof * prover_aux) * transcript
val verify_super_aggregation : verifier_public_parameters -> transcript -> n:int -> generator:PC.Scalar.t -> commitments:PC.Commitment.t list -> eval_points:eval_point list list -> s_list:PC.Scalar.t Plonk.SMap.t list -> cm_answers:PC.Scalar.t -> proof -> (bool * verifier_aux) * PC.transcript
OCaml

Innovation. Community. Security.