NAV
Go Java

Introduction

This documentation is a work in progress. You can support us on GitHub.

The documentation is split into 3 parts. The general documentation on the actual page and the documentation for the React Native library and the Backend API.

Protocol comparison

In this document, multiple decentralized protocols are compared. This document is an attempt to explain the differences between these protocols in a way that is simple to understand. Please refer to the linked documents for more detailed information. Ideally, the protocol should have the following properties (taken from the TCN README):

A Strawman Protocol

The Strawman Protocol as specified by TCN is one of the simplest approaches when it comes to contact tracing.

Summary

Random IDs are generated and broadcasted by each device. These IDs are rotated frequently. In case of an infection, all the IDs broadcasted during the time of infectiousness are published.

Benefits

Caveats

STRICT

STRICT is a protocol that has been developed during the #WirVsHackathon independently by multiple teams. It fixes the Source Integrity caveat of the strawman protocol.

Summary

Random IDs are generated. These IDs are rotated frequently. A cryptographic hash of this ID is broadcasted by each device. In case of an infection, all the (non-hashed) IDs broadcasted during the time of infectiousness are published.

Benefits

Caveats

Apple-Google-Proposal

The proposal made by Apple and Google was published on the 10th of April 2020.

Summary

A random, permanent ID is generated on the device. Each day, a daily ID is generated by computing the hash of the permanent ID and the date. From these daily IDs, multiple “Rolling Proximity IDs” are derived from the daily IDs, a time interval number and a fixed string. In case of an infection, all the daily IDs used during the time of infectiousness are published. All “Rolling Proximity IDs” are then derived by each client for the local comparison.

Benefits

Caveats

DP-3T Design 1: Low-cost decentralized proximity tracing

This protocol by the DP-3T group was published on the 3rd of April 2020.

Summary

A random ID is generated on each device. Each day, this ID is replaced with an ID derived from this ID. From these daily IDs, the Broadcast IDs for the day are derived. In case of an infection, the first “infectious” daily ID is published. All subsequent IDs are then derived by each client for the local comparison.

Benefits

Caveats

DP-3T Design 2: Unlinkable decentralized proximity tracing

Summary

Random IDs are generated. These IDs are rotated frequently. A cryptographic hash of this ID is broadcasted by each device. In case of an infection, the source IDs are uploaded to a server. The server recreates the broadcasted IDs. To notify potentially infected users, the server doesn't reveal the neither the source IDs nor the broadcasted IDs. Instead, a cuckoo filter (a probabilistic data structure) containing the broadcasted IDs is generated and published. This probabilistic data structure reduces the amount of data that has to be published and doesn't allow adversaries to pick up a specific ID out of the filter.

Benefits

Caveats

TCN

Summary

The device generates a key pair (a public and a private key). This keypair is rotated frequently. Temporary contact numbers (TCNs) are derived from the public key and broadcasted. In case of an infection, the device generates a report containing a memo field and information that can be used to recreate the relevant TCNs. The memo field can contain arbitrary information such as the type of pathogen or the type of report and can be used by health authorities to authorize the report. The report is signed with the private key and published.

Benefits

Caveats