Privacy Architecture

How Orvanta calculates your privacy score. From NONE (0) to MAXIMUM (100).

ZK-SNARK ARCHITECTURE

ShieldParams
    │
    ├─ pool_ratio        ──→ min(100, pool_tvl / 10M × 100)             [weight: 0.30]
    ├─ anonymity_set     ──→ min(100, anon_set / 512 × 100)             [weight: 0.40]
    ├─ delay_bonus       ──→ min(20, delay_blocks × 2)                  [+bonus]
    └─ relayer_bonus     ──→ use_relayer ? 10 : 0                       [+bonus]
                │
                ▼
        PrivacyScore  0 ──────────────────── 100
                      │                        │
                   NONE                    MAXIMUM
             (traceable)            (full anonymity)

        ZK Circuit: Groth16
        Proving Time: ~2s
        Proof Size: 192 bytes
        Verification: <10ms
01

Pool Ratio

weight: 0.30

Your deposit size relative to total pool TVL. Larger pools provide better privacy.

score = min(100, (pool_tvl / 10,000,000) x 100)

$10M+ pool = 100. $5M pool = 50. Smaller pools = lower privacy.

02

Anonymity Set

weight: 0.40

Number of similar-sized deposits you blend with. Higher = harder to trace.

score = min(100, (anon_set / 512) x 100)

512 depositors = 100. 256 = 50. 64 = 12.5.

03

Deposit Delay

weight: +bonus

Waiting blocks before withdrawal breaks timing correlation.

bonus = min(20, delay_blocks x 2)

10 blocks = +20%. 5 blocks = +10%. Instant = +0%.

04

Relayer Usage

weight: +bonus

Using a relayer hides your gas-paying wallet from the withdrawal.

bonus = use_relayer ? 10 : 0

Relayer = +10% privacy. Direct withdrawal = +0%.

Privacy Levels

LEVELSCOREDESCRIPTION
MAXIMUM90-100Full anonymity. Large pool, high anon set, delayed withdrawal, relayer.
HIGH70-89Strong privacy. Good pool size, reasonable anon set, some delay.
STANDARD50-69Moderate privacy. Acceptable for most use cases.
LOW30-49Weak privacy. Small pool or few depositors. Consider waiting.
NONE0-29Insufficient privacy. Pool too small or timing too obvious.

TECHNICAL SPECIFICATIONS

Groth16
Circuit
BN254
Curve
Poseidon
Hash
Merkle (32)
Tree

Test privacy parameters in the Lab

Experiment with different configurations

Open Lab