Page cover

โ„น๏ธOverview

Fixed Pools

Veil Fixed Pools allow users to deposit cryptocurrency into a shared pool and later withdraw from that pool, obscuring the link between deposit and withdrawal. During a deposit, the user submits a hash of a secret (called a commitment) and the deposit amount to the Veil smart contract. The contract records this commitment onchain.

To withdraw, the user generates a cryptographic proof using the original secret linked to an unspent commitment. Leveraging zkSNARKs, this proof demonstrates the withdrawal is valid without revealing which deposit it matches. Once the proof is verified by the smart contract, the deposited amount is sent to the specified withdrawal address. This process prevents outside observers from associating deposits with withdrawals. Fixed pools require all deposits to be of the same denomination, such as 0.1 ETH or 1 ETH. This fixed size ensures that every deposit within a pool is indistinguishable from the others.

Veil's fixed pools contracts are based on Tornado Cash.

Additional Resources

How zk-SNARKs with merkle trees work can be found here Tornado Cash Classic Docs - https://docs.tornado.ws/

Last updated