  The recent outbreak of COVID-19 has taken the world by surprise, forcing
lockdowns and straining public health care systems. COVID-19 is known to be a
highly infectious virus, and infected individuals do not initially exhibit
symptoms, while some remain asymptomatic. Thus, a non-negligible fraction of
the population can, at any given time, be a hidden source of transmissions. In
response, many governments have shown great interest in smartphone contact
tracing apps that help automate the difficult task of tracing all recent
contacts of newly identified infected individuals. However, tracing apps have
generated much discussion around their key attributes, including system
architecture, data management, privacy, security, proximity estimation, and
attack vulnerability. In this article, we provide the first comprehensive
review of these much-discussed tracing app attributes. We also present an
overview of many proposed tracing app examples, some of which have been
deployed countrywide, and discuss the concerns users have reported regarding
their usage. We close by outlining potential research directions for
next-generation app design, which would facilitate improved tracing and
security performance, as well as wide adoption by the population at large.
