Document
stealthPRIVATE / Deep Reference
Proof System
zk-STARK · Winterfell
Bridge
Federation P2SH Multisig
Client
v3.3.4.0
Privacy Layer · Dedicated Sidechain

Shielded by Design.

stealthPRIVATE is a fully dedicated private sidechain where sender, receiver, and amount are hidden by mathematics, not by policy. No transparent fallback. No opt-in privacy. Every transaction inside the sidechain operates under zk-STARK guarantees — always.

zk-STARKs Post-Quantum Feeless Pool-based No Explorer
Value crosses the bridge. What emerges on the private side is a commitment, not a trace.
Architecture
Sidechain
Dedicated · no transparent fallback
Proof System
zk-STARK
Hash-based · no trusted setup
Bridge Security
n-of-m
Federation P2SH multisig quorum
Privacy Set
Pool
Mint-burn · no per-user linkage
Explorer
None
No rich list · no tx lookup
01 · THESIS

Shielded by default.
Not bolted on.

Design principle · Not a toggle
Most zero-knowledge chains — Zcash included — bolt privacy onto a transparent UTXO chain as an optional feature. Most transactions remain visible; shielded users are the minority, and the minority is itself legible. stealthPRIVATE inverts that. It is a dedicated private sidechain, fully integrated with stealthCORE. There is no transparent fallback, no opt-in privacy. The entire chain operates under zk-STARK guarantees — always.
02 · ARCHITECTURE

The Core-to-Private bridge.

CBridgeDeposit · federation P2SH

A deposit is recorded on stealthCORE as a CBridgeDeposit. It locks XST transparently into a multisig address and instructs stealthPRIVATE to mint an equivalent shielded note. The record is minimal by design — only what is needed for custody and withdrawal is persisted.

CBridgeDeposit

Record · On-chain
  • Core chain txid The locking transaction that committed the XST
  • Amount locked XST value locked into the multisig address
  • Multisig P2SH address Pay-to-Script-Hash address holding the locked XST
  • Committee keys · threshold quorum A per-deposit committee of bonded StealthNodes; a signing threshold authorises a spend
  • Spent flag Marked when the deposit UTXO is consumed by a withdrawal
What is deliberately absent: no sender address, no receiver XSS address. The XSS address is used only at the moment of minting to create the shielded note — it is never persisted. This is intentional. The record cannot be used to link deposit to receiver, ever.

Flow · Core → Private → Core

  1. Lock on stealthCORE
    User sends XST to the federation multisig P2SH address. This lock is transparently visible on Core.
  2. Record CBridgeDeposit
    Core-chain txid, amount, P2SH address, staker keys, and spent flag are written as the deposit record.
  3. Mint shielded note
    An equivalent shielded note is minted to the recipient XSS address on stealthPRIVATE. nTotalMinted is incremented.
  4. Transact freely inside stealthPRIVATE
    Shielded-to-shielded transfers — split, merge, relay — all fully private. Zero on-chain sender, receiver, or amount.
  5. Burn on withdrawal
    The spender burns a note on stealthPRIVATE. nTotalBurned is incremented. The destination XST address is a free parameter.
  6. Unlock on stealthCORE
    The committee's signing threshold authorises a transaction that unlocks XST from the P2SH address to the withdrawal destination. The consumed deposit UTXO is marked spent.
03 · POOL

A pool, not a pairing.

nTotalMinted · nTotalBurned
netSupply=nTotalMinted−nTotalBurned

Deposits and withdrawals do not pair per-user. The bridge tracks two counters only — nTotalMinted and nTotalBurned — and enforces a single invariant: the shielded pool must always net to a non-negative, Core-collateralised supply. Every user's withdrawal consumes some unspent deposit UTXO. Which one is immaterial and unlinkable to the withdrawer.

nTotalMinted
Incremented on every deposit. The lifetime total of shielded supply ever created.
nTotalBurned
Incremented on every withdrawal. The lifetime total of shielded supply ever destroyed.
netSupply
Current shielded supply. Always matches XST locked in the multisig on Core.
anonymity set
All historical depositors. Grows monotonically with nTotalMinted.

Worked example · 100 small deposits, one large exit

Step 01
User sends 100 deposits of 1,000 XST each — 100,000 XST total — to the bridge. nTotalMinted += 100,000.
Step 02
100 shielded notes of 1,000 XSS land in the user's shielded wallet. They can now split, merge, and relay these notes inside stealthPRIVATE — no on-chain trace.
Step 03
User issues one withdrawal of 50,000 XSS back to Core — to any XST address they name. The destination does not have to be theirs; it does not have to match any deposit.
Step 04
50,000 XSS is burned from the shielded wallet. nTotalBurned += 50,000. The bridge selects an unspent deposit UTXO (or combination) that covers the request and releases 50,000 XST from the multisig.
Result
100 → 1 transformation. Deposit amounts, timings, and addresses do not match the withdrawal. The bridge sees a pool rebalance. The chain sees no link.
04 · SHIELDED

