Privacy Architecture
Imagine you have money in your wallet. Normally, when you use it on a blockchain, everyone can see how much you have, who you pay, and how much you send. Orbinum changes this using zero-knowledge cryptography, allowing you to make transactions where these details remain private.
This guide shows you how that privacy system works, what operations you can perform, and what guarantees you get.
What can you do in Orbinum?
Deposit public tokens into the private pool. Your funds become confidential.
Send private tokens to other users without revealing amounts or identities.
Withdraw tokens from the private pool to a public account visible on the blockchain.
Prove properties of your funds without revealing exact amounts (Q2 2026).
How it works: The Shielded Pool
The shielded pool is like a common vault where all private funds are mixed together. When you deposit tokens, they become notes — cryptographic receipts that only you can spend.
A note is like a private bill that contains:
- Amount: how many tokens it represents
- Asset ID: what type of token it is (ORB, USDT, etc.)
- Owner: who can spend it (your public key)
- Blinding: a random number to hide all of the above
Operation 1: Shield (Deposit to Private Pool)
When you shield, you convert public tokens into private ones by depositing them into the shielded pool.
Flujo paso a paso
Your wallet generates a note with your amount, asset ID, public key, and a random blinding factor
commitment = Poseidon(amount, asset_id, owner_pubkey, blinding)
The runtime locks your public tokens and adds the commitment to the Merkle tree
Your wallet stores the complete note to be able to spend it later. ⚠️ If you lose it, you lose the funds.
What is still public?
- Your public account deposited funds
- The deposit timestamp
- Commitment (meaningless hash)
- Exact amount deposited
- Asset ID (partially)
- Blinding factor
- Where those funds will go next
Operation 2: Private Transfer
A private transfer moves funds within the shielded pool without revealing who sends, who receives, or how much is sent.
Step-by-step flow
Your wallet searches for notes you own with enough balance to cover the amount to send
One note for the recipient (e.g., 50 USDT) and one for you with the change (e.g., 50 USDT remaining)
This takes 2-5 seconds. The proof validates that:
- You own the input notes
- The notes are in the Merkle tree
- Amounts balance (input = output)
- Nullifiers are correct
The runtime verifies the ZK proof (~3ms), marks nullifiers as spent, and adds the new commitments
What remains public?
- A private transaction occurred
- Nullifiers (meaningless hashes)
- New commitments (meaningless hashes)
- Transaction timestamp
- Who sent
- Who received
- How much was sent
- Which asset was used
- Relationship between inputs and outputs
A nullifier is a unique hash calculated from a note when you spend it. It's published on-chain to prevent that same note from being spent twice (double-spending). Without your private key, no one can link the nullifier to the original commitment, maintaining your privacy.
Operation 3: Unshield (Withdrawal from Private Pool)
Unshield takes tokens out of the private pool and sends them to a public account. This operation reveals the amount and the recipient.
Step-by-step flow
Choose a note with sufficient balance for the withdrawal
The proof demonstrates you own the note and that the amount is correct, without revealing other details
Includes: ZK proof, nullifier, amount to withdraw, and recipient's public address
The runtime verifies the proof, marks the nullifier as spent, and transfers tokens to the public account
What remains public?
- Exact amount withdrawn
- Public recipient
- Asset ID
- Timestamp
- Who withdrew the funds
- Where the funds came from
- How much balance remained in the note
- Previous history of those funds
Unshield links your private identity with a public account. If someone observes that you deposited 100 USDT and then withdraw 100 USDT shortly after, they can infer those funds are probably yours. For maximum privacy, wait and mix with other users before withdrawing.
Operation 4: Selective Disclosure
Available in Q2 2026
Selective disclosure allows you to prove properties of your funds without revealing exact amounts. It's useful for regulatory compliance and enterprise use cases.
Prove that your balance is within a range without revealing the exact amount. Example: "I have more than $10,000"
Demonstrate compliance with regulations without exposing your complete financial history
Provide selective audit trails to authorities without compromising general privacy
The Merkle Tree: Where Commitments Live
All commitments are stored in a binary Merkle tree of depth 20, allowing up to 1,048,576 notes.
The Merkle tree allows proving that a note exists in the pool without revealing which one it is. When you spend a note, you generate a "Merkle proof" that demonstrates its inclusion in the tree without pointing to exactly where it is. This breaks the link between deposits and spends, maintaining your privacy.
Privacy Guarantees and Limitations
✅ What is protected
- Amounts in private transfers (fully hidden)
- Identities of sender and recipient in transfers
- Relationship between inputs and outputs (unlinkable)
- History of a note before being spent
- Individual balances within the pool
⚠️ What remains visible
- Shield/unshield operations link public accounts with the pool
- Transaction timing (when they occur in each block)
- Merkle tree growth (size of the anonymity set)
- Asset type can be partially inferred in some cases
- Unshield amounts are completely public
- Use common denominations: instead of 137.42 USDT, round to 100 or 150
- Wait before unshielding: don't withdraw immediately after depositing
- Mix with other users: the more transactions there are, the larger your anonymity set
- Split funds into multiple notes: don't use a single large note
Multi-Asset: One Pool for All Tokens
Orbinum's shielded pool supports multiple assets (ORB, USDT, DAI, etc.) in the same Merkle tree.
Advantages of the multi-asset approach
All notes from all assets contribute to the same anonymity set, increasing everyone's privacy
A single Merkle tree simplifies proof verification compared to separate trees per asset
The design facilitates private cross-asset exchanges in future versions
Learn More
📄️ System Overview
Introduction to Orbinum's privacy-focused blockchain architecture.
📄️ Privacy Architecture
How Orbinum enables confidential transactions through zero-knowledge proofs
📄️ ZK Proofs
Understanding how zero-knowledge proofs enable privacy in Orbinum
📄️ Consensus Mechanism
Orbinum's consensus - Substrate's NPoS with Aura and GRANDPA.
📄️ EVM Compatibility
Full Ethereum compatibility for seamless dApp deployment.
📄️ SDK & Developer Tools
High-level SDKs for building privacy-preserving applications on Orbinum.
📄️ Node Operations
Running and maintaining Orbinum nodes in production environments.