Obscura Network — Privacy ZK Rollup on Celestia (Mocha-4 live)

Hey Celestia community :waving_hand:

I’ve been building Obscura Network — a privacy-first ZK rollup that uses Celestia for data availability.

What it does

Private-by-default transactions: amounts and recipients are hidden on-chain using a shielded UTXO pool. Regulatory
auditors get ZK compliance proofs (range proofs) that prove total volume ≤ limit without revealing individual
transactions.

The killer use case: corporate payroll and treasury on-chain. Companies currently can’t put salaries on public
blockchains because competitors see everything. Obscura solves this.

Current status

:white_check_mark: Node running on Celestia Mocha-4 testnet
:white_check_mark: Blobs submitting to namespace obscura--b
TX: 0x90CDB6C0641C8BDBE9ABA34A56DD8D3D0E0EDFC38B962F35D7EA0B79FC434289
:white_check_mark: TypeScript SDK — shield TX tested end-to-end against live node
:white_check_mark: obscura-privacy Rust module: shield / transfer / unshield
:white_check_mark: ZK proof engine (mock for Phase 1, SP1 integration planned)

Why Celestia specifically

  1. Privacy proofs are large (100s of KB) — Celestia makes DA affordable
  2. Sovereign rollup — no Ethereum L1 dependency for ordering
  3. Namespace isolation — obscura--b batches, obscura--p proofs
  4. Modular: we can upgrade ZK backend without touching DA layer

Stack

  • DA: Celestia (Sovereign SDK)
  • Execution: EVM-compatible (Chain ID: 9977)
  • Privacy: custom Rust module
  • ZK: mock → SP1 (Succinct) in Phase 2
  • SDK: TypeScript @obscura-network/sdk

Links

Happy to answer questions. Looking for feedback from builders in the ecosystem.

3 Likes

:counterclockwise_arrows_button: Update — April 2026

A lot has shipped since the initial post. Here’s where Obscura stands today:

Infrastructure

  • :white_check_mark: Rollup node live on Celestia Mocha-4 (namespace obscura–b)
  • :white_check_mark: Public RPC: http://49.13.23.128:12346
  • :white_check_mark: Auto-relayer running on Hetzner (scans Ethereum Sepolia every 30s)

ZK Bridge (Ethereum ↔ Obscura)

  • :white_check_mark: ObscuraBridgeV2.sol deployed on Sepolia with 2-of-3 multisig relayer
  • :white_check_mark: Deposit → ClaimDeposit → auto-shield into private pool — full end-to-end
    tested
  • :white_check_mark: Withdraw back to Ethereum working
  • :white_check_mark: SP1 Helios circuit written (trustless beacon chain finality proof — mock mode
    now, real proofs Phase 2)

Privacy + Compliance (the core differentiator)

  • :white_check_mark: OFAC Sanctions Oracle — 87 sanctioned ETH addresses, live non-membership ZK
    proof on every transfer
  • :white_check_mark: Viewing Keys — users can share a key with a private auditor for voluntary
    disclosure
  • :white_check_mark: Compliance Oracle — auditor can decrypt any transaction without user
    cooperation — dual X25519 encryption at protocol level, every note encrypted twice
    (once for user, once for oracle)

Live dApp: https://dapp-six-teal.vercel.app


The key insight: every privacy project today gives you privacy or compliance.
Tornado Cash → perfect privacy, OFAC-sanctioned, unusable. Aztec → privacy without
compliance guarantees. Obscura is the first rollup where compliance is built into
the protocol — not bolted on.

Regulators get ZK proofs. Users get privacy. No tradeoff.


Interested in feedback from the Celestia ecosystem — especially on the DA usage
patterns and whether the namespace structure makes sense for this use case.