Slide 01 // Title

SHROUD Shroud Logo

Privacy that regulators can live with.

A USDC privacy pool where you can only withdraw if you prove you're on the compliance allowlist — private for honest users, locked for sanctioned addresses.

Soroban · ASP Gateway · BN254

withdraw(proof, nullifier, recipient)
→ compliant → fresh wallet ✓
→ sanctioned → locked out ✗

Stellar Hacks: Real-World ZK · DoraHacks

Slide 02 // The Problem

Privacy and compliance are at war — both sides lose.

Mixers are uncompliant

Tornado-style pools let sanctioned actors mix funds → global blacklists. The whole tool becomes radioactive and taints every user.

So institutions can't use privacy

Regulated firms are forced onto transparent rails, leaking payroll and treasury flows to anyone with a block explorer.

Slide 03 // The Solution

Make privacy conditional on compliance.

Shroud implements the SDF's recommended Association Set Provider (ASP) gateway. Every withdrawal proves allowlist membership — in zero knowledge.

Gated

sanctioned addresses locked out

Private

withdraw to a fresh wallet

Owner-bound

EdDSA stops note theft

Gasless

relayer paid on-chain

Slide 04 // Live Demo & Flow

What the judges see

$ npm run prove:demo

1. ASP updates compliance root (ASPRegistry)

2. deposit 100 USDC + commitment (ShroudPool)

3. allowlist path → Groth16 proof + EdDSA(nullifier)

4. relayer submits proof + nullifier + recipient

5. verify root active → BN254 pairing on-chain

compliant → payout to fresh wallet ✓

non-compliant / tampered → rejected ✗

Compliance root checked against the live ASP registry on-chain. Hosted app = UX sandbox; load-bearing ZK = prove:demo + deployed contracts.

Slide 05 // Architecture & Tech

The contract binds the proof to the live allowlist.

ZK Circuit

Circom/Groth16 bn128 · deposit + compliance Merkle membership + nullifier + EdDSA over nullifier · nPublic = 6

Pool

bn254().pairing_check() (P25/26) · compliance_root bound to live ASPRegistry.get_root · nullifier map · real relayer fee transfer

Registry

require_auth() gates root rotation to the authorized ASP admin

App

Next.js 16 / React 19 / Supabase · deposit events build paths dynamically

A stale or forged allowlist can't pass — the contract checks the proof's root against the registry's current root. EdDSA stops a stolen note from being drained.

Slide 06 // Market & Impact

The unlock for institutional on-chain finance.

Institutional DeFi

tokenized assets moving on-chain — transparent ledgers are a non-starter for payroll & treasury.

OFAC reality

sanctions proved uncompliant privacy is a dead end. The market needs a compliance gate baked in.

SDF-aligned

ASP is the SDF's own recommended pattern — Shroud ships it.

Slide 07 // Business Model

How Shroud survives the hackathon

01

Relayer fees — basis points on each gasless withdrawal fund relayer + protocol.

02

ASP-as-a-Service — compliance providers run allowlists; Shroud licenses the gateway.

03

Enterprise privacy SDK — neobanks & payroll apps embed the pool for confidential payouts.

04

Cost moat — sub-cent verification → private withdrawals cheap enough for payroll volumes.

Slide 08 // Competitive Edge

Why Shroud wins

Transparent rails Tornado mixer Shroud
Privacy
Sanctions-safe ❌ blacklisted ✅ allowlist-gated
Institution-usable ⚠️
Note-theft resistant n/a ⚠️ ✅ EdDSA
On-chain compliance binding n/a ✅ live ASP root
Slide 09 // Traction & Validation

Built & verified, not vaporware

✅ Verifies on testnet

Real Groth16 withdrawal proof accepted on-chain — npm run prove:demo.

✅ Compliance enforced

withdraw checks proof root vs live ASP registry; nullifiers block double-spend; relayer fee is a real transfer.

✅ Owner binding hardened

In-circuit EdDSA over the nullifier (public inputs 4 → 6).

✅ Engineering rigor

Cargo tests green (2 withdraw paths), 100 unit tests, 6-stage CI.

Slide 10 // Roadmap

30 / 60 / 90 days

30 DAYS

Redeploy BN254 + EdDSA contracts; stellar.expert verified; live compliant-withdrawal demo.

60 DAYS

Decentralize ASP to multi-sig committee; in-browser proving; root-rotation grace windows.

90 DAYS

Variable denominations, multi-asset pools, first neobank/payroll design partner.

Slide 11 // Team

Engineering leverage

Edy Cu

full-stack + applied-ZK engineer

Solo-built the Circom withdrawal circuit (Merkle membership + nullifier + EdDSA), the Rust/Soroban pool & ASP registry, the gasless relayer flow, and the Next.js app + SDK. One of five real on-chain ZK products shipped for this hackathon.

Slide 12 // The Ask

Privacy regulators
can live with.

Shroud makes privacy conditional on compliance — the only design institutions can legally adopt, built on the SDF's own recommended ASP pattern.

npm run prove:demo  # a sanctioned address literally can't withdraw