The goal of this file is to map out all the concepts from different proposals in a protocol agnostic way. The blocks should be described independently of their implementation. This is done to pave the way for a synthesized protocol containing the best high level ideas.
Then we can express each proposal in terms of composition of a common set of high level blocks.
We can also synthesize the proposals, by selecting one or more combinations of blocks, and then selecting the best specific implementation for each one.
PRs should be preferably one per (sub)block.
Apple/Google, DP-3T, PACT (MIT), PACT (UW), TCN
Neither the list of proposals, nor of the building blocks claims to be complete. Contributions are very welcome, to enable convergence of protocols.
Server aggregates IDs in a bloom or cuckoo filter. If IDs are derived from a secret, the server performs the derivation and adds the results to the filter. Then only the server know which IDs are correlated to a specific key, but the recepients of the filters do not.
Spread IDs to require multiple broadcasts for reconstruction of an ID. This should be compatible with rotation synchronization, since a MAC and reconstructed ID could only be correlated if enough packets are received.
Sync rotation to mitigate address-carryover attacks.
Users push/pull reports to/from a bucket correlated to e.g. coarse space-time location, to reduce bandwidth requirements.
Permits Self Reporting, but can also contain e.g. a signature by health authorities. Permits flexibility and makes few assumptions about the rest of the infrastructure.