Private Set Intersection (Circuit-based)
Two parties each hold a private set and want to compute a function over their shared elements without either party learning the raw intersection. Intersection-finding logic is embedded in a Boolean circuit alongside the aggregate function F, so the output is limited to F(intersection). The circuit is evaluated jointly using authenticated garbling or secret-shared circuits, and the raw matches are not revealed to either party.
Two parties each hold a private set and want to compute a function over their shared elements without either party learning the raw intersection. Intersection-finding logic is embedded in a Boolean circuit alongside the aggregate function F, so the output is limited to F(intersection). The circuit is evaluated jointly using authenticated garbling or secret-shared circuits, and the raw matches are not revealed to either party.
- Circuit compiler (Bristol format or equivalent) that emits a Boolean circuit encoding the matching logic (sort-compare-shuffle or hash-based) plus the aggregate function F.
- Garbled-circuit or GMW runtime that turns the compiled circuit into an interactive protocol.
- OT extension library providing base OTs for garbled-label transfer.
- Authenticated bilateral channel for garbled-table transmission and OT.
- Output decoding table and, for authenticated garbling, commitments binding the garbler to the circuit it sent.
Guarantees:
- Input privacy: each party's set is opaque to the other inside the garbled circuit.
- Function generality: encodes any Boolean function over the intersection, including cardinality, weighted sums, or threshold predicates.
- Completeness: deterministic evaluation over all shared elements (zero false negatives).
- Output confined to F: neither party learns the raw matches unless F is chosen to reveal them.
Threat model:
- Soundness of the garbling scheme and OT extension.
- Honest garbler (semi-honest baseline); authenticated garbling (Wang-Ranellucci-Katz 2017) achieves malicious security at about 2 to 3 times overhead.
- Non-withholding garbler: the garbler holds the output decoding table and can refuse to release it, preventing the evaluator from learning F. Commit-and-open variants make withholding detectable.
- Authenticated transport between the parties; otherwise a network attacker can swap labels or tables.
- Circuit size scales with O((n + m) log(n + m) * sigma) gates for sort-compare-shuffle, where sigma is the element bit-width. For 256-bit identifiers this becomes costly beyond about 10k elements per party.
- Circuit is fixed to a function and set size: each execution needs fresh garbling, though input-independent preprocessing can be done ahead of time.
- Asymmetric roles: the garbler transmits the full circuit and holds the output decoding table. Role assignment matters in I2U deployments.
- GMW supports more than two parties but requires MPC-based garbling or a trusted dealer for preprocessing.
Two compliance teams want to count how many wallet addresses appear on both of their flagged lists without revealing which addresses match. Team A holds 2,000 flagged addresses and Team B holds 3,500. Both compile a PSI-cardinality circuit that outputs the intersection count. After garbling, OT, and evaluation, both learn the count (47 shared flags). The matching addresses themselves stay private, and if the count exceeds a threshold the teams escalate to supervised disclosure.