背景介绍
我叫小明,是一个每天喜欢胡思乱想的打工人。
随着年轻人的创业热潮的到来,我有一种创业的冲动。经过长时间的探索,我现在萌生出了一个极具创造性的点子,如果以此为依据进行创业的话一定会引起热潮。
首先,为了确定我的想法是不是独一无二的,我必须先通过搜索引擎进行查询。这里有一个我很在意的问题——我在搜索引擎里搜索了我的创意,浏览器会将我的创意直接发送给搜索引擎的服务器,如果我的创意确实是独一无二的,那这样直白的搜索方式一定会把我的创业完全暴露出来,这对我来说非常致命,我绝对不能让任何人有窃取我创意的可能。
如何才能保证在不让搜索引擎知道我具体要查询什么东西的情况下获得我想要的数据是我亟待解决的难题。
Coinbase承诺将10%的资源用于“创新押注”:Coinbase首席产品官Surojit Chatterjee在一份声明中表示,Coinbase正在采取一种新的创新方法。Chatterjee表示,该交易所将投入10%的资源支持“颠覆性创新押注”。(The Block)[2021/4/22 20:45:27]
简单做法
我的第一个主意是将搜索引擎中所有的数据全部下载下来,将原来的在线查询转换成为本地查询。这就意味着我不用将我的点子发送给服务器端,我就可以充分地保护好自己的隐私了。
不过我还得考虑到另外一个问题,搜索引擎的服务器可是有pb级别的数据量,我下载下来就得花费我几天的时间,另外我还得专门再去买几块大容量的硬盘,这对我来说实在是太过于昂贵。
分?桶
我换了一个想法,既然没机会直接把搜索引擎的数据库都给扒下来,我就试着扒下来一部分数据,然后我再本地查询,这样对我来说,准备的硬盘也可以少一点。
火币Labs助力深圳2020“创业之星”大赛启动:2020年7月2日15时,第十二届中国深圳创新创业大赛南山区预选赛暨创新南山2020“创业之星”大赛大数据和区块链行业赛启动仪式开启。
本次大赛由深圳市科技创新委员会和深圳市南山区人民政府联合主办,其中,大数据和区块链行业赛由火币Labs承办。本次启动仪式采取线上直播的方式,以2020年下半年大数据和区块链行业创投趋势解析为主题,重点围绕下半年区块链和大数据投融资趋势、产业规划布局以及相关应用案例分享等内容展开,力图通过深入探讨,使“政、企、学、研”各方充分沟通与对接。
此外,火币Labs还邀请到深圳市南山区科技创新局局长长刘石明,和深圳市南山区科技创业服务中心主任刘晓林共同参与。详情点击原文链接。[2020/7/2]
比如说,我本来想要查询的数据是“小明是大帅哥”,这样无疑就向搜索引擎公司暴露我是帅哥的隐私了,那我就可以换一种方式,我就查询“大帅哥”,这样我收到的数据虽然有很多都是我不想要的,但是里面却会包含“小明是大帅哥”的搜索内容。这样,我就将全部的数据库下载换成了部分数据库的下载。获取部分数据库内容以后我就可以本地再去查询了。
TokenBetter即将上线“创新区”:据TokenBetter官方公告,TokenBetter为给具备创新升值潜力的新兴项目提供更多项目扶持和上币机会,即将开放上线“创新区”。
TokenBetter创新区旨在精选全球优质项目,以创新的发行和交易方式,为TokenBetter用户提供更优的投资选择。
TokenBetter成立于2018年12月,总部位于美国,是一家独立的全球性的数字货币交易所。TokenBetter交易所构建区块链金融市场的底层基础设施,应用于金融行业的信息、资金和凭证交换。详情点击原文。[2020/5/14]
这里用到了数据“分桶”的预处理技术,用于减少次要观察误差的影响,是一种将多个连续值分组为较少数量的“桶”的方法。
隐私性保护
分桶的做法虽然很好,但是无疑向数据库泄露了部分隐私,比如“大帅哥”这个信息,虽然服务器没有获知“小明是大帅哥”这个隐私,但是无疑泄露了我对“大帅哥”相关信息比较感兴趣,我不想为了保护我的具体隐私让服务器产生其他的误解。
动态 | 吴忌寒卸任比特大陆全资子公司“创客云”监事一职:据天眼查显示,比特大陆创始人吴忌寒已于1月9日卸任和布克赛尔蒙古自治县创客云技术有限公司(创客云)监事一职,退出该公司主要成员,职务由任罡接任。另外,郭明卸任执行董事,法人王文广接任执行董事兼总经理职务。这是吴忌寒2020年以来第2次卸任与比特大陆相关公司重要职务。1月2日,北京比特大陆科技有限公司发生工商变更,吴忌寒卸任比特大陆法定代表人,比特大陆 CFO 刘路遥接任,成为总经理兼法定代表人。天眼查显示,上述公司由比特大陆100%控股,成立于2016年10月,经营范围包括计算机云服务、计算机软件开发、电子产品销售等。[2020/1/10]
我只能换一种方式,传统的隐私查询技术给了我一点提示。
▲?背景说明
传统的隐私查询技术对于数据保存结构有特殊的要求:首先数据库得是公开的,即我可以随时调取查看服务器里的任何数据;其次,在很多个服务器上都得部署完全相同的数据库;再者,这些部署了数据库的服务器互相之间不能沟通;最后,假设数据库拥有n个数据X?、X?…?Xn,那么在数据库中其存储形式为一个n维向量。
动态 | 韩国拟设立“创新学院” 在区块链技术发展和应用领域出台扶植计划:新华社首尔消息,韩国政府26日表示,计划明年设立“创新学院”培养软件专家,以顺应第四次工业革命潮流。韩国企划财政部当天发表声明说,“创新学院”计划明年9月开班,至2023年培养大约2500名软件专家。其间政府将为学院提供1806亿韩元资金支持。韩国政府一直把推动创新增长、顺应第四次工业革命潮流作为经济政策重要目标,在自动驾驶、道路智能系统等新技术研发应用和设施建设,以及区块链技术发展和应用等多个领域出台了扶植计划。[2018/12/27]
▲?简单技术方案
如果我现在需要的是数据Xi,那么其实我应该做的事情很简单,就是自己生成一个n维向量,只在第i个位置放1,其余的所有位置都放0,很明显的,这个时候我生成的这个向量和数据库里的向量内积就可以获得结果Xi。
但是这样会存在一个问题,我如果直接将我的向量发送给服务器,他们明显就知道我需要的是什么数据了,那我只能通过另外一种方式来保护我的隐私,将我的向量拆分。如果我把我生成的向量记为r,假设有k个服务器,注意这里k≥2,那么我只用将r拆分成为k个向量即可。更具体的,我可以拆分为:
然后将每个分量ri发送给一个服务器。然后服务器自己本地求内积,将结果发送给我,我收到k个结果后求异或就可以复原出Xi的值了。
通过算法描述,相信大家也能理解为什么服务器一定需要大于两个,而且这些服务器之间还不能互相沟通。如果服务器之间互相可以沟通的话就可以复原出我的查询r了。
这个算法有一个很致命的问题,就是我生成的查询r其实是和服务器的数据大小一样大的,如果服务器有几千亿的数据,我的r就得有几千亿维,并没有降低网络消耗,而且更糟糕是,我得生成很多份分量,而每个分量的大小都和数据库一样大,这种方式无疑比直接下载数据更加庞大。
▲?优化技术方案
因为巨大的传输量,我们现在可以对服务器的数据保存方式进行改进,原先的保存方式为向量,现在可以改进为矩阵,假设数据库有25个数据,那么数据将会变成如下形式
我们此时生成的向量就可以从原来的25维缩减到5维,例如我们需要的数据是,在矩阵的第一行,那我们就可以生成查询,此时服务器内积后会将第一行返回给我们。
同之前的方案,我们不能直接将查询r发送给服务器,还是需要进行拆分,然后发送给服务器。同样的流程过后我们就能第一行元素。这样对每个服务器我们上传的数据量为一个5维向量,下载量也同样是一个五维向量,同时,对于每个服务器来说,他们并不知道我们最后拿到的是哪一行。
这个方案的数据总传输量为2k√n,这里的n为服务器拥有的总数据量,k为服务器个数,通常,只需要两个服务器就能达到安全性的要求,故总传输量4√n。
在数据量大于16的情况下,这个策略的数据传输量已经小于直接传输整个数据库的数据量了。
▲?再进阶做法
我按照之前的想法在搜索引擎里查询了一下我的创意,发现里面并没有相关内容。我正准备庆幸没有别人做了和我相同的事情的时候,我的朋友张三麻子和我说我用的搜索引擎查询的结果可能不会很准,推荐了一个相关的收费网站给我,这个网站可以查询到全球所有公司以及其具体业务模式。不过他们是按照查询条数收费的,故不可能像搜索引擎那样随便让我下载资源了。这个时候我的查询数据需要隐私,同时他们的数据库内容也需要隐私。
这个时候可以对之前的算法进行进一步升级,将服务器从2个扩展为4个,我同时发起行查询和列查询。比如我需要的数据,在矩阵里的第一行第三列,那么我就会进行第一行与第三列的查询。行列查询都分别拆分两个分片,这样总共有4种组合可能,四个服务器分别选取其中一种组合本地进行计算。这样服务器便只会发送混淆后的一个元素回来,不会暴露自己的任何额外信息。
讨论及总结
以上的算法有一个很关键的问题,即我知道我需要的数据是数据库中的第几个元素,但是通常情况下,这样的查询方式是不现实的。更为普遍的查询方式为k-v查询,即我依据某个k去数据库查询其对应的v。
例如,我去搜索引擎里搜索“我是大帅哥”,此时k就是“我是大帅哥”,百度返回的搜索结果就是其对应的v。如何将传统的隐私查询技术进行升级以配适现实生活中的实际场景仍需要进一步的探索。
数据安全是现在从个人到国家都非常重视的领域,如何将我们的隐私数据安全的使用起来也是我们一直以来努力的方向。
作者简介
刘毅恒
来自趣链科技数据网格实验室BitXMesh团队,一个鲜为人知的程序员
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。