package octez-plonk

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

Parameters

Signature

include sig ... end
type prover_public_parameters = Super_PC.Commitment.prover_public_parameters
val prover_public_parameters_t : Super_PC.Commitment.prover_public_parameters Repr.t
type verifier_public_parameters = Super_PC.Public_parameters.verifier
val verifier_public_parameters_t : Super_PC.Public_parameters.verifier Repr.t
type transcript = Stdlib.Bytes.t
val transcript_t : bytes Repr.t
type proof = {
  1. cm_t : Super_PC.Commitment.t;
  2. pc_proof : Super_PC.proof;
  3. pc_answers : Plonk.Bls.Scalar.t Plonk.SMap.t Plonk.SMap.t list;
}
val proof_t : proof Repr.t
val split_t : int -> Plonk.Bls.Poly.t -> int -> Plonk.Bls.Poly.t Plonk.SMap.t
val compute_t : n:int -> alpha:Plonk.Bls.Scalar.t -> nb_of_t_chunks:int -> Plonk.Bls.Evaluations.t Plonk.SMap.t -> Plonk.Bls.Poly.t Plonk.SMap.t
val setup : setup_params:int -> srs: (Octez_bls12_381_polynomial.Bls12_381_polynomial.Srs.t * Octez_bls12_381_polynomial.Bls12_381_polynomial.Srs.t) -> Super_PC.Commitment.prover_public_parameters * Super_PC.Public_parameters.verifier
val prove : Super_PC.Commitment.prover_public_parameters -> Stdlib.Bytes.t -> n:int -> generator:Plonk.Bls.Scalar.t -> secrets:(Plonk.Bls.Poly.t Plonk.SMap.t * Super_PC.Commitment.prover_aux) list -> eval_points:Plonk.Identities.eval_point list list -> evaluations:'a -> identities:('a -> Plonk.Bls.Evaluations.t Plonk.SMap.t) -> nb_of_t_chunks:int -> proof * Stdlib.Bytes.t
type pp_commit_to_t_r = Plonk.Bls.Evaluations.t Plonk.SMap.t
val pp_commit_to_t_r_t : Plonk.Bls.Evaluations.t Plonk.SMap.t Repr.ty
val verify : Super_PC.Public_parameters.verifier -> Stdlib.Bytes.t -> n:int -> generator:Plonk.Bls.Scalar.t -> commitments:Super_PC.Commitment.t list -> eval_points:Plonk.Identities.eval_point list list -> identities: (Plonk.Bls.Scalar.t -> Plonk.Bls.Scalar.t Plonk.SMap.t Plonk.SMap.t -> Plonk.Bls.Scalar.t Plonk.SMap.t) -> proof -> bool * Stdlib.Bytes.t
module PC = Super_PC
module Answers_commitment = Answers_commitment
type prover_aux = {
  1. answers : Plonk.Bls.Scalar.t SMap.t SMap.t list;
  2. batch : Plonk.Bls.Scalar.t SMap.t list;
  3. alpha : Plonk.Bls.Scalar.t;
  4. x : Plonk.Bls.Scalar.t;
  5. r : Plonk.Bls.Scalar.t;
  6. cms_answers : Answers_commitment.t SMap.t;
  7. t_answers : Plonk.Bls.Scalar.t list;
}
type verifier_aux = {
  1. alpha : Plonk.Bls.Scalar.t;
  2. x : Plonk.Bls.Scalar.t;
  3. r : Plonk.Bls.Scalar.t;
}
val update_transcript_with_answers : bytes -> Answers_commitment.public SMap.t -> Plonk.Bls.Scalar.t list -> bytes
val verify_t : n:int -> x:Plonk.Bls.Scalar.t -> alpha:Plonk.Bls.Scalar.t -> t_answers:Plonk.Bls.Scalar.t list -> ids_batch:(Plonk.Bls.Scalar.t * int) SMap.t -> bool
val update_transcript_with_formatted_answers : bytes -> (Plonk.Bls.Scalar.t array -> Answers_commitment.t) SMap.t -> Plonk.Bls.Scalar.t SMap.t SMap.t list -> Plonk.Bls.Scalar.t list * Answers_commitment.t SMap.t * bytes
val prove_super_aggregation : {PC}1.Commitment.prover_public_parameters -> Stdlib.Bytes.t -> commit_to_answers_map: (Plonk.Bls.Scalar.t array -> Answers_commitment.t) SMap.t -> n:int -> generator:Plonk.Bls.Scalar.t -> secrets:(Plonk.Bls.Poly.t Plonk.SMap.t * {PC}1.Commitment.prover_aux) list -> eval_points:Plonk.Identities.eval_point list list -> evaluations:'a -> identities:('a -> Plonk.Bls.Evaluations.t Plonk.SMap.t) -> nb_of_t_chunks:int -> (proof * prover_aux) * Super_PC.transcript
val verify_super_aggregation : Super_PC.Public_parameters.verifier -> Stdlib.Bytes.t -> n:int -> generator:Plonk.Bls.Scalar.t -> commitments:{PC}1.Commitment.t list -> eval_points:Plonk.Identities.eval_point list list -> s_list:Plonk.Bls.Scalar.t Plonk.SMap.t list -> cms_answers:Answers_commitment.public SMap.t -> t_answers:Plonk.Bls.Scalar.t list -> ids_batch:(Plonk.Bls.Scalar.t * int) SMap.t -> proof -> (bool * verifier_aux) * Super_PC.transcript
OCaml

Innovation. Community. Security.