研究 | 区块链技术能为抗击疫情做些什么?
自从新型冠状病毒肺炎疫情爆发以来,笔者每天在家刷微博和朋友圈时的心情比某些资金盘空气币的 K 线图还要跌宕起伏,如图:
直到刷到了下面这位韩国老哥让人眼前一亮的新闻,我被逗笑了。
无独有偶,咱们也别光顾着笑话人家外国人:
这两条新闻除了让我哭笑不得之外,还给我带来了一点灵感。
其实自从疫情爆发以来,因为不用出门走亲访友,宅在家里的我一直在思考一个问题:区块链行业可以为抗击疫情做出哪些贡献?
• 最简单的当然是直接捐钱捐物,甚至派人去当志愿者;
• 其次是使用区块链技术为救援物资和善款等提供溯源和公示服务,让各种信息变得公开透明;
• 更深远一些的则是着眼未来,采用区块链技术和去中心化理念改进传染病监测预警网络和决策流程,避免因为少数关键的中心节点瞒报疫情而造成重大损失。
然而,上述这些想法有一个共同的缺点:都已经被别人写过了,我自然也不好意思再拾人牙慧。
新闻里面两位老哥的案例把一个问题带入了我的视野:如何更有效地筛查潜在感染者?
众所周知,在没有特效药和疫苗的情况下,对抗传染病最有效的方法莫过于阻断传播途径了。下面这篇科普微博已经很清楚地说明了采取隔离措施的意义:
A 是有武汉接触史的人,B 是 A 在公共场所接触的人,C 是 A 认识并接触的人,D 是在家的人。其中 A、C 两类都容易被筛选出来隔离观察,但是哪些人属于 B 类却很难甄别,特别是 B 本身也不知道自己是 B。
为了快速地筛选出 B 类人群,确诊患者所乘的车次车厢或者航班号等信息都被公开出来,很多互联网企业也快速推出了确诊患者同乘查询服务。
这样的同乘查询服务无疑为识别 B 类人群提供了很大帮助,但是其效果仍是有局限的。最明显的问题当然就是查询的范围非常有限,仅能查询是否在长途公共交通工具上接触过 A 类人,不能覆盖市内公交、地铁的信息,更别说车站、高速服务区、商场、餐厅甚至是电梯间等其它场所了。
想要更准确地筛选 B 类人群就需要有确诊患者的路径信息。要么由患者主动申报,要么通过其它手段去确定。
主动申报的话难免会有瞒报漏报。一方面难以确保每个人都愿意提交自己的隐私信息,另一方面人的记忆本来就不是特别可靠,尤其是在鸡毛蒜皮的琐事上更靠不住。
既然主动申报不够准确,能否用现有的技术手段解决呢?理论上来说,如果集合所有监控摄像头、通信运营商、信用卡、支付宝等全部数据,确定一个普通人的行动路径还是不难的。比如开头新闻里的那位韩国大哥就被信用卡记录轻易“出卖”了。
但是在实践中,整合各个公司和部门的数据是一件很困难的事,涉及到复杂的跨地区跨部门协调和海量数据的检索工作,难以大规模使用。比如现在,数以万计有过武汉接触史的人在全国乃至世界各地,每天新增的确诊病例都已经过千,即使数据都在也分析不过来。
另外,就算不提技术上的难度,把所有人的隐私数据都整合在一起,在法律和伦理上也存在着巨大的风险。我们不会希望自己的一举一动都被监视被记录,更不愿意承担隐私信息被滥用的风险。防治传染病这个理由还不足以让人们心甘情愿地放弃自己的隐私权。
那么,能否用技术手段保护个人隐私不被泄露,促使人们自愿地如实上报自己的路径信息,从而提高筛查的效率和准确度呢?区块链和密码学技术或许可以解决这个问题。
密码学中用于保护隐私的技术有很多种,这个场景可以用到密码学里的“ 私有集合求交 ”(Private Set Intersection,PSI)技术。
“私有集合求交”的问题描述可以抽象为两个人—— Alice 和 Bob ,各有一个集合,他们希望在不把集合内容告诉对方的前提下计算这两个集合的交集(或交集的大小)。目前已有很多成熟的方案可以解决 PSI 问题,既包括基于密码学协议的纯软件解决方案,也有基于 SGX 等安全芯片的硬件方案。由于篇幅的关系,此处不再赘述。
插图来源于 OSU 的 Peter Rindal 的 slides
在确诊患者行程交集筛查的应用中,用户集合里的每个元素都记录了该用户曾在什么时间去过哪个公共场所。假设 Alice 是前面说的 A 类人,那么另一个用户 Bob 就可以根据他与 Alice 的私有集合的交集大小来判断他是否曾在公共场所接触过 Alice,从而在不泄露确诊患者隐私信息的同时实现筛查 B 类人的功能。
但是密码学的技术只解决了有历史行程数据的情况下如何比对的问题,并不能敦促用户主动记录这些信息——即便所有隐私数据都只存在用户的手机本地,而无需上传到服务器里。如果不能激发用户记录自己行程信息的积极性,那么比对技术再好最终也无法摆脱巧妇难为无米之炊的困境。
如何调动用户积极性的问题着实让我烦恼了一阵子,直到同事提了一个令我茅塞顿开的点子:能提供证据证明有确诊患者接触史的疑似患者优先接受检测和治疗。
面对大规模的疫情爆发,医疗资源短缺是一个难以避免的现实。特别是在我们对于这次疫情还不够了解的初期阶段,检测确诊的能力是跟不上病毒传播的速度的。很多疑似患者无法及时接受病毒核酸检测,甚至很多人连被标为疑似患者的机会都没有,这无论是对于挽救患者个人的生命还是尽早隔离接触者控制疫情都是非常不利的。
另一方面,出于恐慌情绪,很多患有普通感冒而未感染新冠肺炎的病人也迫切地希望在第一时间接受检查。毕竟在接受检查之前谁也无法确定他们真的只是普通感冒。
怎么样才能最有效率最合理地分配有限的医疗资源呢?一个自然的想法就是(病情危重程度相当时)优先处理有过武汉接触史或者确诊患者接触史的。但是这就给了排队的病人谎报接触史以求获得重视和优先服务的动机,特别是在疑似和确诊病人可以获得免费医疗的情况下。这时如果能拿出一份证明自己与确诊患者的行程有过交集的证据,显然会比空口白话有说服力得多。
当然,既然自述可以造假,手机上记录的历史行程也是可以造假的。即便技术门槛略高,也一定会有发国难财的人提供伪造行程的服务。这样的“临时抱佛脚”记录不仅扰乱秩序,也会挫伤其他用户如实记录的积极性,这是我们必须杜绝的。
这时候就轮到区块链隆重出场了。
众所周知,区块链具有不可篡改的特性,正是一切非法修改的克星。因此只需要采用区块链存证的思路把用户的行程信息固定下来,就可以避免将来伪造或篡改的风险。这样,有区块链存证加持的证据,其可信程度又上了一个台阶。如果确诊记录了历史行程的患者,他们的行程信息又可以被用来做下一步的筛查,直接为控制疫情扩散做出贡献。
这样,通过将隐私计算技术和区块链技术相结合,我们有望把现有的“确诊患者同乘查询”扩展到更大的范围和更细的粒度,大幅度提高筛选 B 类接触者的效率和准确度,为更精准快速地控制疫情做出贡献。
写在最后:上面提出的只是一个从技术出发的构想,大概率是赶不上抗击这次新冠肺炎疫情了。面对现实世界的种种问题,“纯技术”的解决方案经常是非常乏力的,因为起决定性作用的终究还是“人”,国内顶尖的病毒研究实验室、因 SARS 而建的传染病监测预警网络在这次疫情中都没能发挥出应有的作用。但是我们也无需过分悲观,因为“技术”只是一种工具或者说是武器,只有在合适的人手中才能发挥出本来的威力。十天竣工的火神山医院就见证了技术掌握在合适的人手里时能发挥出多么强大的力量。
如果还有下一次疫情,希望那时我们已经有区块链+隐私计算技术加持的行程交集查询系统、区块链技术赋能的物流溯源和跟踪系统、基于区块链的善款和捐赠物资管理系统等严阵以待,更希望那时的人可以充分发挥这些新技术新系统的力量,将疫情扑灭在大部分人还没注意到的萌芽状态。