Module Make.Msg

Plonk Main Protocol

type 'a step =
  1. | S_ctw : [ `Commit_to_wires ] step
  2. | S_ctp : [ `Commit_to_plook ] step
  3. | S_pppi : [ `PP_prepare_ids ] step
  4. | S_ppctt : [ `PP_commit_to_t ] step
  5. | S_ppkeax : [ `PP_kzg_eval_at_x ] step
  6. | S_pcd : [ `PC_distribution ] step

Type witness for a protocol step.

type ctw_payload = {
  1. index : int;
  2. content : MP.worker_inputs Kzg.SMap.t;
}
type ctpap_payload = {
  1. index : int;
  2. content : Kzg.Utils.Transcript.t;
}
type pppi_payload = {
  1. index : int;
  2. content : Kzg.Utils.Transcript.t;
}
type ppctt_payload = {
  1. index : int;
  2. content : string list * Kzg.Bls.Scalar.t;
}
type ppkeax_payload = {
  1. index : int;
  2. content : Kzg.Utils.Transcript.t;
}
type pcd_payload = {
  1. index : int;
  2. content : MP.PP.PC.worker_msg;
}
type 'step request =
  1. | Commit_to_wires : ctw_payload -> [ `Commit_to_wires ] request
  2. | Commit_to_plook : ctpap_payload -> [ `Commit_to_plook ] request
  3. | PP_prepare_ids : pppi_payload -> [ `PP_prepare_ids ] request
  4. | PP_commit_to_t : ppctt_payload -> [ `PP_commit_to_t ] request
  5. | PP_KZG_eval_at_x : ppkeax_payload -> [ `PP_kzg_eval_at_x ] request
  6. | PC_Distribution : pcd_payload -> [ `PC_distribution ] request
type ctw_res_payload = {
  1. index : int;
  2. content : MP.commit_to_wires_reply;
}
type ctpap_res_payload = {
  1. index : int;
  2. content : MP.commit_to_plook_rc_reply;
}
type pppi_res_payload = {
  1. index : int;
  2. content : string list;
}
type ppctt_res_payload = {
  1. index : int;
  2. content : Plonk.Identities.Evaluations.t;
}
type ppkeax_res_payload = {
  1. index : int;
  2. content : MP.PP.PC.answer list;
}
type pcd_res_payload = {
  1. index : int;
  2. content : MP.PP.PC.main_prover_msg;
}
type 'step reply =
  1. | Commit_to_wires_res : ctw_res_payload -> [ `Commit_to_wires ] reply
  2. | Commit_to_plook_res : ctpap_res_payload -> [ `Commit_to_plook ] reply
  3. | PP_prepare_ids_res : pppi_res_payload -> [ `PP_prepare_ids ] reply
  4. | PP_commit_to_t_res : ppctt_res_payload -> [ `PP_commit_to_t ] reply
  5. | PP_KZG_eval_at_x_res : ppkeax_res_payload -> [ `PP_kzg_eval_at_x ] reply
  6. | PC_Distribution_res : pcd_res_payload -> [ `PC_distribution ] reply
type t = bytes
val request_step : 'step request -> 'step step
val of_request : 'a request -> t
val of_reply : 'a reply -> t
val to_request : 'step step -> t -> 'step request option
val to_reply : 'step step -> t -> 'step reply option
val index : t -> int
val string_of_message : t -> string