Draft proposal for discussion. Posting as an issue to gather feedback before writing a full REQUIREMENTS.md / SPEC.md. Open questions are intentional.
Motivation
- Shielded pools (Railgun / Privacy Pools style) give on-chain privacy, but client interactions can leak the same secrets they protect:
- Path retrieval: to spend a note, the client needs its Merkle inclusion path. Asking an RPC/indexer reveals which note is about to be spent.
- Note discovery: detecting incoming notes naively requires trial-decrypting every note, or revealing identity to a discovery service.
- PIR (and adjacent primitives like OMR / FMD) plug these leaks. The design space is wide; latency and cost trade-offs aren't obvious until built.
Relation to iptf-map
- Strengthens
pattern-shielding: the pattern's privacy rating is partial partly because metadata leaks at the indexer/relayer layer. This PoC closes that gap for the query path.
- Extends
approach-private-payments: the approach already lists iptf-pocs/pocs/private-payment/shielded-pool as its reference; PIR-backed retrieval is a natural follow-on PoC and could be added as a sub-pattern under this approach.
- Composes with:
What the PoC would demonstrate
- Client/server flow for Merkle-path retrieval via PIR against a shielded-pool state tree.
- (Stretch) Note-discovery flow on the same substrate.
- Benchmarks vs. naive retrieval: latency, server CPU, bandwidth, client compute.
Candidate building blocks (reuse, don't reimplement)
PIR is a heavy primitive on its own. The PoC should wrap and benchmark an existing library, not build a PIR scheme from scratch. Candidate stacks:
- SimplePIR / DoublePIR: reference impl at
github.com/ahenzinger/simplepir (Go, MIT, ~1.2k LoC). Single-server, lattice-based, cheap client, heavy server.
- FrodoPIR: paper
eprint.iacr.org/2022/981; C++ port at github.com/itzmeanjan/frodoPIR. Essentially SimplePIR with different lattice params; small dependency surface.
- Spiral (Menon–Wu 2022): alternative single-server scheme; check authors' repo if benchmarked.
- Oblivious Message Retrieval (OMR): Liu–Tromer 2022, useful specifically for the discovery angle. Check the authors' reference repo.
- FMD (Fuzzy Message Detection, Penumbra): weaker but cheap discovery baseline; useful as a comparison point.
- Sharded PIR design for the Ethereum state (ethresear.ch/t/sharded-pir-design-for-the-ethereum-state/24552): community proposal that sharded PIR can scale to Ethereum-state-sized databases. Directly relevant if our shielded-pool tree is large or grows on L1 timescales; informs how to partition the state for tractable server-side PIR cost.
Open questions
- Target substrate: extend the existing
pocs/private-payment/shielded-pool (Noir/UltraHonk) PoC, hook into Aztec's tag-based discovery layer, or stand up a minimal toy tree?
- One PoC covering retrieval + discovery, or split into two (multi-approach pattern à la
CLAUDE.md)?
- Trust model for the PIR server(s): same entity as RPC, separate indexer, or decentralized?
- Is end-to-end latency for single-server PIR realistic for a UX demo, or do we only benchmark in isolation?
- Do we explicitly position this as a step toward, or inspired by, Tachyon's design, or stay scheme-agnostic?
Prior art
- Project Tachyon (Zcash):
tachyon.z.cash, new post-quantum shielded pool that bakes in PIR; closest existing initiative to what this PoC would demonstrate. Aztec is collaborating with the Tachyon team on a PIR-based note-discovery design.
- Aztec note discovery: docs.aztec.network/.../note_discovery, plus the Aztec Note Discovery Summary HackMD. The current tag-based scheme has the exact IP/correlation leak this PoC targets.
- SimplePIR / DoublePIR (Henzinger et al., USENIX Security 2023).
- FrodoPIR (PoPETs 2023).
- OMR (Liu–Tromer 2022).
- Penumbra FMD design.
- Sharded PIR design for the Ethereum state (ethresear.ch).
Motivation
Relation to iptf-map
pattern-shielding: the pattern's privacy rating ispartialpartly because metadata leaks at the indexer/relayer layer. This PoC closes that gap for the query path.approach-private-payments: the approach already listsiptf-pocs/pocs/private-payment/shielded-poolas its reference; PIR-backed retrieval is a natural follow-on PoC and could be added as a sub-pattern under this approach.pattern-stealth-addressesandpattern-recipient-derived-receive-addresses: unlinkability constructions that the note-discovery angle either complements or partially replaces (tags-with-PIR vs. stealth scanning).pattern-user-controlled-viewing-keys: recipient key material is what gates PIR-backed discovery queries.What the PoC would demonstrate
Candidate building blocks (reuse, don't reimplement)
PIR is a heavy primitive on its own. The PoC should wrap and benchmark an existing library, not build a PIR scheme from scratch. Candidate stacks:
github.com/ahenzinger/simplepir(Go, MIT, ~1.2k LoC). Single-server, lattice-based, cheap client, heavy server.eprint.iacr.org/2022/981; C++ port atgithub.com/itzmeanjan/frodoPIR. Essentially SimplePIR with different lattice params; small dependency surface.Open questions
pocs/private-payment/shielded-pool(Noir/UltraHonk) PoC, hook into Aztec's tag-based discovery layer, or stand up a minimal toy tree?CLAUDE.md)?Prior art
tachyon.z.cash, new post-quantum shielded pool that bakes in PIR; closest existing initiative to what this PoC would demonstrate. Aztec is collaborating with the Tachyon team on a PIR-based note-discovery design.