Private Set Intersection (DH-based)
Two parties each hold a private set of identifiers and want to learn which elements they share without exposing the rest. This variant uses commutative encryption via elliptic-curve Diffie-Hellman: both parties blind their inputs with secret scalars, and the commutativity of scalar multiplication lets them compare double-blinded values without revealing the originals. The protocol runs bilaterally between the two parties.
Two parties each hold a private set of identifiers and want to learn which elements they share without exposing the rest. This variant uses commutative encryption via elliptic-curve Diffie-Hellman: both parties blind their inputs with secret scalars, and the commutativity of scalar multiplication lets them compare double-blinded values without revealing the originals. The protocol runs bilaterally between the two parties.
- Elliptic curve and hash-to-curve function, agreed by both parties at session setup.
- Ephemeral secret scalars, one per party, freshly sampled per session.
- Authenticated bilateral channel for exchanging blinded and double-blinded sets.
- Local matcher that compares double-blinded points and maps matches back to plaintext on each side.
Guarantees:
- Input privacy: non-intersecting elements are computationally hidden under DDH.
- Bilateral: runs directly between the two parties without a server or operator.
- Completeness: all shared elements are found (zero false negatives).
- Soundness: negligible false-positive rate under a collision-resistant hash-to-curve.
Threat model:
- DDH hardness on the chosen curve.
- Honest execution by both parties. A malicious party can craft blinded sets that do not correspond to a committed input; mitigate with commit-and-prove variants.
- Authenticated transport between the parties; otherwise a network attacker can swap blinded sets.
- Set-size hygiene: a singleton or near-singleton set turns the protocol into a yes/no oracle on that element. Enforce a minimum-set-size policy.
- O(n + m) curve points exchanged. Practical for sets under 10k; for larger sets, use an OT/OPRF-based variant.
- 2(n + m) scalar multiplications. Seconds for 10k elements on commodity hardware.
- Equality-only: aggregates over the intersection require a circuit-based variant.
- Limited to two parties: for more than two, use an MPC-based variant.
Bank A holds 500 ISINs it wants to buy and Bank B holds 300 ISINs it wants to sell. Both run the bilateral ECDH intersection protocol. They discover 12 ISINs overlap as potential trades; the remaining 488 and 288 non-overlapping identifiers stay hidden from the counterparty. The 12 matched ISINs feed into an ERC-7573 DvP flow for execution.