At the core of Abyss is a single, well-defined zero-knowledge statement: a withdrawal is valid if and only if it corresponds to a previously committed deposit, has not been spent before, and does not exceed the committed balance. Everything else in the protocol exists to support this statement. Formally, each withdrawal is accompanied by a ZK-SNARK proof asserting knowledge of a witness ( W ) such that the following conditions hold.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.
VII.1.1 Public Inputs
The verifier contract receives a fixed set of public inputs:VII.1.2 Private Witness
The witness is never revealed and exists only inside the proof circuit:VII.1.3 Core Proof Statement
The circuit enforces the following constraints simultaneously:VII.1.4 Zero-Knowledge Properties
The proof system guarantees:- Completeness: valid withdrawals always verify
- Soundness: invalid withdrawals cannot verify
- Zero-knowledge: no information about the witness leaks
VII.1.5 Why This Structure Matters
This construction achieves three critical goals simultaneously:- Prevents double-spending without identity
- Enforces balance conservation without accounts
- Preserves unlinkability across time and actions

