Open danielmasny opened 1 year ago
Some code pointers
How to send/receive data: https://github.com/private-attribution/ipa/blob/c5b59f8c89adca951fd5565caef7c9fd5d3ab5aa/src/protocol/basics/reveal.rs#L59
Sampling from Gaussian with the given $(\epsilon, \delta, cap = 1)$
Secret sharing (semi-honest) - https://github.com/private-attribution/ipa/blob/650cb4b37b4db8f4476551598ecb55091b225c24/src/secret_sharing/replicated/semi_honest/additive_share.rs#L18
In-memory test - https://github.com/private-attribution/ipa/blob/650cb4b37b4db8f4476551598ecb55091b225c24/src/protocol/ipa_prf/shuffle.rs#L361
IPA has a number of records $N$. Each record consists of a secret shared match key and other associated data.
The task is to generate $M$ fake events that consists of secret shared random match keys (fake match key) and associated data set to $0$ for a given bound $B$.
More concretely: We need to do the following process for all combinations of two out of three helper parties in $(H_1,H_2,H_3)$:
the two selected helper parties, i.e. $(H_i,H_j)\in(H_1,H_2,H_3)$ do the following:
$Hk$ generates $M{i,j}$ fake events and sets all shares to $0$.
Append all $M:=M{1,2}+M{2,3}+M_{3,1}$ fake events to the initial $N$ records.