Privacy Pools operate similarly to Tornado Nova. To make a withdrawal, the following steps are taken:
-
The user generates a transaction proof stating that they have a UTXO (Unspent Transaction Output).
-
The user makes an API request to the ASP (Association Set Provider) requesting the allowlist.
-
The user generates a membership proof using the Nova Folding Scheme.
-
The UI automatically downloads the membership proof.
-
The user sends the transaction proof, membership proof, and other transaction details to a Relayer.
-
The Relayer checks if the allowlists match with the subscribed ASPs.
-
The Relayer uploads the membership proof to IPFS and checks if the IPFS hash is in the transaction details.
-
If the relayer fails to upload to IPFS, user can always upload the membership proof to IPFS later.
-
The Relayer sends the transaction to the network.