[5][6][7][8] The Covid Watch team, started as an independent research collaboration between Stanford University and the University of Waterloo was the first in the world to publish a white paper,[9] develop,[3] and open source[10] fully anonymous Bluetooth exposure alert technology in collaboration with CoEpi[2] after writing a blog post[11] on the topic in early March.
Covid Watch then helped other groups like the TCN Coalition and MIT SafePaths[14] implement the TCN Protocol within their open source projects to further the development of decentralized technology and foster global interoperability of contact tracing and exposure alerting apps, a key aspect of achieving widespread adoption.
[15] Covid Watch volunteers and nonprofit staff also built a fully open source mobile app for sending anonymous exposure alerts first using the TCN Protocol[16] and later using the very similar Google/Apple Exposure Notification Framework (ENF).
[17][18] The protocol, like BlueTrace and the Google / Apple contact tracing project, use Bluetooth Low Energy to track and log encounters with other users.
[22][23] Because contact logs are never transmitted to third parties, it has major privacy benefits over approaches like the one used in BlueTrace.
6 The TCN protocol received notoriety as one of the first widely released digital contact tracing protocols[15][27][28] alongside BlueTrace,[29] the Exposure Notification framework, and the Pan-European Privacy-Preserving Proximity Tracing (PEPP-PT) project.
[37] When two clients encounter each other, a unique TCN is generated, exchanged, and then locally stored in a contact log.
If a matching TCN is found, then the user has come in close contact with an infected patient, and is warned by the client.
This is in contrast to competing protocols like BlueTrace, where the central reporting server receives and processes client contact logs.
[39] The entire protocol is based on the principle of temporary contact numbers (TCN), a unique and anonymous 128-bit identifier generated deterministically from a seed value on a client device.
TCN reports are authenticated to be genuine by a secret held only by the client.
In the reference implementation this pair is created using the Ed25519 signature scheme.[40]: line.
13 Then, using the RAK an initial temporary contact key (TCK) is generated using the algorithm
formats a supplied number as a little endian unsigned 2 byte integer,[41] and
The following diagram demonstrates the key derivation process:TCNs are unique to each device encounter, and RAK-RVK pairs are cycled at regular intervals to allow a client to report only specific periods of contact.
Because any given TCK can only be used to derive an equal or higher indexed TCNs, by submitting
However, there is no upper limit to encounters calculated using the same RAK-RVK pair, which is why they are cycled often.
Once a report is received, clients individually recalculate TCKs and TCNs for a given period using the original algorithms:
This is used by client devices to check their local contact logs for potential encounters with the infected patient, but has the dual benefit of verifying reports since false reports will never produce matching TCNs.
In the report structure, the memo is a space for freeform messages that differ between TCN implementations.
The data is standardized for different tags, and can be as follows: The protocol can be divided into two responsibilities: an encounter between two devices running TCN apps, and the notification of potential infection to users that came in contact with a patient.
For the purposes of this specification, these areas are named the encounter handshake, and infection reporting.
The encounter handshake runs on Bluetooth LE and defines how two devices acknowledge each other's presence.
The two modes are used to circumvent certain device limitations, particularly in regard to iOS restrictions in place before version 13.4.
The service exposes a read and writeable packet for sharing TCNs.
When a user tests positive for infection, they upload a signed report, allowing the past 14 days of encounters to be calculated, to a central server.
On a regular basis, client devices download reports from the server and check their local contact logs using the verification algorithm.
If there is a matching record, the app notifies the user to potential infection.
On 5 April 2020, the global TCN Coalition was founded by Covid Watch and other groups that had coalesced around what was essentially the same approach and largely overlapping protocols, with the goal to reduce fragmentation, and enable global interoperability of tracing and alerting apps, a key aspect of achieving widespread adoption.
[45] Currently the protocol is used by TCN Coalition members CoEpi[46][47] and Covid Watch,[48][22] and was likely a source of inspiration for the similar Google / Apple contact tracing project.