VII. From Commit to Silence

Transaction Lifecycle

Deposit

  1. User generates secret (nullifier, secret)

  2. Computes commitment C = H(nullifier, secret)

  3. Sends C to Voidify smart contract

  4. Contract inserts C into the Merkle tree

Withdraw

  1. User generates a zk-proof showing:

    • Knowledge of (nullifier, secret) linked to a Merkle root

    • That the nullifier hasn’t been used before

  2. Sends:

    • zk-proof,

    • recipient address,

    • nullifier

  3. Contract verifies the proof and nullifier, then transfers funds

Last updated