DP_aPlonk.MP
module Aggreg_circuit : sig ... end
module L = Plompiler.LibCircuit
module Input_commitment : sig ... end
type scalar = Kzg.Bls.Scalar.t
val scalar_t : Kzg.Bls.Scalar.t Repr.t
type circuit_map = (Plonk.Circuit.t * int) Plonk.Main_protocol_intf.SMap.t
type prover_meta_pp = {
meta_pp : Plonk__Main_protocol.Make_impl(Distributed_plonk__Distributed_prover.Main_Kzg.PP).Prover.public_parameters;
meta_solver : Plompiler.Solver.t;
public_input_size : int;
input_com_sizes : int list;
nb_proofs : int;
nb_rc_wires : int;
}
val prover_meta_pp_t : prover_meta_pp Repr.t
val verifier_meta_pp_t : verifier_meta_pp Repr.t
type prover_public_parameters = {
main_pp : Plonk__Main_protocol.Make_impl(Distributed_plonk__Distributed_prover.Main_Pack.PP).Prover.public_parameters;
meta_pps : prover_meta_pp Kzg.SMap.t;
}
val prover_public_parameters_t : prover_public_parameters Repr.t
type verifier_public_parameters = {
main_pp : Plonk__Main_protocol.Make_impl(Distributed_plonk__Distributed_prover.Main_Pack.PP).verifier_public_parameters;
meta_pps : verifier_meta_pp Kzg.SMap.t;
}
val verifier_public_parameters_t : verifier_public_parameters Repr.t
type proof = {
main_proof : Plonk__Main_protocol.Make_impl(Distributed_plonk__Distributed_prover.Main_Pack.PP).proof;
meta_proofs : Plonk__Main_protocol.Make_impl(Distributed_plonk__Distributed_prover.Main_Kzg.PP).proof
Kzg.SMap.t;
batch : Kzg.Bls.Scalar.t Kzg.SMap.t list;
batches : (Kzg.Bls.Scalar.t * int) Kzg.SMap.t list Kzg.SMap.t;
cms_answers : Distribution.Polynomial_commitment.Kzg_impl.Commitment.t
Kzg.SMap.t;
cms_pi : Distribution.Polynomial_commitment.Kzg_impl.Commitment.t Kzg.SMap.t;
ids_batch : (Kzg.Bls.Scalar.t * int) Kzg.SMap.t;
t_answers : Kzg.Bls.Scalar.t list;
}
val proof_t : proof Repr.t
type circuit_prover_input = {
witness : scalar array;
input_commitments : Plonk__Input_commitment.Make(Distributed_plonk__Distributed_prover.Main_Pack.PP.PC.Commitment).t
list;
}
val circuit_prover_input_t : circuit_prover_input Repr.t
type prover_inputs = circuit_prover_input list Kzg.SMap.t
val prover_inputs_t : circuit_prover_input list Kzg.SMap.t Repr.ty
type public_inputs = scalar list
val public_inputs_t : Kzg.Bls.Scalar.t list Repr.t
type circuit_verifier_input = {
nb_proofs : int;
public : public_inputs;
commitments : Input_commitment.public list list;
}
val circuit_verifier_input_t : circuit_verifier_input Repr.t
type verifier_inputs = circuit_verifier_input Kzg.SMap.t
val verifier_inputs_t : circuit_verifier_input Kzg.SMap.t Repr.ty
val to_verifier_inputs :
prover_public_parameters ->
Plonk__Main_protocol.Make_impl(Distributed_plonk__Distributed_prover.Main_Pack.PP).circuit_prover_input
list
Plonk.Main_protocol_intf.SMap.t ->
circuit_verifier_input Kzg.SMap.t
val update_prover_public_parameters :
'a Repr.ty ->
'a ->
prover_public_parameters ->
prover_public_parameters
val update_verifier_public_parameters :
'a Repr.ty ->
'a ->
verifier_public_parameters ->
verifier_public_parameters
val filter_prv_pp_circuits :
prover_public_parameters ->
'a Kzg.SMap.t ->
prover_public_parameters
val filter_vrf_pp_circuits :
verifier_public_parameters ->
'a Kzg.SMap.t ->
verifier_public_parameters
val cs_global : Plompiler.LibCircuit.cs_result Kzg.SMap.t Stdlib.ref
val input_commit_funcs :
prover_public_parameters ->
'a list Kzg.SMap.t ->
Aggregation__Main_protocol.Make_impl(Distributed_plonk__Distributed_prover.Main_Pack.PP).input_commit_funcs
Kzg.SMap.t
val input_commit :
?size:'a ->
?shift:'b ->
prover_public_parameters ->
'c ->
'd
val meta_setup :
zero_knowledge:bool ->
srs:(Kzg.Bls.Srs.t * Kzg.Bls.Srs.t) ->
main_prover_pp:
Plonk__Main_protocol.Make_impl(Distributed_plonk__Distributed_prover.Main_Pack.PP).Prover.public_parameters ->
nb_batches:int ->
Kzg.SMap.key ->
(Plonk.Circuit.t * int) ->
prover_meta_pp * verifier_meta_pp
val setup :
zero_knowledge:bool ->
(Plonk.Circuit.t * int) Plonk.Main_protocol_intf.SMap.t ->
srs:(Kzg.Bls.Srs.t * Kzg.Bls.Srs.t) ->
prover_public_parameters * verifier_public_parameters
val meta_prove :
main_prover_aux:
Aggregation__Main_protocol.Make_impl(Distributed_plonk__Distributed_prover.Main_Pack.PP).prover_aux ->
meta_pps:prover_meta_pp Kzg.SMap.t ->
inner_pi_map:
Plonk__Main_protocol.Make_impl(Distributed_plonk__Distributed_prover.Main_Pack.PP).circuit_verifier_input
Kzg.SMap.t ->
transcript:Kzg.Utils.Transcript.t ->
(Kzg.Bls.Scalar.t * 'a) Kzg.SMap.t list Kzg.SMap.t ->
Kzg.SMap.key ->
'b list ->
Plonk__Main_protocol.Make_impl(Distributed_plonk__Distributed_prover.Main_Kzg.PP).proof
val meta_proof :
prover_public_parameters ->
Plonk__Main_protocol.Make_impl(Distributed_plonk__Distributed_prover.Main_Pack.PP).circuit_prover_input
list
Plonk.Main_protocol_intf.SMap.t ->
(Plonk__Main_protocol.Make_impl(Distributed_plonk__Distributed_prover.Main_Pack.PP).proof
* Aggregation__Main_protocol.Make_impl(Distributed_plonk__Distributed_prover.Main_Pack.PP).prover_aux) ->
proof
val prove : prover_public_parameters -> inputs:prover_inputs -> proof
val meta_verify :
transcript:Kzg.Utils.Transcript.t ->
inputs:circuit_verifier_input Kzg.SMap.t ->
proof:proof ->
(Kzg.Bls.Scalar.t
* Kzg.Bls.Scalar.t
* Kzg.Bls.Scalar.t
* Kzg.Bls.Scalar.t
* Kzg.Bls.Scalar.t
* Kzg.Bls.Scalar.t) ->
Kzg.SMap.key ->
verifier_meta_pp ->
bool
val verify :
verifier_public_parameters ->
inputs:verifier_inputs ->
proof ->
bool
val scalar_encoding : Kzg.Bls.Scalar.t Data_encoding.t
val proof_encoding : proof Data_encoding.encoding
val verifier_public_parameters_encoding :
verifier_public_parameters Data_encoding.encoding
module Internal_for_tests : sig ... end