> For the complete documentation index, see [llms.txt](https://zka-protocol.gitbook.io/zka-protocol-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://zka-protocol.gitbook.io/zka-protocol-docs/concepts/anonymous-identity.md).

# Anonymous Identity

ZKAP replaces the traditional blockchain identity model with an entirely new concept: **anonymous, ephemeral, zero-knowledge identities**.\
These identities allow users and agents to interact with applications **without ever revealing who they are**, while still proving that their action is valid.

This section explains what ZKAP-ID is, how it works, and why it is fundamental to the protocol.

***

### 1. Traditional Blockchain Identity is Not Private

On all major blockchains today:

* your address is public
* your signature is public
* all transactions are linked to you
* every action contributes to an on-chain profile

Even if the user is pseudonymous, long-term address activity reveals:

* trading behavior
* preferences
* risk profile
* wallet clustering
* patterns that identify the human behind the wallet

This breaks privacy and makes true anonymity impossible.

***

### 2. ZKAP introduces a new identity model

ZKAP identities are:

* ephemeral (exist for one action or session)
* non-EOA (not tied to a wallet or keypair)
* zero-knowledge–derived
* unlinkable between requests
* invisible to the blockchain
* never stored on-chain

The blockchain **never sees any identity**.

Only the ZK circuit sees the identity — and only to verify that it is valid.

***

### 3. How ZKAP-ID is generated

A ZKAP identity is computed using a ZK-friendly hash function such as Poseidon.

Conceptually:

ZKAP\_ID = Hash(random\_seed || timestamp || entropy)

Meaning:

* random\_seed adds entropy
* timestamp prevents reuse
* entropy ensures unpredictability

This identity is used only inside the zero-knowledge proof.

No private key is generated.\
No signature is required.

***

### 4. Why there is no public key or private key

In ZKAP:

* identity does NOT come from ECDSA or EdDSA
* identity does NOT require a wallet
* identity does NOT depend on any private key

The identity exists only to create:

* a nullifier
* a validity proof

Because the proof verifies identity structure, users do not need signatures.

This makes the identity:

* impossible to track
* impossible to link
* impossible to cluster

***

### 5. How the identity is used in the protocol

The identity contributes to:

1. nullifier generation (prevents replay)
2. zero-knowledge proof construction
3. session binding for optional ephemeral state

After the frame is submitted:

* the identity is never transmitted
* the identity is never stored
* the identity is never revealed

It effectively disappears.

***

### 6. Benefits of Anonymous Identity

#### 6.1 True anonymity

No address, no public key, no linkage.

#### 6.2 No behavioral tracking

Multiple actions cannot be correlated.

#### 6.3 No deanonymization vectors

Graph analysis becomes impossible.

#### 6.4 Perfect for autonomous agents

Agents don’t need wallets, keys, or signatures.

#### 6.5 Removes wallet fingerprinting

Since there is no wallet, nothing can be fingerprinted.

***

### 7. Difference between ZKAP-ID and normal blockchain addresses

| Property                  | Blockchain Address | ZKAP-ID         |
| ------------------------- | ------------------ | --------------- |
| Persistent identity       | Yes                | No              |
| Publicly visible          | Yes                | No              |
| Derives from keypair      | Yes                | No              |
| Traceable                 | Yes                | No              |
| Used for signature        | Yes                | No              |
| Used for proving validity | No                 | Yes (inside ZK) |
| Tied to a wallet          | Yes                | No              |
| Anonymous                 | No                 | Yes             |

###


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://zka-protocol.gitbook.io/zka-protocol-docs/concepts/anonymous-identity.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
