0
$\begingroup$

I am a beginner in the cryptographic field but as a graduation project, I have to build an identity verification and management system using zero-knowledge proofs. I see a lot of zkp techniques, algorithms, and libraries. I got lost and concerned about its implementation complexity.

so, my question is, what are the recommended zkp techniques for my case?

  • in my system, the client is allowed to prove some personal information to the verifier without disclosing it.
  • the system is a website.
  • I prefer to use a zkp technique that is an open-source, secure, private, and doesn't require a trusted set-up.
  • I prefer to implement a zkp technique that has comprehensive documentation.

I appreciate and help and guidance, and thank you in advance.

$\endgroup$
0

2 Answers 2

1
$\begingroup$

Why are you bound to ZKP techniques? It seems that what you want can be achieved with straightforward signature schemes like Schnorr signatures or other Sigma protocols, but technically speaking these are not ZKPs.

However depending on what info users might want to prove ZKPs might be necessary - some elaboration from you would help clarify that.

$\endgroup$
0
$\begingroup$

There are many instances of implementing ZKP for anonymous authentication, such as $\Sigma$ protocol(interactive ZKP), classical Fiat-Shamir transformer by assuming random oracle and Groth-Sahai without random oracle(Both are non-interacive ZKPs), and even zk-SNARKs.

According to your requirements, I am confidental that the anonymous credentials(AC) technology can help you to arrive at your final goal. The technology involving three types of entities is very simple that:

  1. The issuer who is responsible for issuing attribute-based credentials to users can be regarded as CA(an important role in PKI) in AC.
  2. A user who holds credentials can present its authentication information in anonymity by using ZPK to prove that it has a valid credential.
  3. The verifier can only check the validity of authentication information from the user, but cannot learn any other identifying information of the user.

Anyway, I suggest you look up some AC schemes in GitHub, or other anonymous authentication technologies, such as, group signature, ring signature or blind signaure, etc.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.