# Introduction

Zero-knowledge proofs involve two parties: a prover and a verifier.

* The **prover** makes an assertion that his or her proof is valid
* which the **verifier** must approve, without the prover leaking any “knowledge” other than the assertion itself.

> **How can the verifier validate an assertion without any knowledge of the content and minimal interaction with the prover?**

*This is where zero-knowledge proofs become useful !*

* Imagine frequent scenarios when one reveals private information to verify something about one’s identity
* When one applies for a credit card, he or she must give up his social security number
* When one checks in for a flight at the airport, he or she must reveal all the private information present on the passport, such as birthdate or passport number
* Even on a day-to-day basis, when a user logs on to a web or mobile application, the user must enter a password to the account and send this sensitive information to the server, trust that the application securely handles this information, and that the password is not intercepted over the network.

### 3 Essential Properties of ZKP

1. **Completeness**: Suppose a prover knows a secret number 𝑥  that solves a particular equation. Completeness guarantees that, if 𝑥  is indeed the solution, the verifier will be convinced of this without directly learning 𝑥 .
2. **Soundness**: Imagine a prover doesn’t actually know the secret number 𝑥  but tries to fool the verifier into believing they do. Soundness ensures that any false or misleading proof will be detected by the verifier.
3. **Zero knowledge**: Continuing with our secret number 𝑥 , zero-knowledge means the verifier can be convinced that the prover knows 𝑥  without learning anything about 𝑥 itself or how to solve the equation.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hypersign.id/hypersign-kyc/concepts/zero-knowledge-proof-zkp/introduction.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
