Polynomial_commitment.Kzg_impl
Extension of the KZG implementation with additional types and functions used in by Distributed_prover
module BasePC = Kzg.Polynomial_commitment
include module type of struct include BasePC end
module Commit = BasePC.Commit
module Commitment = BasePC.Commitment
module Public_parameters = BasePC.Public_parameters
type secret = Commitment.secret
type query = Kzg.Bls.Scalar.t Kzg.SMap.t
val query_t : Kzg.Bls.Scalar.t Kzg.SMap.t Repr.ty
type answer = Kzg.Bls.Scalar.t Kzg.SMap.t Kzg.SMap.t
val answer_t : Kzg.Bls.Scalar.t Kzg.SMap.t Kzg.SMap.t Repr.ty
type proof = Kzg.Bls.G1.t Kzg.SMap.t
val proof_t : Kzg.Bls.G1.t Kzg.SMap.t Repr.ty
val commit :
?all_keys:'a ->
Public_parameters.prover ->
Kzg.Bls.Poly.t Kzg.SMap.t ->
Kzg.Bls.G1.Srs.elt Kzg.SMap.t * unit
val compute_Ws :
Public_parameters.prover ->
Kzg.Bls.Poly.t Kzg.SMap.t ->
Kzg.Bls.Poly.scalar Kzg.SMap.t ->
Kzg.Bls.Scalar.t Kzg.SMap.t ->
Kzg.Bls.G1.Srs.elt Kzg.SMap.t
val verifier_check :
Public_parameters.verifier ->
Kzg.Bls.G1.t Kzg.SMap.t ->
Kzg.Bls.Scalar.t Kzg.SMap.t Kzg.SMap.t ->
Kzg.Bls.Scalar.t Kzg.SMap.t ->
Kzg.Bls.Scalar.t Kzg.SMap.t ->
Kzg.Bls.G1.t Kzg.SMap.t ->
bool
val sample_ys :
Kzg__Utils.Transcript.t ->
'a Kzg.SMap.t ->
Kzg.Bls.Scalar.t Kzg.SMap.t * Kzg__Utils.Transcript.t
val batch_answer :
Kzg.Bls.Scalar.t Kzg.SMap.t ->
Kzg.Bls.Scalar.t Kzg.SMap.t Kzg.SMap.t ->
Kzg.Bls.Scalar.t Kzg.SMap.t * Kzg.Bls.Scalar.t Kzg.SMap.t Kzg.SMap.t
val batch_polys :
Kzg.Bls.Poly.scalar Kzg.SMap.t Kzg.SMap.t ->
Kzg.Bls.Poly.t Kzg.SMap.t ->
Kzg.Bls.Poly.t Kzg.SMap.t
val prove_single :
Public_parameters.prover ->
Kzg__Utils.Transcript.t ->
Kzg.Bls.Poly.t Kzg.SMap.t ->
Kzg.Bls.Scalar.t Kzg.SMap.t ->
Kzg.Bls.Scalar.t Kzg.SMap.t Kzg.SMap.t ->
Kzg.Bls.G1.Srs.elt Kzg.SMap.t * Kzg.Utils.Transcript.t
val verify_single :
Public_parameters.verifier ->
Kzg__Utils.Transcript.t ->
Kzg.Bls.G1.t Kzg.SMap.t ->
Kzg.Bls.Scalar.t Kzg.SMap.t ->
Kzg.Bls.Scalar.t Kzg.SMap.t Kzg.SMap.t ->
Kzg.Bls.G1.t Kzg.SMap.t ->
bool * Kzg.Utils.Transcript.t
val group_cmts : Commitment.t list -> Commitment.t
val evaluate : Kzg.Bls.Poly.t Kzg.SMap.t -> query -> answer
val prove :
Public_parameters.prover ->
Kzg.Utils.Transcript.t ->
secret list ->
'a ->
query list ->
answer list ->
Kzg.Bls.G1.Srs.elt Kzg.SMap.t * Kzg.Utils.Transcript.t
val verify :
Public_parameters.verifier ->
Kzg.Utils.Transcript.t ->
Commitment.t list ->
query list ->
answer list ->
Kzg.Bls.G1.t Kzg.SMap.t ->
bool * Kzg.Utils.Transcript.t
type worker_msg = Kzg.Bls.Scalar.t SMap.t SMap.t
val worker_msg_t : Kzg.Bls.Scalar.t SMap.t SMap.t Repr.ty
type main_prover_msg = Kzg.Bls.Poly.t SMap.t
val main_prover_msg_t : Kzg.Bls.Poly.t SMap.t Repr.ty
type main_prover_state = {
srs : Public_parameters.prover;
transcript : Kzg.Utils.Transcript.t;
query : query;
batched_answer : Kzg.Bls.Scalar.t SMap.t;
main_msg : main_prover_msg;
}
val distributed_prove_worker :
secret list ->
'a ->
Kzg.Bls.Poly.scalar Kzg.SMap.t Kzg.SMap.t ->
Kzg.Bls.Poly.t Kzg.SMap.t
val distributed_expand_transcript :
Kzg.Utils.Transcript.t ->
Kzg.Bls.Scalar.t Kzg.SMap.t list ->
Kzg.Bls.Scalar.t Kzg.SMap.t Kzg.SMap.t list ->
Kzg.Utils.Transcript.t
val distributed_prove_main1 :
Public_parameters.prover ->
Kzg__Utils.Transcript.t ->
query list ->
answer list ->
secret list ->
'a ->
Kzg.Bls.Scalar.t Kzg.SMap.t Kzg.SMap.t * main_prover_state
val distributed_prove_main2 :
main_prover_state ->
main_prover_msg list ->
Kzg.Bls.G1.Srs.elt Kzg.SMap.t * Kzg.Utils.Transcript.t * unit