How Alice sends 0.1 SOL to Bob with zero on-chain fingerprints.
When Alice deposits 0.1 SOL into the Shadow Pool, she isn't just sending money; she is "shielding" it. The transaction is public, but the funds are now represented by a cryptographic secret.
SecretNonce that links this voucher to her.
Commitment in a Merkle Tree.
This is the magic part. To send funds to Bob, Alice must prove she "owns" one of the commitments in the pool without revealing which one.
PrivateKey, SecretNonce,
and a Merkle Path as private inputs.H(H(Key), Amount, Nonce)
exists in the tree root.In Phase 2, Alice generated a proof. But if Alice sends that proof to Solana herself, her wallet
address
appears as the Fee Payer. This creates a metadata link. To fix this, we use a
Relayer.
Relayer interacting with
the Shadow Pool. Alice is invisible.On-Chain Verification: ACTIVE
In this version, zero-knowledge proofs are strictly verified on-chain using Solana's
optimized alt_bn128 syscalls. The program enforces:
By combining ZK-SNARKs with a Relayer network, we achieve two types of privacy:
Total SOL Transferred: 0.1 SOL
Signer Linkability: 0% (Relayed)
Privacy Level: Absolute Shadow