libdpf/doc/pages/multiparty.md
2026-09-26 23:51:06 -06:00

30 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Multiparty & 3-server {#multiparty}
Two-party keys are the default. The library also builds three-evaluator
`(2,3)` keys, information-theoretic three-server DPFs, and dealer-free
two-party keygen when the index is already shared.
| Construction | Parties | Header |
| --- | --- | --- |
| [dpf::make_dpf3](@ref dpf/dpf3.hpp) | Any two of three open (Shamir / dual spine, [ePrint 2024/1658](@ref bib_dpf3)) | `dpf3.hpp` |
| [dpf::make_dpf3_doerner_shelat](@ref dpf/dpf3_ds.hpp) | Same keys from XOR shares of `alpha` | `dpf3_ds.hpp` |
| `make_dpf3_cmp` / `make_dpf3_ic` / `make_multipoint3` | Comparisons, intervals, multipoint | `dpf3_cmp.hpp`, `dpf3_multipoint.hpp` |
| [dpf::make_it_dpf3](@ref dpf/it_dpf3.hpp) | Information-theoretic 3-server DPF ([ePrint 2023/028](@ref bib_itdpf)) | `it_dpf3.hpp` |
| [dpf::make_dpf_doerner_shelat](@ref dpf/doerner_shelat.hpp) | Two parties, shared index, no dealer for the point | `doerner_shelat.hpp` |
| [dpf::geneval_*](@ref dpf/geneval.hpp) | Answer shares for one query, no reusable key | `geneval.hpp` |
```cpp
auto [k1, k2, k3] = dpf::make_dpf3(std::uint8_t{42}, dpf::fp61{7});
auto opened = dpf::reconstruct(
dpf::as_share(k1, dpf::eval_point(k1, std::uint8_t{42})),
dpf::as_share(k2, dpf::eval_point(k2, std::uint8_t{42})),
dpf::as_share(k3, dpf::eval_point(k3, std::uint8_t{42})));
```
Party meshes and socket walks live under [trio.hpp](@ref dpf/net/trio.hpp)
and the `party/` harnesses. Application-shaped sketches include
[3-party Duoram](@ref app_duoram) and [three-server PIR](@ref app_pir3).
**Go deeper:** [guided tour — three evaluators](@ref tour_dpf3),
[Doerner–Shelat](@ref tour_ds), [evaluating DPFs](@ref evaluation),
[bibliography](@ref bibliography).