establishing connection
0%
request-access.sh

> enter email to join the queue

You'll be notified by email when access opens up. No spam, no third parties.

status   queued
position   0
notify   email on access grant
occlude-protocol.md v0.3 · draft

Zero-knowledge settlement

The Occlude Protocol

This document describes what the protocol proves, what it hides, and what it doesn't. It is a description of intended behavior, not a guarantee.

1. Overview

Occlude routes trades through a shielded pool secured by zero-knowledge proofs. Positions enter the pool as deposits and leave as settlements; nothing in the on-chain record links one to the other. The mechanism is a three-stage pipeline: shield, prove, settle.

2. The shielded pool

Deposits enter a shared pool rather than moving wallet-to-wallet. Once inside, a position is indistinguishable from any other position of the same denomination — the same principle Zcash's shielded pool and, more recently, Penumbra's private trading venue are built on. Withdrawals are unlinked from deposits by construction, not by policy: there is no log to subpoena, because the pool itself doesn't retain the mapping.

3. Proof system

Every trade is accompanied by a zk-SNARK — a succinct, non-interactive proof that the trade is valid: sufficient balance, correct authorization, no double-spend. The verifier checks the proof in constant time and never sees the amount, the counterparty, or which prior deposit the funds are drawn from. The proof convinces without revealing.

4. Disclosure boundary

The proof system hides the details of a trade, not its existence. The table below is the actual boundary, no more, no less.

FieldStatus
Amount
Counterparty
Wallet-to-trade link
That a transaction occurredvisible
Aggregate pool activityvisible
Settlement timingvisible

5. Trust assumptions & limitations

Like any zk-SNARK system, Occlude's circuit relies on a one-time trusted setup ceremony; its soundness holds as long as at least one participant destroyed their portion of the toxic waste. The pool's anonymity set grows with usage — privacy is a property of the crowd you're settling alongside, not a fixed guarantee. Occlude has not undergone a third-party security audit. Treat this document as a description of intended behavior, not a warranty.

v0.3Clarified disclosure boundary language.
v0.2Added settlement timing to the visible set.
v0.1Initial draft.
occlude /əˈkluːd/ verb
to stop up, close, or block; to shut off from view or access.

Zero-knowledge settlement

Your position.
Invisible
onchain.

routing   shielded pool
counterparty   not disclosed
proof   zk-SNARK

Why it matters

Privacy isn't the feature. It's what stops these from happening.

Front-running

Public mempools let bots see a trade before it lands, and price against it. A shielded trade can't be sandwiched if its size and direction were never visible.

Strategy leakage

A visible wallet is a visible strategy. Anyone can watch, copy, or trade ahead of a pattern that plays out in public. Shielding breaks the link between wallet and position.

Targeted exposure

A large, identifiable on-chain balance is a target — for phishing, for social engineering, for worse. What isn't visible can't be targeted.

Shield. Prove. Settle.

Every position moves through the same three-stage pipeline before it reaches the ledger.

Shield

Funds enter the shared pool. The deposit is no longer distinguishable from any other.

Prove

A zk-SNARK proof confirms the trade is valid, without revealing amount or counterparty.

Settle

Execution finalizes on-chain. No entry links the output back to your original deposit.

What's shielded. What isn't.

Zero-knowledge proofs hide the details of a trade, not its existence. Here's the actual boundary, no more, no less.

amount 4.281 ETHhidden
counterparty 0x7fA3...b21chidden
wallet link 0x91Ee...4d02hidden
settlement time 14:22:07 UTCvisible
Shielded volume (24h)
0 ETH
Proofs settled
0
Avg settlement
0.0s
Boundary status
Enforced