-
Notifications
You must be signed in to change notification settings - Fork 32
Description
Now that there's a semi-stable 0.4 protocol for apps to use while they iterate, I think it's worth trying to focus on what an 0.5 protocol would look like (#56), and I think a good first step to doing that would be doing a survey of the Cambrian explosion of contact tracing protocols and trying to map out the high-level building blocks of each proposal. Having mapped out all of the building blocks, we could try to understand each proposal as combining those building blocks in different ways, and try to synthesize a protocol that combines the best ideas from all of the existing protocols.
For instance, one basic building block could be broadcasting pseudorandom identifiers. Another could be the idea of deriving multiple pseudorandom identifiers from some secret, as is done in TCN 0.4 and the AG protocol. These use different mechanisms, but they have the same goal. Can we write this goal explicitly, and compare the mechanisms for each part? What are the benefits and costs? Another idea is the way that TCN has clients prove in zero knowledge that they generated the identifiers they report. Can we express this goal independently of the mechanism and describe its benefits to compare against its costs? Or, the latest DP3T proposal uses Bloom filters, and there are other ideas in the PACT-E and PACT-W proposals, etc.
After having mapped out these conceptual building blocks independently of the specific mechanisms, we can then express each proposal in terms of composition of a common set of blocks (though the mechanism for each of these blocks may be different for each proposal). And we can then try to create a hybrid of the proposals, first selecting one or more combinations of blocks, and then selecting the best mechanism for each one.