Private WithdrawalยทCircuit 2 + Circuit 3 (ASP)

Private Withdrawal

Redeem your shielded note with dual ZK proofs. A withdrawal proof unlocks your funds; an ASP Merkle non-inclusion proof confirms sanctions compliance.

1
2
3
4
5

Signs the transaction locally โ€” never sent off device

The 0x... commitment returned at deposit time

The nullifier from your deposit receipt โ€” proves single-use

Stellar public key that will receive the funds

Dual-proof withdrawal security model

โ‘  Withdrawal Proof
Circuit 2 proves you know the secret behind the commitment โ€” unlocks funds
โ‘ก ASP Proof
Circuit 3 proves Merkle non-inclusion: your address is NOT in the sanctions tree
โ‘ข Soroban Verify
Contract verifies both proofs and checks nullifier uniqueness before releasing

Withdrawal Proof Flow

Note Secret
Reveal preimage
โ†’
Nullifier
Poseidon2(secret, 0)
โ†’
Circuit 2
Withdrawal proof
โ†’
ASP Merkle
Non-inclusion proof
โ†’
Circuit 3
Sanctions clear
โ†’
Soroban TX
withdraw(proof1, proof2)