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: <10ms01
weight: 0.30Pool Ratio
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
weight: 0.40Anonymity Set
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
weight: +bonusDeposit Delay
Waiting blocks before withdrawal breaks timing correlation.
bonus = min(20, delay_blocks x 2)10 blocks = +20%. 5 blocks = +10%. Instant = +0%.
04
weight: +bonusRelayer Usage
Using a relayer hides your gas-paying wallet from the withdrawal.
bonus = use_relayer ? 10 : 0Relayer = +10% privacy. Direct withdrawal = +0%.
Privacy Levels
| LEVEL | SCORE | DESCRIPTION |
|---|---|---|
| MAXIMUM | 90-100 | Full anonymity. Large pool, high anon set, delayed withdrawal, relayer. |
| HIGH | 70-89 | Strong privacy. Good pool size, reasonable anon set, some delay. |
| STANDARD | 50-69 | Moderate privacy. Acceptable for most use cases. |
| LOW | 30-49 | Weak privacy. Small pool or few depositors. Consider waiting. |
| NONE | 0-29 | Insufficient 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