Overview
Solanon is a zero-knowledge privacy solution that allows users to deposit and withdraw ANON tokens while maintaining anonymity. It uses a combination of cryptographic primitives to ensure that deposits and withdrawals cannot be linked.
Merkle Tree Structure
Poseidon-hashed Incremental Merkle tree with depth 20 and a 33-root history buffer, supporting up to 2²⁰ deposits.
Zero-Knowledge Proofs
Uses Succinct SP1-generated Groth16 proofs for unlinking deposit and withdrawal addresses in a single on-chain instruction.
Fixed Denomination
Configurable deposit amount (e.g., 1 ANON) ensures transactional uniformity, enhancing the anonymity set.
How It Works
1Deposit
Users deposit a fixed amount (e.g., 1 ANON) and submit a commitment that is added to the Merkle tree.
2Generate Proof
A zero-knowledge proof is generated off-chain using SP1, proving knowledge of a deposit without revealing which one.
3Withdraw
The proof is verified on-chain, confirming Merkle tree inclusion and nullifier uniqueness before processing the withdrawal.
Technical Details
Implementation
Smart Contract Functions
Security Considerations
On-Chain Verification
All cryptographic operations are performed on-chain, ensuring complete verification of proofs.
Nullifier System
Prevents double-spending by ensuring each deposit can only be withdrawn once.
Root History
33-root history buffer maintains record of previous valid roots for withdrawal verification.
Poseidon Hash
Optimized for zero-knowledge proof efficiency with strong cryptographic guarantees.