作者 | 章磊
责编 | Aholiab
出品 | 优快云、ARPA
在我们之前的“多方安全计算”系列文章中,我们首先通过姚期智教授的“百万富翁问题”引出了数据安全计算这个密码学话题,并介绍了多方安全计算在数据隐私中的应用场景。第二期中,我们又简要的介绍了两种“多方安全计算”的技术路线以及理论知识。
本期,我们将继续深入介绍多方安全计算在行业中的应用。通过这篇文章,读者可以了解到这样一个工具是如何在金融科技,机器学习中发挥作用,打破壁垒,保护隐私。也欢迎读者将安全多方计算放在您的工作场景中来启发出新的行业应用。
场景1 基金联合收益计算
在母基金管理中,我们需要计算每个基金的真实收益情况。而基金的持仓信息是一个非常重要的私密信息,它代表了基金的价值判断和策略导向,也是基金公司的核心机密。
一方面是出于管理预警作用所需要的信息共享,一方面是基金本身的商业信息的保护,传统方法必然导致一方的诉求无法得到满足。
使用MPC计算,不仅能够同时满足双发的利益诉求,甚至可以让基金信息得到有效的政府监管、防止出现市场结构性风险,同时保证商业信息不被泄露。
以一个典型的两方计算场景为例:一方提供编译好的计算函数,一方将加密的数据进行联合计算。代码极其简单,甚至几行代码就能实现其核心逻辑。
场景2 联合个人征信(不经意查询)
个人征信的场景大家再熟悉不过了,通过多个信息渠道对个人历史记录进行多维度计算,反应出一个人的信贷能力。
通过计算信用等级,贷款机构就能算出风险,并能决定是否放贷。个人数据维度越多,信贷能力的计算越准确。传统意义上,我们会使用央行给出的详细个人历史记录作为信用模型计算的依据。
而其他渠道的信息,例如电商购买行为,甚至是手机APP安装情况,都能帮助反应个人的肖像。
然而,多渠道信息融合的难度极大。一方面是法律因素:交易个人隐私信息是违法的;另一方面,处于商业利益的保护,数据共享也会导致数据持有公司失去竞争优势;再次,查询方也会暴露查询的对象和内容,从而在一定程度暴露信息。
而MPC能解决的核心问题,是通过不经意查询,达到数据不被公开、查询对象不暴露、而结果能够被正确查询返回。要达到这个核心目的,我们只需要一下几步:
数据拥有方将查询ID和对应数值构建数组a, b,组成数据库,并秘密分享。这样共享的数据不能被任何一方解密。注意ID需要将asic编码转化成特定的数值编码,方便查询;
查询方将查询ID进行秘密分享,这样所有人都不知道真实的ID是什么。这里ID也进行了相应的数值转换;
通过遍历计算得到相应的位置值。这里两点需要注意:a)查询必须遍历整个列表而不能终止,不然会暴露查询对象;b)返回的不是真实的位置,而是一个