julien/lovepublic Fork
⑂ main
Commits
⬇ Clone ▾
git clone https://git.rickub.com/julien/love.git
git clone ssh://git@rickub.com/julien/love.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Download ZIP

Replace hash envelopes with a ZK pool #18

Closed@julien opened this issue Sep 19, 2026 · 1 comment
  • @julien opened this issue · Sep 19, 2026

    Replace the hash-preimage envelopes (deposit(bytes32,uint256), the batch deposit, claim(depositId,secret,loveAmount)) with a Groth16 shielded pool.

    Why. Deposit and Claim share a depositId and 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 verifier
    • Love.deposit(bytes32 commitment) and Love.claim(proof, root, nullifierHash, recipient) replace the envelope entrypoints, fixed denomination, tree kept small for now
    • tests run against real Groth16 proofs
    • docs/ZK.md replaces docs/PRIVACY.md, README and CHANGELOG updated
  • @julien · Sep 19, 2026

    Closed via 15 — merged 48af16313c57abf1246297e7df6fe5de55c4282f into main.

Sign in to comment.