ブロックチェーンを用いたプライバシー確保型コロナウイルス接触確認技術

Chen-Mou CHENG
Outline
- Contact tracing practices in Japan vs. Taiwan
- Privacy-preserving contact tracing
- Blockchains & smart contracts
- Zero-knowledge proofs
- Putting it all together
- Examples & concluding remarks
Japan
vs.
COVID-19

COCOA
- Developed by Microsoft based on GAEN
- Constantly broadcasts & remembers random numbers
- Infectees' numbers published later when confirmed
-
Emphasis on privacy preservation
-
Default: No collecting personally identifiable information such as location history
-
Personal information only allowed on a voluntary basis
-
- NHK (2021年2月12日):『新型コロナウイルス対策のスマートフォン向けの接触確認アプリ「COCOA」。感染症対策の切り札として導入されながら、利用者の一部に4か月余りもの間、感染者との接触が通知がされていなかった。なぜ不具合が見過ごされたのか。』
GAEN
- Google Apple Exposure Notifications
- Adopted by US & many countries in Europe
- Need user consent to publicize positive results
- Criticized by researchers for potential attacks
- E.g.: L. Baumgärtner et al. "Mind the GAP: Security & Privacy Risks of Contact Tracing Apps."
-
Not so effective, e.g., 3/12942 vs. 3M/469M in Spain
- N. Oliver et al. "Assessing the Impact of the COVID-19 Pandemic in Spain: Large-Scale, Online, Self-Reported Population Survey." J Med Internet Res 2020;22(9):e21319
- Low installation may be culprit (privacy concerns?)

COVID-19
$$\times$$
Taiwan

Contact tracing in Taiwan
- Linking immigration and health-care DBs
- Involuntary contact tracing via Cell Broadcast Center
-
Electronic surveillance based on digital footprints for at-home isolation & quarantine
- Future: Digital National ID Card
(マイナンバーカード++?)
- Future: Digital National ID Card
- Very good results: <1000 cases & <10 deaths (!)
What can we learn?
Hire hackers as Digital Ministers- It's all about trade-offs between privacy preservation & effectiveness of contact tracing
Blockchains & smart contracts
- Blockchains
- Distributed & decentralized ledgers for recording transaction history in tamper-evident logs
- Ownership established by digital signatures
- Main application: cryptocurrency like Bitcoin
- Smart contracts
- Programs living on a (Turing-complete) blockchain
- DAO: Decentralized Autonomous Organization
- Represented by rules encoded as smart contracts on, e.g., Ethereum
Blockchains

Lack of privacy on blockchains
- \(H(x)\) is like a proof of \(x\)
- Assuming \(H\) is collision resistant
- To verify, however, need to reveal \(x\)
-
Zero-knowledge proofs:
- Can prove without revealing \(x\)
ZKP例:アリババの開けゴマ

Putting it all together
- Data owner \(O\) publishes \(h=H(\color{red}d\color{black})\)
- Consumer \(C\) sends a function \(f\) and a public input \(x\)
- \(O\) responds with \(y=f(\color{red}d\color{black},x)\), along with a proof \(\pi\) that proves \(y=f(\color{red}d\color{black},x)\) and \(h=H(\color{red}d\color{black})\)
- \(C\) verifies \(\pi\), clearing the transaction
Example:
- \(\color{red}d\color{black},x\): random numbers & location histories of \(O\) & 3rd party
- \(h=H(\color{red}d\color{black})\) published on Ethereum as a commitment
- \(y=1\) if there is a time window \(\geq 15\) mins during which they are in the same place & have heard each other's numbers
- \(O\) will not only learn whether he is infected by 3rd party but also be able to convince \(C\) about this fact
Proof-of-concept implementation using KML
<?xml version='1.0' encoding='UTF-8'?>
<kml xmlns='http://www.opengis.net/kml/2.2' xmlns:gx='http://www.google.com/kml/ext/2.2'>
<Document>
<Placemark>
<open>1</open>
<gx:Track>
<altitudeMode>clampToGround</altitudeMode>
<when>2019-06-09T02:42:09Z</when>
<gx:coord>135.50566039999998 34.5781402 19</gx:coord>
<when>2019-06-09T02:50:20Z</when>
<gx:coord>135.5055151 34.5804681 12</gx:coord>
.
.
.
</gx:Track>
</Placemark>
</Document>
</kml>


Concluding examples
- Preserving COVID-19 patients' privacy
- \(\color{red}d\color{black}\): location histories of infectees with \(H(\color{red}d\color{black})\) published by authority \(O\)
- \(x\): location of a restaurant you want to go
- \(\pi\): proof that the restaurant is safe to visit (for now)
- Automobile insurance
- \(\color{red}d\color{black}\): location history of your car
- \(f(\cdot,x)\) determines your insurance rate by deriving driving behavior from GPS readings
ご清聴ありがとうございました
- No need to sacrifice privacy for effectiveness
- Can have your cake and eat it too!
Contact tracing without invading privacy using blockchains: How to fight COVID-19 with smart contracts and zero-knowledge proofs
By Chen-Mou Cheng
Contact tracing without invading privacy using blockchains: How to fight COVID-19 with smart contracts and zero-knowledge proofs
- 98