What moves inside the private pool.

Notes · Nullifiers · zk-STARKs

Funds exist as encrypted notes. Spending proves ownership without naming it.

A shielded note is a cryptographic commitment stored on-chain. It binds an amount and an owner — but reveals neither. The chain cannot tell you what a note is worth or who holds it, only that a valid note was created.

To spend a note, the owner publishes a nullifier — a one-way derivative of the note that marks it consumed, without revealing which note it was — and a zk-STARK proof attesting that the note existed, was not previously nullified, and that the output balances check out.

A global nullifier set prevents double-spending. Observers see that a nullifier appeared; they cannot tell which note produced it. Sender, receiver, and amount are not obfuscated — they are mathematically absent from the public record.

Spend bundle · composition

  • spend action Consumes an existing shielded note. Emits the note's nullifier; proves ownership in zero-knowledge.
  • output action Creates a new shielded note encrypted to the recipient's viewing key.
  • change output A second output action — back to the sender — when spend value exceeds transfer value. Identical on-chain shape to any output.
  • zk-STARK proof Hash-based zero-knowledge proof binding all actions. Verifies in under a millisecond. Post-quantum. No trusted setup.

Inside stealthPRIVATE, value moves freely: B → C, C → D, split, merge, relay. Every step is shielded end-to-end. Only the size of the nullifier set and the size of the note commitment tree grow — neither reveals anything about who moved what, or when.

05 · DISCLOSURE

Selective transparency, on the sender's terms.

Sender-originated · OVK

Prove a single payment happened — without unveiling anything else.

Payment Disclosure lets a sender selectively prove a single shielded payment to a third party, using their Outgoing Viewing Key (OVK) — a capability strictly weaker than spend: it can reveal the holder's own outgoing notes but can never move funds.

The disclosure reveals only what is needed for the other party to verify: the receiver address, the amount, and the memo — for one specific note. Nothing about the sender's wallet state, balance, other transactions, or history leaks.

There is no extra zero-knowledge circuit. A note commitment is a hash, cm = H(value ‖ ak ‖ ρ), and a collision-resistant hash has only one valid opening — so producing that opening is the proof of the payment's contents. The OVK's job is recovery: at output time the sender keeps an OVK-sealed record, then later re-derives the opening from the on-chain cm. A third party checks the opening and a Merkle inclusion proof that the commitment really sits in the on-chain set — so a self-consistent but never-created payment is rejected.

The result is surgical: binding (a forged amount or recipient fails), confidential to the OVK holder, and chain-bound to real payments — for the narrow cases where proof-of-payment is useful: refund, dispute, or merchant verification. Disclosure is sender-cooperative by design — it is a tool for proving a payment, not for compelling its reveal.

Use cases

  • Merchant verify Buyer proves a specific invoice was paid, without exposing wallet or other activity.
  • Dispute resolve Attach a disclosure to a support ticket — proof-of-payment for one note, nothing more.
  • Compliance Regulated parties disclose selected transactions on request — without wholesale chain analysis.
  • Refund processing Identify the original shielded payment for a refund flow, without breaking the counterparty's privacy.
06 · VISIBILITY

No rich list. No transaction explorer.

By design · Not a roadmap item

The stealthPRIVATE sidechain has no rich list, no visible transactions, and no searchable explorer — by design. The rich list RPC (getrichlist) only tracks transparent addresses on stealthCORE. Shielded transactions cannot be viewed, searched, or listed. Not "not yet"; not "for now" — not ever. The explorer does not and cannot exist for the shielded chain.

Hidden · always

What the chain does not show

  • Senders — shielded spends name no address.
  • Receivers — shielded outputs name no address.
  • Amounts — neither transfer nor change value is visible.
  • Balances — there is no per-address ledger to enumerate.
  • Rich list — nothing to rank. No ordering exists.
  • Transaction history — shielded txs are not indexable by participant.
Visible · aggregate only

What remains public

  • Block height — the chain's tip.
  • Net supply — nTotalMinted − nTotalBurned.
  • Note commitment tree size — a monotone counter.
  • Nullifier count — total spends ever.
  • Bridge deposits — visible on Core, not linkable to shielded activity.
  • Consensus state — block validity, tip hash, protocol params.
07 · ZK vs. RINGS

Why zk-STARKs are a different class of privacy.

Mathematical proof · not statistical obfuscation

Ring signatures hide you in a crowd. zk-STARKs prove a transaction is valid without disclosing anything.

