Transaction Lifecycle
User generates secret (nullifier, secret)
(nullifier, secret)
Computes commitment C = H(nullifier, secret)
C = H(nullifier, secret)
Sends C to Voidify smart contract
C
Contract inserts C into the Merkle tree
User generates a zk-proof showing:
Knowledge of (nullifier, secret) linked to a Merkle root
That the nullifier hasn’t been used before
nullifier
Sends:
zk-proof,
recipient address,
Contract verifies the proof and nullifier, then transfers funds
Last updated 8 months ago