There is not much to add to Nicky’s most excellent explanation of a privacy-protecting yet effective contact-tracing app. That said, I find the following diagram to add to the original, wonderful illustrations and text.
Alice Bob ═══╦══════╦════════════════════════════════════════════════ │day 0 │ - gets infected │ │ - doesn't know | | - doesn't show any | | symptoms ───┼──────┼──────────────────────────────────────────────── │day 1 │ ───┼──────┼──────────────────────────────────────────────── │day 2 │ ───┼──────┼──────────────────────────────────────────────── │day 3 │ becomes contagious - comes in contact w Alice │ │ - possibly gets infected │ │ - doesn't know | | - doesn't show any | | symptoms | | - phone records random | | codes sent by everyone | | nearby, including Alice ──┼──────┼───────────────────────────────────────────────── │day 4 │ ──┼──────┼───────────────────────────────────────────────── │ │ - shows symptoms - phone automatically │ │ - gets tested determines he came in │day 5 │ - confirmed pos. contact with someone │ │ - uploads data who was infected │ │ - self-quarantines ──┼──────┼───────────────────────────────────────────────── │day 6 │ X chain is broken ──┼──────┼───────────────────────────────────────────────── │day 7 │ ──┼──────┼───────────────────────────────────────────────── │ │ - shows symptoms │day 8 │ - gets tested │ │ - confirmed neg. │ │ - no need to upload data ──┴──────┴─────────────────────────────────────────────────
Note that the above depeneds on a few assumptions and a lot of voluntary actions (thanks @gnowgi). Here are a few I can think of:
- Is there any voluntary action anywhere?
- yes, on the part of Alice and Bob, to install that app allow it to do its job, which is to send out the random codes every 5 mins, and to poll the central db for matching codes (this becomes useful in step four below
- yes, on the part of Alice to get tested as soon as she shows symptoms
- yes, on the part of Alice to upload her data anonymously to the central db
- yes, on the part of Alice and Bob to let their app check the central db for matching codes
- Does the model depend on Alice voluntarily sending all the sent-received-messages to the hospital or does this happen automatically?
- Alice has upload her data to the central db once she knows she is infected, which happens once she is tested, which happens once she shows symptoms. More on this below.
- Who asserts that Alice is infected?
- Alice gets tested as soon as she shows symptoms. More on this below.
Here is more — All of the above assumes the following:
cooperation: download the app and let it do its thing
education: everyone knows about the app, how to download and install it properly and let it do its thing, what the symptoms, and who to call soon as symptoms are visible
availability of testing: naturally, this is a prerequisite