Replace hash envelopes with a ZK pool #18
Closed@julien opened this issue Sep 19, 2026 · 1 comment
- @julien opened this issue · Sep 19, 2026edited
Replace the hash-preimage envelopes (
deposit(bytes32,uint256), the batchdeposit,claim(depositId,secret,loveAmount)) with a Groth16 shielded pool.Why.
DepositandClaimshare adepositIdand the claim reveals the secret's preimage, so an envelope is a bearer note with an anonymity set of one. Breaking the depositor-to-claimant link without a trusted party takes a ZK membership proof.Done when.
zk/holds a circom circuit (Poseidon Merkle membership, nullifier, recipient bound to the proof), a single-contributor trusted setup script and the generated verifierLove.deposit(bytes32 commitment)andLove.claim(proof, root, nullifierHash, recipient)replace the envelope entrypoints, fixed denomination, tree kept small for now- tests run against real Groth16 proofs
docs/ZK.mdreplacesdocs/PRIVACY.md, README and CHANGELOG updated
- @julien · Sep 19, 2026edited
Closed via 15 — merged 48af16313c57abf1246297e7df6fe5de55c4282f into main.
Sign in to comment.