Private set intersection is a secure multiparty computation cryptographic technique[1] that allows two parties holding sets to compare encrypted versions of these sets in order to compute the intersection. In this scenario, neither party reveals anything to the counterparty except for the elements in the intersection.
Other variants of this exist, such as the server-client scenario, in which only the client learns the intersection of her set with the set of the server, without the server learning intersection of his set with the clients. [2]
I was reading this tweet about smart contracts, especially malicious ones:
This made me think that having a social graph of users you trust, and then be able to do a private set intersection with the contract that shows something like “Bob trusts Alice, and Alice gave approval to this contract 2 years ago, along with 45,678 other users” would likely be very useful.
I think this can be built out of contact lists / pet names, not necessarily “trust” relationships even.
“Bob has an account labeled Alice in his contact list, and the Alice account gave approval”
Definitely for bootstrapping, but more so from the perspective of any app developer and any user.
So the app dev (meaning: not just blockchain dapps) can build an app where the user can trustlessly / privately discover existing connections without the anti-pattern of “upload your address book to our centralized servers”.