package tezos-plonk
Plonk zero-knowledge proving system
Install
Dune Dependency
Authors
Maintainers
Sources
privacy-team-v1.0.0.tar.gz
md5=c9007a234fbacaddbc652c139cac56db
sha512=b67825a9259c27ccba51a4cb98056985c93f74f5211d422ce8ee8c35cda748c22bd1e59b3a584a79f96c1be21a409a12ee4b705346e1319c6d8bf45e81029f93
doc/tezos-plonk.distribution/Distribution/Main_protocol/Make/index.html
Module Main_protocol.Make
Source
Parameters
module PP : Polynomial_protocol.S with type PC.BasePC.Scalar.t = Plompiler.S.t
Signature
module MP : sig ... end
include module type of MP with module PP := PP
module Scalar : sig ... end
module Domain : sig ... end
module Poly : sig ... end
module Evaluations : sig ... end
module Perm : sig ... end
module Plook : sig ... end
module Gates : sig ... end
module Fr_generation : sig ... end
module SMap = Plonk.SMap
type scalar = Scalar.t
type circuit_map = (Plonk.Circuit.t * int) SMap.t
type proof = {
perm_and_plook : PP.PC.Commitment.t;
wires_cm : PP.PC.Commitment.t;
pp_proof : PP.proof;
}
val circuit_prover_input_t : circuit_prover_input Repr.t
type prover_inputs = circuit_prover_input list SMap.t
val prover_inputs_t : circuit_prover_input list SMap.t Repr.ty
type circuit_verifier_input = scalar array list
type verifier_inputs = circuit_verifier_input SMap.t
val to_verifier_inputs :
circuit_prover_input list SMap.t ->
scalar array list SMap.t
module IntSet : sig ... end
module IntMap : sig ... end
module Partition : sig ... end
val check_circuit_name : 'a SMap.t -> unit
val eval_points : bool -> bool -> PP.eval_point list list
module Prover : sig ... end
module Verifier : sig ... end
type verifier_public_parameters = {
common_pp : Verifier.verifier_common_pp;
circuits_map : Verifier.verifier_circuit_pp SMap.t;
transcript : PP.transcript;
}
val verifier_public_parameters_t : verifier_public_parameters Repr.t
val degree_evaluations :
nb_wires:int ->
gates:'a Plonk.SMap.t ->
ultra:bool ->
int
module Preprocess : sig ... end
val setup :
zero_knowledge:bool ->
(Plonk.Circuit.t * int) SMap.t ->
srs:(Bls12_381_polynomial.Srs.t * Bls12_381_polynomial.Srs.t) ->
Prover.prover_public_parameters * verifier_public_parameters
val update_prover_public_parameters :
bytes ->
Prover.prover_public_parameters ->
Prover.prover_public_parameters
val update_verifier_public_parameters :
bytes ->
verifier_public_parameters ->
verifier_public_parameters
val prove :
Prover.prover_public_parameters ->
inputs:circuit_prover_input list SMap.t ->
proof
val verify :
verifier_public_parameters ->
inputs:Gates.PP.PC.Scalar.t array list SMap.t ->
proof ->
bool
val scalar_encoding : Scalar.t Data_encoding.encoding
val data_encoding_of_repr : 'a Repr.t -> 'a Data_encoding.encoding
val proof_encoding : proof Data_encoding.encoding
val verifier_public_parameters_encoding :
verifier_public_parameters Data_encoding.encoding
module Internal_for_tests : sig ... end
module Commitment : sig ... end
include module type of struct include Prover end
type prover_common_pp = {
n : int;
domain : Domain.t;
pp_public_parameters : PP.prover_public_parameters;
g_map : PP.PC.Polynomial.Polynomial.t SMap.t;
g_prover_aux : PP.PC.Commitment.prover_aux;
evaluations : Evaluations.t SMap.t;
zk : bool;
nb_of_t_chunks : int;
}
val prover_common_pp_t : prover_common_pp Repr.t
val get_generator : prover_common_pp -> Domain.scalar
val prover_circuit_pp_t : prover_circuit_pp Repr.t
val compute_wire_polynomials :
zero_knowledge:bool ->
gates:'a Plonk.SMap.t ->
int ->
Evaluations.domain ->
PP.PC.Scalar.t array SMap.t ->
Poly.t SMap.t * Poly.t SMap.t option
type wires_info = {
wires : Scalar.t array SMap.t;
f_wires_map : Evaluations.polynomial SMap.t;
f_blinds_map : Evaluations.polynomial SMap.t option;
wires_values : Scalar.t array;
wires_indices : int array SMap.t;
}
val build_wires_map :
zero_knowledge:bool ->
prover_common_pp ->
prover_circuit_pp SMap.t ->
SMap.key ->
circuit_prover_input list ->
Poly.t SMap.t list * wires_info list
val build_all_f_wires_map :
zero_knowledge:bool ->
prover_common_pp ->
prover_circuit_pp SMap.t ->
circuit_prover_input list SMap.t ->
Poly.t SMap.t list SMap.t * wires_info list SMap.t
val build_aggregated_wires_map :
zero_knowledge:bool ->
Poly.scalar ->
prover_common_pp ->
prover_circuit_pp SMap.t ->
wires_info list SMap.t ->
SMap.key ->
Evaluations.t ->
Poly.t SMap.t
val build_all_aggregated_wires_map :
zero_knowledge:bool ->
Poly.scalar ->
prover_common_pp ->
prover_circuit_pp SMap.t ->
Poly.t SMap.t list SMap.t ->
wires_info list SMap.t ->
Evaluations.t SMap.t ->
Poly.t SMap.t SMap.t
val build_all_identities :
prover_common_pp ->
?shifts_map:(int * int) SMap.t ->
Plook.PP.PC.Scalar.t ->
Plook.PP.PC.Scalar.t ->
prover_circuit_pp SMap.t ->
circuit_prover_input list SMap.t ->
Plook.PP.PC.Polynomial.Polynomial.t Plonk.SMap.t Plonk.List.t SMap.t ->
PP.prover_identities
val build_perm_identities :
prover_common_pp ->
Perm.PP.PC.Scalar.t ->
Perm.PP.PC.Scalar.t ->
Perm.PP.PC.Scalar.t ->
string ->
prover_circuit_pp ->
Perm.PP.prover_identities
val build_all_perm_identities :
prover_common_pp ->
Perm.PP.PC.Scalar.t ->
Perm.PP.PC.Scalar.t ->
prover_circuit_pp SMap.t ->
PP.prover_identities
val build_batched_witness : PP.PC.Scalar.t -> wires_info list -> Evaluations.t
val build_f_map_evaluation_perm :
zero_knowledge:bool ->
prover_common_pp ->
PP.PC.Scalar.t ->
Perm.PP.PC.Scalar.t ->
Perm.PP.PC.Scalar.t ->
prover_circuit_pp SMap.t ->
SMap.key ->
wires_info list ->
Poly.t SMap.t * Evaluations.t
val build_all_f_map_evaluation_perm :
zero_knowledge:bool ->
prover_common_pp ->
PP.PC.Scalar.t ->
Perm.PP.PC.Scalar.t ->
Perm.PP.PC.Scalar.t ->
prover_circuit_pp SMap.t ->
wires_info list SMap.t ->
(Poly.t SMap.t * Evaluations.t) SMap.t
val build_f_map_evaluation_plook :
zero_knowledge:bool ->
prover_common_pp ->
Plook.PP.PC.Scalar.t ->
Plook.PP.PC.Scalar.t ->
prover_circuit_pp SMap.t ->
SMap.key ->
wires_info list ->
Poly.t SMap.t list
val build_all_f_map_evaluation_plook :
zero_knowledge:bool ->
prover_common_pp ->
Plook.PP.PC.Scalar.t ->
Plook.PP.PC.Scalar.t ->
prover_circuit_pp SMap.t ->
wires_info list SMap.t ->
Poly.t SMap.t list SMap.t
val gather_maps :
?shifts_map:(int * int) SMap.t ->
'a Stdlib__Map.Make(String).t Plonk.List.t SMap.t ->
'a SMap.t
val commit_to_wires :
?shifts_map:(int * int) SMap.t ->
zero_knowledge:bool ->
common_pp:prover_common_pp ->
circuits_map:prover_circuit_pp SMap.t ->
inputs_map:circuit_prover_input list SMap.t ->
unit ->
wires_info list SMap.t
* PP.PC.Commitment.t
* PP.PC.Commitment.prover_aux
* Poly.t SMap.t list SMap.t
* Poly.t SMap.t
val build_evaluations :
(prover_common_pp * prover_circuit_pp SMap.t) ->
f_map:PP.Evaluations.polynomial Plonk.SMap.t ->
Evaluations.t SMap.t
val build_identities :
?shifts_map:(int * int) SMap.t ->
(prover_common_pp * prover_circuit_pp SMap.t) ->
f_wires_map_list_map:
Plook.PP.PC.Polynomial.Polynomial.t Plonk.SMap.t Plonk.List.t SMap.t ->
f_plook_map_list_map:
Plook.PP.PC.Polynomial.Polynomial.t Plonk.SMap.t Plonk.List.t SMap.t ->
inputs_map:circuit_prover_input list SMap.t ->
beta_plookup:Plook.PP.PC.Scalar.t ->
gamma_plookup:Plook.PP.PC.Scalar.t ->
PP.prover_identities
val prove_circuits :
pp_prove:
(PP.prover_public_parameters ->
bytes ->
n:int ->
generator:Domain.scalar ->
secrets:
(PP.PC.Polynomial.Polynomial.t SMap.t * PP.PC.Commitment.prover_aux)
list ->
eval_points:PP.eval_point list list ->
evaluations:Evaluations.t SMap.t ->
identities:PP.prover_identities ->
nb_of_t_chunks:int ->
'a * 'b) ->
((prover_common_pp * prover_circuit_pp SMap.t) * bytes) ->
inputs_map:circuit_prover_input list SMap.t ->
'a
* (PP.PC.Commitment.t
* PP.PC.Commitment.t
* Fr_generation.scalar
* Fr_generation.scalar
* Fr_generation.scalar)
type prover_public_parameters = {
common_pp : prover_common_pp;
circuits_map : prover_circuit_pp SMap.t;
transcript : PP.transcript;
}
val prover_public_parameters_t : prover_public_parameters Repr.t
Source
val split_inputs_map :
nb_workers:int ->
circuit_prover_input list SMap.t ->
worker_inputs SMap.t list
Source
type commit_to_plook_reply = {
batched_witness_map : Evaluations.t SMap.t;
cmt_plookup : Commitment.t;
f_plook_map : PP.PC.Polynomial.Polynomial.t SMap.t;
plook_prover_aux : Commitment.prover_aux;
}
Source
type commit_to_plook_remember = {
f_wires_map_list_map : PP.Evaluations.polynomial SMap.t list SMap.t;
f_plook_map_list_map : PP.Evaluations.polynomial SMap.t list SMap.t;
beta_plookup : scalar;
gamma_plookup : scalar;
}
Source
type commit_to_wires_remember = {
f_wires_map : PP.Evaluations.polynomial SMap.t;
wires_map : wires_info list SMap.t;
inputs_map : circuit_prover_input list SMap.t;
shifts_map : (int * int) SMap.t;
srs : PP.prover_public_parameters;
f_wires_map_list_map : PP.Evaluations.polynomial SMap.t list SMap.t;
wires_prover_aux : PP.PC.Commitment.prover_aux;
}
Source
val worker_commit_to_wires :
?zero_knowledge:bool ->
(prover_common_pp * prover_circuit_pp SMap.t) ->
worker_inputs SMap.t ->
PP.PC.Commitment.t * commit_to_wires_remember
Source
val worker_build_all_batched_witness :
PP.PC.Scalar.t ->
wires_info list SMap.t ->
Evaluations.t SMap.t
Source
val commit_to_plook :
?zero_knowledge:bool ->
(prover_common_pp * prover_circuit_pp SMap.t) ->
wires_info list SMap.t ->
(int * int) SMap.t ->
PP.PC.BasePC.Public_parameters.prover ->
Bytes.t ->
PP.Evaluations.polynomial SMap.t list SMap.t ->
commit_to_plook_reply * commit_to_plook_remember
Source
val batch_evaluated_ids :
alpha:Scalar.t ->
Evaluations.t SMap.t ->
string list ->
Evaluations.t
Source
val main_build_aggregated_wires_map :
zero_knowledge:bool ->
prover_common_pp ->
prover_circuit_pp SMap.t ->
SMap.key ->
Evaluations.t ->
Poly.t SMap.t
Source
val worker_build_evaluations :
(prover_common_pp * prover_circuit_pp SMap.t) ->
f_wires_map:PP.Evaluations.polynomial SMap.t ->
f_plook_map:PP.Evaluations.polynomial SMap.t ->
Evaluations.t SMap.t
Source
val worker_build_identities :
shifts_map:(int * int) SMap.t ->
(prover_common_pp * prover_circuit_pp SMap.t) ->
f_wires_map_list_map:
Plook.PP.PC.Polynomial.Polynomial.t Plonk.SMap.t Plonk.List.t SMap.t ->
f_plook_map_list_map:
Plook.PP.PC.Polynomial.Polynomial.t Plonk.SMap.t Plonk.List.t SMap.t ->
inputs_map:circuit_prover_input list SMap.t ->
beta_plookup:Plook.PP.PC.Scalar.t ->
gamma_plookup:Plook.PP.PC.Scalar.t ->
PP.prover_identities
Source
val kzg_eval_at_x :
Bytes.t ->
(PP.PC.secret * 'a) list ->
PP.PC.Scalar.t ->
bool ->
PP.PC.answer list
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page