Pack.Pack_impl
type scalar = Kzg.Bls.Scalar.t
type g1 = Kzg.Bls.G1.t
type g2 = Kzg.Bls.G2.t
type gt = Kzg.Bls.GT.t
val prover_public_parameters_t : prover_public_parameters Repr.t
type verifier_public_parameters = Kzg.Bls.G1.t
val verifier_public_parameters_t : Kzg.Bls.G1.t Repr.t
type data = Kzg.Bls.G1.t
val commitment_t : commitment Repr.t
type randomness = Kzg.Bls.Scalar.t
type packed = Kzg.Bls.G1.t
val packed_t : Kzg.Bls.G1.t Repr.t
type ipa_proof = {
t_Ls : Kzg.Bls.GT.t array;
t_Rs : Kzg.Bls.GT.t array;
r_Ls : Kzg.Bls.G1.t array;
r_Rs : Kzg.Bls.G1.t array;
a0 : Kzg.Bls.G1.t;
t0 : Kzg.Bls.G2.t;
}
val ipa_proof_t : ipa_proof Repr.t
val empty_ipa_proof : int -> ipa_proof
type kzg_proof = Kzg.Bls.G2.t
val kzg_proof_t : Kzg.Bls.G2.t Repr.t
val proof_t : (ipa_proof * Kzg.Bls.G2.t) Repr.t
val hash :
transcript:Kzg.Utils.Transcript.t ->
?g1s:Kzg.Bls.G1.t array list ->
?g2s:Kzg.Bls.G2.t array list ->
?gts:Kzg.Bls.GT.t array list ->
?scalars:Kzg.Bls.Scalar.t array list ->
unit ->
Kzg.Bls.Scalar.t * Kzg__Utils.Transcript.t
val ip_pairing :
Mavryk_bls12_381.G1.t array ->
Mavryk_bls12_381.G2.t array ->
Kzg.Bls.GT.t
val setup_verifier : Kzg.Bls.Srs_g1.t -> Kzg.Bls.Srs_g1.elt
val setup_prover :
int ->
(Kzg.Bls.Srs_g1.t * Kzg.Bls.Srs_g2.t) ->
prover_public_parameters
val setup :
int ->
(Kzg.Bls.Srs_g1.t * Kzg.Bls.Srs_g2.t) ->
prover_public_parameters * Kzg.Bls.Srs_g1.elt
val get_setup_params : prover_public_parameters -> int
val public_parameters_to_bytes : prover_public_parameters -> Stdlib.Bytes.t
val commit :
prover_public_parameters ->
Mavryk_bls12_381.G1.t array ->
commitment
val commitment_cardinal : commitment -> int
val partial_commit :
relevant_positions:Stdlib.Int.t list ->
prover_public_parameters ->
Mavryk_bls12_381.G1.t array ->
commitment
val bytes_of_commitment : commitment -> bytes
val empty_commitment : commitment
val combine : commitment -> commitment -> commitment
val pack : Kzg.Bls.G1.Scalar.t array -> Kzg.Bls.G1.t array -> Kzg.Bls.G1.t
val prove_but_not_pack :
prover_public_parameters ->
Kzg.Utils.Transcript.t ->
Kzg.Bls.Scalar.t ->
Kzg.Bls.G1.t array ->
Kzg.Bls.G1.t ->
(ipa_proof * Kzg.Bls.G2.t) * Kzg__Utils.Transcript.t
val prove_single :
prover_public_parameters ->
Kzg.Utils.Transcript.t ->
Kzg.Bls.Scalar.t ->
Kzg.Bls.G1.t array ->
(Kzg.Bls.G1.t * (ipa_proof * Kzg.Bls.G2.t)) * Kzg__Utils.Transcript.t
val prove :
prover_public_parameters ->
Kzg.Utils.Transcript.t ->
Kzg.Bls.Scalar.t ->
Kzg.Bls.G1.t array list ->
(Kzg.Bls.G1.t list * (ipa_proof * Kzg.Bls.G2.t)) * Kzg__Utils.Transcript.t
val verify_single :
Kzg.Bls.G1.t ->
Kzg.Utils.Transcript.t ->
commitment ->
Kzg.Bls.Scalar.t ->
(Kzg.Bls.G1.t * (ipa_proof * Kzg.Bls.G2.t)) ->
bool * Kzg__Utils.Transcript.t
val verify :
Kzg.Bls.G1.t ->
Kzg.Utils.Transcript.t ->
commitment list ->
Kzg.Bls.Scalar.t ->
(Kzg.Bls.G1.t list * (ipa_proof * Kzg.Bls.G2.t)) ->
bool * Kzg__Utils.Transcript.t