package octez-plonk

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Functor building an implementation of a polynomial protocol given a polynomial commitment scheme PC.

Parameters

Signature

module PC = PC
type prover_public_parameters = PC.Public_parameters.prover
val prover_public_parameters_t : PC.Public_parameters.prover Repr.t
type verifier_public_parameters = PC.Public_parameters.verifier
val verifier_public_parameters_t : PC.Public_parameters.verifier Repr.t
type transcript = Stdlib.Bytes.t
val transcript_t : bytes Repr.t
type proof = {
  1. cm_t : PC.Commitment.t;
  2. pc_proof : PC.proof;
  3. pc_answers : PC.answer list;
}
val proof_t : proof Repr.t
val split_t : int -> Plonk.Bls.Poly.t -> int -> Plonk.Bls.Poly.t SMap.t

split_t n t nb_of_t_chunks splits t polynomial in nb_of_t_chunks polynomials of at most n coefficients (and at most degree n-1), except the last one that may have more coeffictients depending on t’s degree

val compute_t : n:int -> alpha:Plonk.Bls.Scalar.t -> nb_of_t_chunks:int -> Bls.Evaluations.t SMap.t -> Plonk.Bls.Poly.t SMap.t
val eval_and_batch_ids : (Plonk.Bls.Scalar.t * 'a) -> 'b SMap.t SMap.t list -> ('a -> 'b SMap.t SMap.t -> Plonk.Bls.Scalar.t SMap.t) -> Plonk.Bls.Scalar.t
val verify_t : int -> Plonk.Bls.Scalar.t -> Plonk.Bls.Scalar.t -> Plonk.Bls.Scalar.t list -> bool
val setup : setup_params:PC.Public_parameters.setup_params -> srs: (Octez_bls12_381_polynomial.Bls12_381_polynomial.Srs.t * Octez_bls12_381_polynomial.Bls12_381_polynomial.Srs.t) -> PC.Public_parameters.prover * PC.Public_parameters.verifier
val prove_aux : PC.Commitment.prover_public_parameters -> Stdlib.Bytes.t -> int -> Plonk.Bls.Scalar.t -> (Plonk.Bls.Poly.t SMap.t * PC.Commitment.prover_aux) list -> Identities.eval_point list list -> 'a -> ('a -> Bls.Evaluations.t SMap.t) -> int -> (Plonk.Bls.Scalar.t * Plonk.Bls.Scalar.t * PC.answer list * PC.Commitment.t) * Plonk.Bls.Poly.t SMap.t list * PC.Commitment.prover_aux list * Plonk.Bls.Scalar.t SMap.t list * Stdlib.Bytes.t
val prove : PC.Commitment.prover_public_parameters -> Stdlib.Bytes.t -> 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:'a -> identities:('a -> Bls.Evaluations.t SMap.t) -> nb_of_t_chunks:int -> proof * PC.transcript
type pp_commit_to_t_r = Bls.Evaluations.t SMap.t
val pp_commit_to_t_r_t : Bls.Evaluations.t SMap.t Repr.ty
val verify_aux : Stdlib.Bytes.t -> Plonk.Bls.Scalar.t -> PC.Commitment.t list -> Identities.eval_point list list -> proof -> Plonk.Bls.Scalar.t * Plonk.Bls.Scalar.t * Stdlib.Bytes.t * PC.Commitment.t list * Plonk.Bls.Scalar.t SMap.t list
val verify : PC.Public_parameters.verifier -> Stdlib.Bytes.t -> n:int -> generator:Plonk.Bls.Scalar.t -> commitments:PC.Commitment.t list -> eval_points:Identities.eval_point list list -> identities: (Plonk.Bls.Scalar.t -> Plonk.Bls.Scalar.t SMap.t SMap.t -> Plonk.Bls.Scalar.t SMap.t) -> proof -> bool * PC.transcript
OCaml

Innovation. Community. Security.