Slide 01 // Title

CRISP ๐Ÿ›ก๏ธ

Prove you're solvent. Reveal nothing.

A real-time zero-knowledge oracle that proves a Stellar issuer's reserves โ‰ฅ liabilities on-chain โ€” leaking no customer balance and no true total.

Soroban ยท BN254 Pairing Check

attest_reserves(proof, root, L, R, ax, ay)
โ†’ valid proof โœ“ true
โ†’ tampered โœ— false

Stellar Hacks: Real-World ZK ยท DoraHacks

Slide 02 // The Problem

Proof-of-Reserves forces a false choice: trust, or transparency.

Privacy leakage

Standard PoR unmasks individual customer balances and the issuer's exact total assets to competitors.

Retrospective

Audits are a quarter-old snapshot, signed by an accounting firm you also have to trust.

No live signal

By publication, the reserves an attestation describes may already be gone. One rumor โ†’ a run.

Slide 03 // The Solution

Continuous, private, on-chain solvency.

Crisp encodes the whole liability book as a ZK Merkle-Sum Tree and proves one statement on-chain: "liabilities sum to L, reserves R โ‰ฅ L, and I signed this" โ€” revealing no balance and no exact figure.

โšก Real-time

scrape โ†’ prove โ†’ attest

๐Ÿ”’ Zero leakage

balances salted & blinded

๐Ÿ–Š๏ธ Issuer-bound

in-circuit EdDSA signature

๐Ÿ† Inclusion

holder verifies in <1s

Slide 04 // Live Demo & Flow

What the judges see

$ npm run prove:demo

1. Connect Freighter โ†’ Issuer Dashboard

2. Scrape holder balances (Horizon)

3. Merkle-Sum Tree + Groth16 + EdDSA(root)

4. attest_reserves(...) โ†’ BN254 pairing on-chain

valid proof โ†’ true โœ“

tampered input โ†’ false โœ— (negative control)

5. Customer salt โ†’ local inclusion check <1s

Honest status: the hosted web app is a demo sandbox for UX; the load-bearing ZK is prove:demo + the deployed contract.

Slide 05 // Architecture & Tech

Poseidon + EdDSA in the circuit. BN254 pairing on the ledger.

ZK Circuit

Circom/Groth16 over bn128 ยท Merkle-Sum + Poseidon + EdDSA-Poseidon ยท ~30k constraints ยท nPublic = 5

Verifier

Rust/Soroban 26 ยท env.crypto().bn254().pairing_check() runs full Groth16 on-chain (Protocol 25/26) ยท g1_mul/g1_add MSM

Indexer

Stellar Horizon ยท native balance/trustline scraping, no custom node

App

Next.js 16 / React 19 / Supabase ยท roots indexed from on-chain events

A raw-WASM pairing check would exhaust Soroban's CPU budget โ€” Crisp leans on the native host functions exactly where it counts.

Slide 06 // Market & Impact

Mandated demand, not speculation.

$200B+

stablecoin market cap โ€” every dollar a liability someone must prove is backed.

MiCA

+ US frameworks + exchange PoR mandates force recurring attestation.

10ร—

better than the audits issuers already pay for โ€” faster, private, continuous.

Slide 07 // Business Model

How Crisp survives the hackathon

01

Attestation-as-a-Service โ€” SaaS per attestation cadence (hourly/daily/on-demand).

02

"Crisp Verified โœ“" SDK โ€” wallets, exchanges & aggregators embed the badge. Freemium โ†’ enterprise.

03

Compliance data layer โ€” historical solvency roots for auditors & regulators (premium analytics).

04

Cost moat โ€” sub-cent Soroban verification โ†’ attest continuously at a price legacy auditors can't touch.

Slide 08 // Competitive Edge

Why Crisp wins

Big-4 audit On-chain Merkle PoR Crisp
Real-time โŒ โš ๏ธ โœ…
Privacy โš ๏ธ NDA โŒ โœ…
Trustless โŒ โœ… โœ…
Issuer-bound PDF sig โŒ anyone posts โœ… in-circuit EdDSA
Cost / attestation $$$$ gas sub-cent

Most ZK PoR demos let anyone post a root. Crisp's BabyJubjub EdDSA binds the proof to the issuer's key.

Slide 09 // Traction & Validation

Built & verified, not vaporware

โœ… Verifies on testnet

Real Groth16 proof accepted on-chain โ€” reproduce with npm run prove:demo.

โœ… Negative control

Tampered inputs rejected on-chain โ€” verification is real, not theater.

โœ… Hardened circuit

Added in-circuit EdDSA identity binding: 21,908 โ†’ ~30,000 constraints.

โœ… Measured cost

Pairing check โ‰ˆ 22.4M CPU (~22% budget), ~120KB mem; G1 op โ‰ˆ 14,488 CPU.

Slide 10 // Roadmap

30 / 60 / 90 days

30 DAYS

Redeploy BN254 + EdDSA contract; stellar.expert verified + live attestation explorer.

60 DAYS

In-browser proving (snarkjs WASM), multi-asset reserve baskets, distributed scrapers.

90 DAYS

Multi-issuer registry + regulator read-API; first design-partner issuer; badge SDK.

Slide 11 // Team

Engineering leverage

Edy Cu

full-stack + applied-ZK engineer

Solo-built the entire stack โ€” Circom circuits (Merkle-Sum + Poseidon + EdDSA), the Rust/Soroban verifier, the Horizon scraper, and the Next.js dashboard. One of five real on-chain ZK products shipped for this hackathon.

Slide 12 // The Ask

Trust is a rumor.
Proof is math.

Crisp makes solvency a continuous, private, on-chain fact โ€” the missing primitive for every regulated issuer on Stellar.

npm run prove:demo  # go verify it yourself