Open oj01ol opened 5 years ago
emm...
primary_input
could be seen as public inputs, and auxiliary_input
is the secret inputs.
Thanks for your reply!
It makes sense that the primary_input
is the public inputs. But in the r1cs_examples.tcc, the primary_input
is generated randomly and the auxiliary_input
is calculated based on the primary_input
. Does this means that if a verifier get the primary_input
and the constraint_system
it can calculate the auxiliary_input
? Is there a problem here?
zero knowledge means that a verifier cannot learn anything about the auxiliary input, other than what can already be computed from the public input, and the output. In the case of the r1cs example, it uses a very simple constraint system, so the auxiliary input is deterministic off of the primary input, so there is nothing that one could hope to be hidden by zero knowledge.
For more complex constraint systems, where knowledge of the primary input does not imply knowledge of the auxiliary input, that would not be possible.
Hi,
In the r1cs_zk_proof_systems, there are two inputs called primary_input and auxiliary_input constitute the witness of prover. Could I please know what is the difference of the two inputs and why primary_input is needed in verification methods? Doesn't the primary_input is the secret own by prover?
There is an example verification in r1cs_ppzksnark.tcc
I would appreciate any insights/clarifications on this.
Thank you.