Documentation Index
Fetch the complete documentation index at: https://docs.useabyss.com/llms.txt
Use this file to discover all available pages before exploring further.
5.1 Commitment Construction
In Abyss, deposits are not tracked as balances tied to addresses. Instead, each deposit is represented as a cryptographic commitment derived from a secret known only to the depositor. This commitment is what enters the anonymity pool. Formally, a commitment is constructed as:secret_keyis generated client-side and never revealeddeposit_nonceensures uniqueness across depositsdeposit_amountbinds value to the commitment
H is collision-resistant and circuit-compatible. Once computed, C is inserted as a leaf into the global Merkle tree representing the anonymity pool.
This design ensures that the protocol can verify the existence of a deposit without learning anything about who made it or how it will be spent.
5.2 Merkle-Based Anonymity Set
All commitments exist within a single Merkle tree:|AnonymitySet| = n directly bounds privacy. A withdrawal proof only asserts that one of these commitments is being spent, without revealing which one.
Key property:
5.3 Nullifier Design
To prevent double-spending without revealing identity, Abyss uses nullifiers. For a given secret:- Deterministic per withdrawal
- Unique per spend
- Unlinkable to commitment without secret knowledge
N is revealed as a public input and checked against an on-chain nullifier registry:
5.4 Infinite Withdrawal Model
Unlike single-use note systems, Abyss supports multiple withdrawals from a single deposit. Internally, this is enforced through balance accounting inside the ZK circuit. The circuit asserts:- Micropayments
- Streaming payouts
- Merchant payments
- Partial liquidity exits
5.5 Anonymity Set Dynamics
Anonymity is not static. It evolves with protocol usage. Positive factors:- Frequent deposits
- Overlapping withdrawals
- Time separation between actions
- Immediate withdraw-after-deposit
- Unique withdrawal patterns
- Low pool usage
5.6 Security Implications
Commitments, nullifiers, and Merkle inclusion together ensure:- Ownership without identity
- One-time spend guarantees
- No balance inflation
- No linkage across time

