Zeth - Zerocash on Ethereum  0.8
Reference implementation of the Zeth protocol by Clearmatics
mpc_coord.cpp
Go to the documentation of this file.
1 // Copyright (c) 2015-2022 Clearmatics Technologies Ltd
2 //
3 // SPDX-License-Identifier: LGPL-3.0+
4 
7 #include "mpc_common.hpp"
8 #include "zeth_config.h"
9 
11 
12 void zeth_protoboard(libsnark::protoboard<Field> &pb)
13 {
14  libzeth::joinsplit_gadget<
15  Field,
18  libzeth::ZETH_NUM_JS_INPUTS,
19  libzeth::ZETH_NUM_JS_OUTPUTS,
20  libzeth::ZETH_MERKLE_TREE_DEPTH>
21  js(pb);
22  js.generate_r1cs_constraints();
23 }
24 
25 int main(int argc, char **argv)
26 {
27  const std::map<std::string, mpc_subcommand *> commands{
28  {"linear-combination", mpc_linear_combination_cmd},
29  {"dummy-phase2", mpc_dummy_phase2_cmd},
30  {"phase2-begin", mpc_phase2_begin_cmd},
31  {"phase2-contribute", mpc_phase2_contribute_cmd},
32  {"phase2-verify-contribution", mpc_phase2_verify_contribution_cmd},
33  {"phase2-verify-transcript", mpc_phase2_verify_transcript_cmd},
34  {"create-keypair", mpc_create_keypair_cmd},
35  };
36  return mpc_main(commands, zeth_protoboard, argc, argv);
37 }
mpc_common.hpp
mpc_dummy_phase2_cmd
mpc_subcommand * mpc_dummy_phase2_cmd
Definition: mpc_dummy_phase2.cpp:116
commands
Definition: __init__.py:1
mpc_phase2_contribute_cmd
mpc_subcommand * mpc_phase2_contribute_cmd
Definition: mpc_phase2_contribute.cpp:167
libzeth::HashTreeT
mimc_compression_function_gadget< FieldT > HashTreeT
Definition: circuit_types.hpp:28
Field
libzeth::defaults::Field Field
Definition: mpc_subcommand.hpp:11
main
int main(int argc, char **argv)
Definition: mpc_coord.cpp:25
zeth_protoboard
void zeth_protoboard(libsnark::protoboard< Field > &pb)
Definition: mpc_coord.cpp:12
libzeth::BLAKE2s_256
Definition: blake2s.hpp:24
mpc_main
int mpc_main(const std::map< std::string, mpc_subcommand * > &subcommands, const ProtoboardInitFn &pb_init, int argc, char **argv)
Main entry point into the mpc command for a given circuit.
Definition: mpc_common.cpp:43
mpc_phase2_verify_transcript_cmd
mpc_subcommand * mpc_phase2_verify_transcript_cmd
Definition: mpc_phase2_verify_transcript.cpp:214
mpc_phase2_verify_contribution_cmd
mpc_subcommand * mpc_phase2_verify_contribution_cmd
Definition: mpc_phase2_verify_contribution.cpp:142
circuit_types.hpp
circuit_wrapper.hpp
Field
libzeth::defaults::Field Field
Definition: mpc_coord.cpp:10
mpc_phase2_begin_cmd
mpc_subcommand * mpc_phase2_begin_cmd
Definition: mpc_phase2_begin.cpp:119
mpc_linear_combination_cmd
mpc_subcommand * mpc_linear_combination_cmd
Definition: mpc_linear_combination.cpp:177
mpc_create_keypair_cmd
mpc_subcommand * mpc_create_keypair_cmd
Definition: mpc_create_keypair.cpp:187