Both schemes were designed to protect transaction privacy on public blockchains. They achieve this through radically different mechanisms — with dramatically different security properties.

Ring signatures provide plausible deniability: one signer in a group, statistically hidden. zk-STARKs provide cryptographic certainty: a mathematical proof that nothing was revealed. One is obfuscation. The other is proof.

The distinction is not academic. It determines whether privacy strengthens, holds, or degrades as chain data accumulates — and whether it survives the quantum computer.

01 · What each scheme actually is

Ring Signatures

Obfuscation through decoys

A transaction is signed by one member of a predefined group — the "ring." The signer selects n − 1 other public keys as decoys. An observer cannot definitively tell which member signed.

The privacy is statistical, not mathematical. The set of candidate signers — decoys included — is publicly visible on-chain. Every ring member, real and fake, is recorded forever. Monero is the canonical user of this scheme.

zk-STARKs

Proof without disclosure

A zero-knowledge scalable transparent argument of knowledge. The prover generates a proof encoding the entire validity of a transaction — inputs, outputs, balances — without revealing any value.

No decoys. No candidate set. No statistical model to attack. The privacy is encoded in the mathematics of the proof itself — and it does not weaken as chain data accumulates.

02 · Quantum security, trust, verification
Rings · Quantum

Broken by Shor's algorithm

Elliptic-curve assumptions

Ring signatures rest on elliptic-curve discrete-log hardness — exactly what a large quantum computer running Shor's algorithm breaks. Every ring member is recorded on-chain forever, waiting to be deanonymised retroactively.

zk-STARKs · Quantum

Post-quantum by construction

Hash functions only — no curves

A zk-STARK's only cryptographic assumption is a collision-resistant hash. No elliptic curves, no pairings, no discrete-log. Shor's algorithm has nothing to attack. The trade: proofs are tens of kilobytes, not bytes — a deliberate exchange for security with no expiry date.

Rings · Verify

Grows with ring size

Privacy adds verification overhead

Verifying a ring signature checks the relationship across all n members. A ring-16 transaction verifies roughly 16× slower than a trivial one. On high-throughput chains, the overhead compounds.

zk-STARKs · Verify

Poly-log, sub-millisecond

Privacy adds negligible verification cost

zk-STARK verification is poly-logarithmic in the computation — independent of the anonymity set. A shielded transfer verifies in ≈0.8 ms. This is compatible with high-throughput chains that must validate thousands of transactions per second.

03 · Privacy completeness — what each scheme actually hides
Eight-row comparison · privacy property by scheme
Privacy property zk-STARKs Ring Signatures
Sender identity hidden Provably complete Probabilistic
Receiver identity hidden Provably complete Partial
Transaction amount hidden Native & complete Add-on required
Resistant to chain analysis Permanent guarantee Degrades over time
On-chain decoy records None Yes — all visible
Post-quantum secure Yes — hash-based No — elliptic-curve
Verification overhead Sub-millisecond · poly-log Scales with ring size
Privacy guarantee type Cryptographic / mathematical Heuristic / statistical
08 · SPECIFICATIONS

Privacy layer · canonical parameters.

Source of record
Architecture Dedicated sidechain stealthPRIVATE runs alongside stealthCORE. Fully shielded by default — no transparent pool, no opt-in.
Proof system zk-STARK · Winterfell Zero-knowledge scalable transparent arguments of knowledge. Hash-based (Rescue-Prime, Goldilocks field). Post-quantum. No trusted setup. Pure STARKs — no SNARK wrapper.
Bridge record CBridgeDeposit Stores the Core chain txid (locking transaction), amount locked, multisig P2SH address, committee keys (threshold quorum), and a spent flag. Does not store sender or receiver XSS address.
Custody model n-of-m P2SH multisig A per-deposit committee of bonded StealthNodes governs unlock; a signing threshold is required for withdrawal.
Privacy set Pool · mint-burn nTotalMinted − nTotalBurned = net supply. Anonymity set is every historical depositor.
Spend bundle spend · output · change · proof One spend action, one output action, one optional change output, one zk-STARK proof. ≈40 KB per transfer; verifies in ≈0.8 ms.
Note model Commitment + nullifier Notes are on-chain commitments. Nullifiers prevent double-spending with zero disclosure of which note was consumed.
Payment Disclosure OVK-based Sender-originated proof of a single payment: recipient, amount, and memo only — a selective opening of the note commitment, bound to the chain by a Merkle inclusion proof. Selective transparency; does not leak wallet state.
Explorer visibility None — by design Public data: block height, net supply, note commitment tree size, nullifier count. No rich list. No transaction explorer.
Fees Feeless No per-transaction fees inside the shielded pool.
SPEC · v0 Full specification → back to landing