package tezos-plonk

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

Extension of the KZG_pack implementation with additional types and functions used in by Distributed_prover

Parameters

Signature

module BasePC : sig ... end
module Commitment : sig ... end
include module type of BasePC with module Commitment := Commitment
module Scalar : sig ... end
module Fr_generation : sig ... end
module Polynomial : sig ... end
module Domain : sig ... end
module Poly : sig ... end
module Scalar_map : sig ... end
type secret = PC.secret
type query = PC.query
val query_t : PC.query Repr.t
type answer = PC.answer
val answer_t : PC.answer Repr.t
type transcript = PC.transcript
module Public_parameters : sig ... end
type proof = {
  1. pc_proof : PC.proof;
  2. packed_values : Pack.packed list;
  3. pack_proof : Pack.proof;
}
val proof_t : proof Repr.t
type prover_aux = {
  1. r : Scalar.t;
  2. s_list : Scalar.t Plonk.SMap.t list;
  3. cm_answers : Scalar.t;
}
val expand_with_proof : proof -> bytes -> bytes
val expand_with_query : PC.query list -> bytes -> bytes
val expand_with_answer : PC.answer list -> bytes -> bytes
val batch_p : zero:'a -> add:('a -> 'b -> 'a) -> mul:(Scalar.t -> 'c -> 'b) -> Scalar.t -> 'c Plonk.SMap.t -> 'a
val batch : zero:'a -> add:('a -> 'b -> 'a) -> mul:(Scalar.t -> 'c -> 'b) -> Scalar.t -> 'c Plonk.SMap.t -> 'a
val batch_polys : Poly.scalar -> Poly.t Plonk.SMap.t -> Poly.t
val evaluate : PC.secret -> PC.query -> PC.answer
val poseidon : Scalar.t array -> Scalar.t
val poseidon_answers : Scalar.t Plonk.SMap.t Plonk.SMap.t list -> Scalar.t
val prove : Public_parameters.prover -> bytes -> Poly.t Plonk.SMap.t list -> Commitment.prover_aux list -> PC.query list -> Scalar.t Plonk.SMap.t Plonk.SMap.t list -> proof * bytes
val prove_super_aggregation : Public_parameters.prover -> bytes -> Poly.t Plonk.SMap.t list -> Commitment.prover_aux list -> PC.query list -> Scalar.t Plonk.SMap.t Plonk.SMap.t list -> (proof * prover_aux) * bytes
val verify : Public_parameters.verifier -> bytes -> Pack.commitment list -> PC.query list -> Scalar.t Plonk.SMap.t Plonk.SMap.t list -> proof -> bool * bytes
val verify_super_aggregation : Public_parameters.verifier -> bytes -> Pack.commitment list -> PC.query list -> PC.Scalar.t Plonk.SMap.t Plonk.List.t -> Scalar.t -> proof -> bool * Fr_generation.scalar * bytes
type worker_msg = Scalar.t * string list list
val worker_msg_t : (Scalar.t * string list list) Repr.t
type main_prover_msg = Poly.t list * Commitment.prover_aux list
val main_prover_msg_t : (Poly.t list * (PC.Commitment.t * PC.Commitment.prover_aux) list) Repr.t
type main_prover_state = Public_parameters.prover * transcript * Scalar.t * query list * Scalar.t SMap.t list * main_prover_msg
val merge_answers : answer list -> answer
val distributed_prove_worker : Poly.t SMap.t list -> 'a -> (Scalar.t * string list list) -> Poly.t list * 'b
val distributed_prove_main1 : Public_parameters.prover -> bytes -> PC.query list -> Scalar.t SMap.t SMap.t list -> Poly.t SMap.t list -> 'a -> (Fr_generation.scalar * SMap.key list list) * (Public_parameters.prover * Stdlib.Bytes.t * Fr_generation.scalar * PC.query list * Scalar.t Plonk.SMap.t list * (Poly.t list * 'b))