package tezos-plonk

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
module SMap = Plonk.SMap
module type S = sig ... end
module Make (PP : Polynomial_protocol.S with type PC.Scalar.t = Plompiler.S.t) : S with module PP = PP and type circuit_verifier_input = PP.PC.Scalar.t array list
include sig ... end
module PP : sig ... end
exception Rest_not_null of string
exception Entry_not_in_table of string
module Scalar : sig ... end
type scalar = Scalar.t
val scalar_t : scalar Repr.t
val scalar_encoding : scalar Data_encoding.t
type circuit_map = (Plonk.Circuit.t * int) Plonk.SMap.t
val prover_public_parameters_t : prover_public_parameters Repr.t
val verifier_public_parameters_t : verifier_public_parameters Repr.t
val verifier_public_parameters_encoding : verifier_public_parameters Data_encoding.t
val proof_t : proof Repr.t
val proof_encoding : proof Data_encoding.t
type circuit_prover_input = Make(Polynomial_protocol).circuit_prover_input = {
  1. public : scalar array;
  2. witness : scalar array;
}
type prover_inputs = circuit_prover_input list Plonk.SMap.t
type circuit_verifier_input = Polynomial_protocol.PC.Scalar.t array list
type verifier_inputs = circuit_verifier_input Plonk.SMap.t
val to_verifier_inputs : prover_inputs -> verifier_inputs
val setup : zero_knowledge:bool -> circuit_map -> srs:(Bls12_381_polynomial.Srs.t * Bls12_381_polynomial.Srs.t) -> prover_public_parameters * verifier_public_parameters
val update_prover_public_parameters : Stdlib.Bytes.t -> prover_public_parameters -> prover_public_parameters
val update_verifier_public_parameters : Stdlib.Bytes.t -> verifier_public_parameters -> verifier_public_parameters
val verify : verifier_public_parameters -> inputs:verifier_inputs -> proof -> bool
module Internal_for_tests : sig ... end
module Gates : sig ... end
module Perm : sig ... end
val get_gen_n_t : prover_public_parameters -> scalar * int * int
type prover_aux = Make(Polynomial_protocol).prover_aux = {
  1. answers : scalar SMap.t SMap.t list;
  2. batch : scalar SMap.t list;
  3. alpha : scalar;
  4. beta : scalar;
  5. gamma : scalar;
  6. delta : scalar;
  7. x : scalar;
  8. r : scalar;
  9. cm_answers : scalar;
  10. cm_pi : scalar;
}
type verifier_aux = Make(Polynomial_protocol).verifier_aux = {
  1. alpha : scalar;
  2. beta : scalar;
  3. gamma : scalar;
  4. delta : scalar;
  5. x : scalar;
  6. r : scalar;
}
val prove_list : prover_public_parameters -> inputs:prover_inputs -> proof * prover_aux
val verify_list : verifier_public_parameters -> nb_proofs:int -> (proof * scalar SMap.t list * scalar * scalar) -> bool * verifier_aux
OCaml

Innovation. Community. Security.