Slide 01 // Title

OBSCURA Obscura Logo

Settle the invoice. Hide the price. Kill the double-spend.

Confidential B2B invoice settlement in USDC — proving amount ≤ credit limit & paid on time without exposing the price — with on-chain anti-fraud nullifiers.

Soroban · UltraHonk · SEP-41

settle_invoice(proof, inputs, ...)
→ valid & unspent → paid ✓
→ replayed → nullifier reject ✗

Stellar Hacks: Real-World ZK · DoraHacks

Slide 02 // The Problem

Public chains leak prices and enable invoice fraud.

Pricing leakage

Competitors monitor settlement contracts, read invoice values, and reverse-engineer your confidential wholesale pricing.

Double-factoring fraud

A supplier settles the same invoice with multiple financiers — costing the trade-finance industry billions annually.

Slide 03 // The Solution

Confidential settlement with a fraud-proof nullifier.

Invoices tokenized as SEP-41 assets with encrypted metadata. The buyer settles with a client-side Noir proof — amount within credit limit, paid on time — never revealing the value.

Private

validity, not value, on-chain

Fraud-proof

Poseidon2 nullifier blocks replay

Terms

amount ≤ limit, time ≤ due

Atomic

verify → nullify → pay

Slide 04 // Live Demo & Flow

What the judges see

$ npm run prove:demo

1. supplier mints SEP-41 invoice + AES-GCM envelope

2. buyer Noir proof: amount ≤ limit · time ≤ due

nullifier = Poseidon2(invoice_id, buyer)

3. settle_invoice(...) → UltraHonk via P26 MSM on-chain

valid & unspent → register nullifier, pay USDC ✓

replayed → nullifier rejects ✗

Settle the same invoice twice → the second reverts on the nullifier. Hosted app = UX sandbox; load-bearing ZK = prove:demo + deployed contract.

Slide 05 // Architecture & Tech

One pipeline, executed deep.

ZK Circuit

Noir / UltraHonk · range proof (amount ≤ credit line) + due-date check + Poseidon2 nullifier

Verifier

Rust/Soroban + rs-soroban-ultrahonk · Protocol 26 BN254 MSM · reads due_date & nullifier from bb's own public_inputs blob

Token

SEP-41 standardized invoice assets, ecosystem-compatible

Settlement

require_auth() buyer approval · ledger().timestamp() terms · event receipts

UltraHonk on-chain, consuming bb's native public_inputs bytes — sidestepping the field-ordering bugs that break naive integrations.

Slide 06 // Market & Impact

A multi-trillion-dollar market bleeding to fraud.

$T+

global trade finance; invoice factoring alone is multi-trillion.

$B

lost to double-factoring fraud every year — structurally invisible without a shared registry.

1st

on-chain primitive that protects pricing AND makes double-factoring impossible.

Slide 07 // Business Model

How Obscura survives the hackathon

01

Per-settlement fee — basis points on each confidential invoice settlement.

02

Anti-fraud network — financiers pay to query/contribute to the shared nullifier registry (value compounds with size).

03

Enterprise SaaS — confidential settlement module for ERP / supply-chain finance platforms.

04

Cost moat — sub-cent settlement beats legacy factoring reconciliation overhead.

Slide 08 // Competitive Edge

Why Obscura wins

Legacy factoring Public-chain settle Obscura
Price privacy ⚠️ paper ✅ ZK range
Double-factoring blocked ❌ manual ✅ nullifier
On-chain settlement
Terms enforced in ZK
Cost overhead gas sub-cent
Slide 09 // Traction & Validation

Built & verified, not vaporware

✅ Verifies on testnet

Real Noir/UltraHonk proof accepted on-chain — npm run prove:demo.

✅ Negative control

Tampered inputs rejected on-chain.

✅ Settlement hardened

settle_invoice reads real bb public_inputs (due_date/nullifier); broken to_xdr removed; double-spend guard tested.

✅ Measured cost

ZK verify + settlement ≈ 144,562 CPU (~0.14% budget), ~51KB mem. 120+ assertions, 6-stage CI.

Slide 10 // Roadmap

30 / 60 / 90 days

30 DAYS

stellar.expert verified; live confidential-settlement + double-spend-rejection demo.

60 DAYS

Cumulative credit tracking — global outstanding-debt state (today: per-invoice check only).

90 DAYS

Shared cross-financier nullifier registry, in-browser proving, first trade-finance partner.

Slide 11 // Team

Engineering leverage

Edy Cu

full-stack + applied-ZK engineer

Solo-built the Noir/UltraHonk invoice circuit (range proof + due-date + Poseidon2 nullifier), the Rust/Soroban settlement contract with the embedded rs-soroban-ultrahonk verifier and SEP-41 integration, the AES-GCM tokenizer, and the Next.js console. One of five real on-chain ZK products shipped for this hackathon.

Slide 12 // The Ask

Settle the invoice.
Hide the price.
Kill the double-spend.

Obscura gives trade finance its first on-chain primitive that protects pricing and makes double-factoring cryptographically impossible — settled on Stellar.

npm run prove:demo  # try to settle twice — it reverts