Resources

Comparisons

How Permissionless Technologies SDKs compare to existing solutions — Privacy Pools, Railgun, Tornado Cash, and major stablecoins.

Comparisons

UPP vs Privacy Solutions

FeatureUPPPrivacy PoolsRailgunTornado Cash
Multi-token supportSingle pool for all ERC20sPer-token poolsPer-token poolsFixed denomination
Compliance systemOn-chain ASP enforcementASP (similar model)PPOI (off-chain, weaker)None
Viewing keysPer-transaction granularNoLimited (full account)No
Note mergeYes (2-in-1)NoLimitedNo
Post-quantum optionYes (STARK vault)NoNoNo
RagequitYes (always exit)YesNoN/A
Fee0%0%0.5% round-trip0%
SDKviem/wagmi TypeScriptNoneethers.jsNone
LicenseAGPL-3.0Apache 2.0UNLICENSEDGPL-3.0
Trusted setupGroth16 (SNARK mode)YesYesYes

Key Differentiators vs Privacy Pools

Privacy Pools is the closest conceptual predecessor to UPP. Key differences:

  • UPP ships an SDK — Privacy Pools is a protocol without developer tooling
  • UPP has merge — consolidate notes and change origin (Privacy Pools doesn't support this)
  • UPP has viewing keys — granular per-transaction audit access
  • UPP has post-quantum mode — STARK vault for high-value storage
  • UPP uses viem/wagmi — modern stack vs no SDK at all

Key Differentiators vs Railgun

  • No 0.5% fee — UPP is free to use
  • Unified pool — all ERC20s in one anonymity set vs fragmented per-token pools
  • On-chain ASP compliance — Railgun's PPOI is off-chain and weaker
  • Open source SDK — Railgun SDK is UNLICENSED

UPC vs Compliance Solutions

FeatureUPCSemaphoreWorldIDzkPassPPOI (Railgun)
Proof systemPLONK/BLS12-381Groth16/BN254Groth16/BN254TLS oraclesGroth16/BN254
Security128-bit~100-bit~100-bitOracle trust~100-bit
Trusted setupUniversal (once)Per-circuitPer-circuitN/APer-circuit
PluggableYes (IAttestationVerifier)Yes (via adapter)Yes (via adapter)Yes (via adapter)No
Custom criteriaYesYes (groups)NoNoNo (OFAC only)
On-chain registryAttestationHubSemaphoreHubWorldID RouterN/AOff-chain
SDKTypeScript/viemJavaScriptJavaScriptSDKNone

Why Not Just Use Semaphore?

Semaphore is excellent for anonymous group membership. UPC builds on the same concept but adds:

  1. 128-bit security via BLS12-381 (Semaphore uses BN254 at ~100-bit)
  2. Universal PLONK setup (no per-circuit ceremony for Semaphore-style circuits)
  3. IAttestationVerifier adapter — you can use Semaphore groups as one of many verifiers in the AttestationHub
  4. ASP business model — tooling for operating compliance services, not just membership groups

UPD vs Stablecoins

FeatureUPDUSDCUSDTDAIFRAX
Can freeze balancesNoYesYesNo*No*
Admin keysNoYesYesYesYes
CollateralstETHUSD fiatUSD fiatMulti-assetUSDC + algorithmic
On-chain reservesYes (verifiable)Attestation (off-chain)Attestation (off-chain)YesPartial
Privacy (native)Yes (with UPP)NoNoNoNo
Yield optionsUPD (~8-10%)USDC+NoDSRsFRAX
Permissionless mintYes (any collateral)KYB requiredKYB requiredCDPWhitelist
Oracle dependencyChainlink + Uniswap V3N/AN/AChainlinkChainlink

*DAI has an Emergency Shutdown Module that can freeze the system; FRAX has a timelock admin.

Key Differentiator

UPD is the only major stablecoin that is censorship-resistant at the contract level. The "freeze account" function doesn't exist — not as a removed feature, but as something that was never implemented.

Combined with UPP, it's the first stablecoin where:

  • Your balance is private (encrypted in the pool)
  • Your transactions are private (ZK proofs)
  • The token itself is censorship-resistant (no freeze function)

This combination — stablecoin + privacy + censorship resistance — doesn't exist elsewhere in DeFi.

On this page