scipr-lab / libsnark

C++ library for zkSNARKs
Other
1.81k stars 579 forks source link

Can LIBSNARK be used for simple proofs? #96

Open Eliott opened 6 years ago

Eliott commented 6 years ago

As an example, say Victor (verifier) owns a spy agency, and Peggy (prover) claims to know who one of the spies are. Would Victor be able to use LIBSNARK to verify this claim?

That is, if I understand correctly, for Victor to use LIBSNARK, he would have to encode his spy roster into a protoboard and send that program to Peggy. Peggy would then be able to decompile the code and recover the complete spy roster from the protoboard, or would be able to use brute-force to input names and record those the program verified. How is this zero-knowledge if so much knowledge can be revealed to Peggy though the protoboard?

Or am I misunderstanding... Is it possible to just send Peggy the proving-key and have Peggy use that to cipher the name she claims to know, without revealing to Peggy whether this name is verified; and without revealing to Victor which name she knows, just whether it matches a name on the roster?

Thank you, Eliott

RamboRick commented 5 years ago

I have the same question as you. Is that possible to use libsnark in life? Or just use it to prove the arithmetic computation?