Skip to content
This repository was archived by the owner on Sep 3, 2025. It is now read-only.
This repository was archived by the owner on Sep 3, 2025. It is now read-only.

Which protocols are implemented? #91

@WoutDev

Description

@WoutDev

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions