Fundamentals & Terminology

NOTE

https://www.pulseinprivate.com domain has been removed from vercel host and returns 404. This project was launched briefly and then sunset. It had no users, and I didn't want to attempt to build a user base.

Fundamentals

Pulse In Private (PIP) allows users to deposit and withdraw fixed amounts of tokens from "special" pools.

These pools leverage Zero Knowledge Proofs to break the connection between the depositor and recipient, allowing for private token transfers.

Tokens can only be withdrawn from a pool when the depositor has proven that they made a deposit.

Depositors prove they made a deposit by showing their secret, unique, random number (nullifier) they received during their deposit.

Withdraws are anonymous as long as the anonymity set is greater than 1.

Terms

  • Denomination: An amount of tokens.

  • Pool: A single contract deployed for a specific {token, denomination}.

  • Recipient: The address that you want the withdraw to go to.

  • Nullifier:

    • A random number tied to a specific deposit. One time use. Useless after a deposit is withdrawn.

    • Required to withdraw your deposit. Keep it secret and hold onto it for dear life.

    • Displayed along with the deposit's token and denomination: {token}-{denomination}-{nullifier}

  • Tree Index: The number representing a particular merkle tree for a specific pool, starting at 0. Each tree can hold a maximum of 4,096 deposits. A pool can generates an infinite amount of merkle trees as needed.

  • Anonymity Set: The current number of user's who have deposited into a pool, but not yet withdrawn from a pool, for a specific tree index.

Last updated