Authors

Inspiration

We don’t expect a COVID-19 vaccine to be developed for at least a year, which means we must build a system that is capable of rapidly containing local transmission wherever and whenever it appears. By doing this, and implementing it in our communities, we can lessen lockdowns and other restrictions in the world while preventing the majority of the population from getting sick.

We are building a privacy-preserving and decentralized contact tracing system that can identify contagious individuals and the people they had contact with. This will mean we can ask only those who have been exposed to COVID-10 to self-isolate. We’ve modelled how a system of contact tracing can significantly reduce the rate of viral transmission. We have written a white paper that outlines this model, which is now being used and tested by MIT and several other research groups. We believe that, combined with a comprehensive testing program, our filter may be powerful enough to protect our communities from COVID-19 becoming endemic.

We want to provide a way for individuals to, on a volunteer basis, help reduce the painful impacts of COVID-19. That’s what all of the people working on our team are looking for. We’re a  non-profit group of researchers, programmers, security experts and public health professionals. Starting from a forum post on February 19, our team has grown to a group of around 10-15 core contributors, as well as many more part-time volunteers and advisors. Although we are aiming to develop an app for initial use in the USA, the team is based around the world. We ultimately hope that users who participate in COVID Watch will feel they have been given a tool with which to protect their community and loved ones.

What Covid Watch does

We are developing a cross-platform, open-source mobile app that shows individuals their risk of COVID-19 infection based off GPS data, known cases, and Bluetooth proximity networks. We aim to do so in a way that preserves transparency and personal privacy. Covid watch enables contact tracing at scale, whilst enabling the user to stay in control of their data.

What is contact tracing?The World Health Organisation (WHO) defines contact tracing as the identification and  monitoring of people who may have come into close contact with a person infected with a contagious disease in order to help the contacts to get relevant care and treatment. Contact tracing is a crucial part of epidemiological containment. It is traditionally done through patient interviews—when someone is diagnosed, that patient will be asked where they travelled and whom they saw while contagious.

Our solutionWe believe there's a non-trivial chance that GPS tracking or other sources of location information could reduce the spread of infectious diseases like COVID-19 by informing individuals of their risk and helping implement better self-quarantine measures. We also believe that this can be done in a way that doesn't sacrifice rights like privacy.

How we built it

Our Bluetooth contact tracing is implemented via background processes on iOS and Android. The approach we are using utilizes BLE functionality for background advertisement and scanning. Due to different system requirements for Android and iOS, the protocol works differently depending on the operating systems of the devices involved.

Anonymized contact event numbers are stored locally on your phone. If you are diagnosed with COVID, you can volunteer to share your status and notify other users who you’ve had contact with, but you will never be forced to.

The front-end of our mobile apps are being developed natively using Swift and Java. We have used python-based frameworks and machine learning models for aspect of our contact tracing and epidemiological model. We are using various javascript technologies (e.g. D3) to visualise data and create interactive heat maps, which are useful for both the user and health agencies.

Challenges we ran into

Bluetooth contact tracing  - the key challenges we're experienced with this are: -iOS devices acting as “peripherals” in the background can only be found by “centrals” that are scanning for their specific service UUID. These peripherals must establish a connection to transfer any data. -Android devices have several unfixed bugs where subsequent connections with many devices can cause the Bluetooth system to lock up.

Ensuring privacy  - developing this solution in a way that was privacy preserving was a significant technical challenge. Our Bluetooth contact tracing system is structured in a decentralized and anonymous way using randomly generated and locally stored ‘Contact Event Numbers’. This allows the system to function fully without any private information being stored or transmitted. By generating a new random number for each contact event, the system is able to operate without storing or transmitting any personal information. This method is designed so that only the phones involved in a contact event are able to identify messages on a public database.

Optimising database storage for decentralization - our database performs two functionalities: storing contact event numbers that are successfully authenticated, and transmitting contact event numbers to phones that request this information. The storage requirements scale linearly with the number of infected users. For example, with 200,000 infected users this would be on the order of 100GB. For a small number of infected users it is feasible to periodically download any updates to the dataset to the phones of all app users. The app can then compare the newly posted contact event numbers against their own history to check for matches. For a larger number of infected users - millions or tens of millions - this is technically unfeasible.

Accomplishments that we are proud of

In order to make Covid Watch work for tens of millions of users, our technology splits the dataset using very low resolution location data. This way users can just download the portion of the dataset where there is the possibility of a match, lowering bandwidth requirements considerably. Since our system is primarily decentralized, the server is used to pass messages but not to perform comparisons. This prevents anyone with access to the server from inferring the network structure and potentially user identities. For a small to mid-sized user base, every packet from an infected user can be transmitted to every other user.

What we learned

Overall we've learned that you can get a huge amount of work done with a highly motivated and passionate team, even with limited hierarchy and if they are distributed across multiple time zones. This hackathon has been an excellent milestone for us and we've worked tirelessly across the weekend to get our working prototype ready.

In terms of our technology, when we first thought about a smartphone contact tracing app, we imagined using GPS location tracking. However, we soon realized that Bluetooth provides several advantages. First, it’s a closer proxy for people being in the same place—if you’re on the first floor of a tall building, and someone else is on the 15th, you wouldn’t be recorded as contacts. Second, Bluetooth allows us to never store your data centrally. Instead, anonymized contact event numbers are stored on your own device. You can read more about this in our whitepaper.

What's next for Covid Watch

The front-end of our application have been worked on this weekend, which includes tailored user recommendations that will be available in-app. We will be doing further work on our epidemiological model, working closely with specialists in this area.

We are actively in talks with the CDC and other health agencies internationally. Our app will be launched on the iOS and Google Play stores within the next two weeks.

Try It out

Hackathons

Technologies

android, bluetooth, crowdsourcing, firebase, ios, java, machine-learning, nuxt, swift, vue

Devpost Software Identifier

254075