VII.3.1 Verification Contract Responsibilities
The verifier contract performs a narrow and explicitly defined set of actions:VII.3.2 Bounded Gas Costs
ZK-SNARK verification has constant-time complexity with respect to anonymity set size. This is critical. Verification cost does not grow as the pool grows, which prevents privacy from becoming economically prohibitive at scale. Gas usage is therefore a function of:- The chosen proof system
- The number of pairing checks
- The size of public inputs
- Number of deposits
- Number of withdrawals
- Pool size
- Historical activity
VII.3.3 State Minimalism
On-chain state is intentionally minimal:- No per-user balances
- No per-account histories
- No per-deposit records
VII.3.4 Root Management
To support asynchronous proof generation, Abyss accepts a bounded window of recent Merkle roots:VII.3.5 Economic Fairness
Users who demand privacy bear the cost of proof generation and verification. There is no global subsidy that forces non-users to pay for privacy overhead. This aligns incentives cleanly and avoids socialized costs.VII.3.6 Denial-of-Service Resistance
Verification contracts are resistant to DoS vectors:- Proof verification fails fast on invalid inputs
- Nullifier checks are constant-time
- No loops over dynamic sets
VII.3.7 Summary
On-chain verification in Abyss is:- Deterministic
- Bounded in cost
- Independent of anonymity set size
- Resistant to manipulation

