> 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             |

###
