-
Notifications
You must be signed in to change notification settings - Fork 47
Which protocols are implemented? #91
Description
Hello
The README mentions two papers, "Blazing Fast PSI from Improved OKVS and Subfield VOLE" and "VOLE-PSI: Fast OPRF and Circuit-PSI from Vector-OLE" which both propose PSI and circuit PSI protocols in the semi-honest and malicious adversary models.
By scrolling through the code (mainly the frontend) I observe PSI and circuit PSI protocol implementations. I observe a malicious flag to choose between semi-honest and malicious adversary models. Yet I don't see any frontend code to indicate which protocol is being ran/benchmarked from those two papers.
Additionally, not all protocol instantiations from the two papers seem implemented. According to the discussion in issue #73, the low communications version of "Blazing Fast PSI from Improved OKVS and Subfield VOLE" is not implemented.
So which ones are actually implemented/available? When looking at the experimental evaluation sections of the papers, there should be:
- A semi-honest PSI protocol implementation from "VOLE-PSI: Fast OPRF and Circuit-PSI from Vector-OLE"
- A malicious PSI protocol implementation from "VOLE-PSI: Fast OPRF and Circuit-PSI from Vector-OLE"
- The "IKNP" variant of the semi-honest circuit PSI protocol from "VOLE-PSI: Fast OPRF and Circuit-PSI from Vector-OLE"
- The "SilentOT" variant of the semi-honest circuit PSI protocol from "VOLE-PSI: Fast OPRF and Circuit-PSI from Vector-OLE"
- The "fast" variant of the semi-honest PSI protocols from "Blazing Fast PSI from Improved OKVS and Subfield VOLE"
- The "low communications" variant of the semi-honest PSI protocols from "Blazing Fast PSI from Improved OKVS and Subfield VOLE"
- A malicious PSI protocol from "Blazing Fast PSI from Improved OKVS and Subfield VOLE"
- A circuit PSI protocol from "Blazing Fast PSI from Improved OKVS and Subfield VOLE"
... but again, it's not so clear to me which ones are available/implemented. How do I know if I run the circuit PSI protocol if I'm running the "Blazing Fast PSI from Improved OKVS and Subfield VOLE" version or one of the two "VOLE-PSI: Fast OPRF and Circuit-PSI from Vector-OLE" versions? If it's the second, how can I choose between IKNP/SilentOT variants?
My best guess is that the difference in some of these protocols are probably small code-wise and must be manually changed (i.e. not configurable through the command-line). If so, what specific locations in the code should I look into ?
Thanks in advance!