package tezos-plonk

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
include module type of struct include Plonk.Bls end
module type Scalar_sig = Plonk.Bls.Scalar_sig
module Scalar = Plonk.Bls.Scalar
module G1 = Plonk.Bls.G1
module G2 = Plonk.Bls.G2
module GT = Plonk.Bls.GT
module Pairing = Plonk.Bls.Pairing
module Fr_generation : sig ... end
type scalar = Scalar.t
type g1 = G1.t
type g2 = G2.t
type gt = GT.t
type prover_public_parameters = {
  1. length : int;
  2. srs2_t : G2.t array;
  3. g1_t : G1.t;
}
val prover_public_parameters_t : prover_public_parameters Repr.t
type verifier_public_parameters = G1.t
val verifier_public_parameters_t : G1.t Repr.t
type data = G1.t
type commitment = {
  1. cmt_t : GT.t;
  2. cmt_len : int;
}
val commitment_t : commitment Repr.t
type randomness = Scalar.t
type packed = G1.t
val packed_t : G1.t Repr.t
type ipa_proof = {
  1. t_Ls : GT.t array;
  2. t_Rs : GT.t array;
  3. r_Ls : G1.t array;
  4. r_Rs : G1.t array;
  5. a0 : G1.t;
  6. t0 : G2.t;
}
val ipa_proof_t : ipa_proof Repr.t
val empty_ipa_proof : int -> ipa_proof
type kzg_proof = G2.t
val kzg_proof_t : G2.t Repr.t
type proof = ipa_proof * kzg_proof
val proof_t : (ipa_proof * G2.t) Repr.t
type transcript = Bytes.t
type setup_params = int
val powers : one:'a -> mul:('a -> 'b -> 'a) -> int -> 'b -> 'a array
val hash : transcript:bytes -> random:(?state:Random.State.t -> unit -> 'a) -> ?g1s:G1.t array list -> ?g2s:G2.t array list -> ?gts:GT.t array list -> ?scalars:Scalar.t array list -> unit -> 'a * bytes
val ip_pairing : Bls12_381.G1.t array -> Bls12_381.G2.t array -> GT.t
val setup_verifier : Srs_g1.t -> Srs_g1.elt
val setup_prover : int -> (Srs_g1.t * Srs_g2.t) -> prover_public_parameters
val get_setup_params : prover_public_parameters -> int
val public_parameters_to_bytes : prover_public_parameters -> Bytes.t
val commitment_cardinal : commitment -> int
val partial_commit : relevant_positions:Int.t list -> prover_public_parameters -> Bls12_381.G1.t array -> commitment
val bytes_of_commitment : commitment -> bytes
val empty_commitment : commitment
val combine : commitment -> commitment -> commitment
val pack : G1.Scalar.t array -> G1.t array -> G1.t
val array_split_in_half : 'a array -> 'a array * 'a array
val array_padded_with_zero : 'a array -> int -> 'a -> 'a array
val prove_but_not_pack : prover_public_parameters -> bytes -> Scalar.t -> G1.t array -> G1.t -> (ipa_proof * G2.t) * bytes
val prove_single : prover_public_parameters -> bytes -> Scalar.t -> G1.t array -> (G1.t * (ipa_proof * G2.t)) * bytes
val prove : prover_public_parameters -> bytes -> Scalar.t -> G1.t array list -> (G1.t list * (ipa_proof * G2.t)) * bytes
val verify_single : G1.t -> bytes -> commitment -> Scalar.t -> (G1.t * (ipa_proof * G2.t)) -> bool * bytes
val verify : G1.t -> bytes -> commitment list -> Scalar.t -> (G1.t list * (ipa_proof * G2.t)) -> bool * bytes
OCaml

Innovation. Community. Security.