package octez-plonk
module SMap = Plonk.SMap
module type S = sig ... end
module Make_impl (Super_PP : Polynomial_protocol.S) : sig ... end
module Make
(PP : Polynomial_protocol.S) :
S with module PP = PP and type public_inputs = Plonk.Bls.Scalar.t array list
include sig ... end
module PP : sig ... end
module Input_commitment : sig ... end
type scalar = Plonk.Bls.Scalar.t
val scalar_encoding : scalar Data_encoding.t
type circuit_map = (Plonk.Circuit.t * int) Plonk.SMap.t
type prover_public_parameters =
Make(Polynomial_protocol).prover_public_parameters
val prover_public_parameters_t : prover_public_parameters Repr.t
type verifier_public_parameters =
Make(Polynomial_protocol).verifier_public_parameters
val verifier_public_parameters_t : verifier_public_parameters Repr.t
val verifier_public_parameters_encoding :
verifier_public_parameters Data_encoding.t
type proof = Make(Polynomial_protocol).proof
val proof_encoding : proof Data_encoding.t
type circuit_prover_input = Make(Polynomial_protocol).circuit_prover_input = {
witness : scalar array;
input_commitments : Input_commitment.t list;
}
val circuit_prover_input_t : circuit_prover_input Repr.t
type prover_inputs = circuit_prover_input list Plonk.SMap.t
val prover_inputs_t : prover_inputs Repr.t
type public_inputs = Plonk.Bls.Scalar.t array list
val public_inputs_t : public_inputs Repr.t
type verifier_inputs =
(public_inputs * Input_commitment.public list list) Plonk.SMap.t
val verifier_inputs_t : verifier_inputs Repr.t
val to_verifier_inputs :
prover_public_parameters ->
prover_inputs ->
verifier_inputs
val input_commit :
?size:int ->
?shift:int ->
prover_public_parameters ->
scalar array ->
Input_commitment.t
val setup :
zero_knowledge:bool ->
circuit_map ->
srs:
(Octez_bls12_381_polynomial.Bls12_381_polynomial.Srs.t
* Octez_bls12_381_polynomial.Bls12_381_polynomial.Srs.t) ->
prover_public_parameters * verifier_public_parameters
val update_prover_public_parameters :
Stdlib.Bytes.t ->
prover_public_parameters ->
prover_public_parameters
val update_verifier_public_parameters :
Stdlib.Bytes.t ->
verifier_public_parameters ->
verifier_public_parameters
val prove : prover_public_parameters -> inputs:prover_inputs -> proof
val verify :
verifier_public_parameters ->
inputs:verifier_inputs ->
proof ->
bool
module Internal_for_tests : sig ... end
module Gates : sig ... end
module Perm : sig ... end
val get_gen_n_prover : prover_public_parameters -> scalar * int
Returns (g, n), where n is the size of the circuit padded to the next power of two & g is a primitive n-th root of unity
val get_gen_n_verifier : verifier_public_parameters -> scalar * int
Returns (g, n), where n is the size of the circuit padded to the next power of two & g is a primitive n-th root of unity
val filter_prv_pp_circuits :
prover_public_parameters ->
'a SMap.t ->
prover_public_parameters
val filter_vrf_pp_circuits :
verifier_public_parameters ->
'a SMap.t ->
verifier_public_parameters
type prover_aux = Make(Polynomial_protocol).prover_aux = {
answers : scalar SMap.t SMap.t list;
batch : scalar SMap.t list;
alpha : scalar;
beta : scalar;
gamma : scalar;
delta : scalar;
x : scalar;
r : scalar;
cms_answers : PP.Answers_commitment.t SMap.t;
cms_pi : PP.Answers_commitment.t SMap.t;
ids_batch : (scalar * int) SMap.t;
t_answers : scalar list;
}
Auxiliary information needed by the prover for the meta-verification in aPlonK
Auxiliary information needed by the verifier for the meta-verification in aPlonK
type input_commit_info = Make(Polynomial_protocol).input_commit_info = {
nb_max_answers : int;
nb_max_pi : int;
func : ?size:int -> ?shift:int -> scalar array -> PP.Answers_commitment.t;
}
val prove_list :
prover_public_parameters ->
input_commit_infos:input_commit_info SMap.t ->
inputs:prover_inputs ->
proof * prover_aux
val verify_list :
verifier_public_parameters ->
(proof
* scalar SMap.t list
* PP.Answers_commitment.public SMap.t
* PP.Answers_commitment.public SMap.t
* scalar list
* (scalar * int) SMap.t) ->
bool * verifier_aux
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>