编者按:私密计算是解决区块链无法保护隐私的问题。因为区块链上的数据天然是全公开的,任何人都可以查看。假如一个人知道了你的钱包地址,就可以看到你的余额、你所有的转账记录。设想一下买保险的场景,买保险需要提供我的体检报告来证明我的健康状况,假如用区块链来实现的话,代表着我的体检报告就要记录到区块链上昭告天下了,我感觉这样子并不是十分妥当。私密计算就是用来解决这样的问题。

私密计算支持在区块链上记录计算结果,用共识完成对于计算结果的验证,而不暴露计算所用到的原始数据。

比如用哈希(Hash)举例子,我可以在区块链上记录一个哈希值,证明我知道这个哈希值的原始数据,但是不暴露这个原始数据。私密计算上目前在研究的技术主要是安全多方计算(MPC)和零知识证明(zk-SNARKs、zk-STARKs等)。

安全多方计算

安全多方计算(SMC,Secure Multi-Party Computation)是解决一组互不信任的参与方之间保护隐私的协同计算问题,SMC要确保输入的独立性,计算的正确性,同时不泄露各输入值给参与计算的其他成员。主要是针对无可信第三方的情况下,如何安全地计算一个约定函数的问题,安全多方计算在电子选举、电子投票、电子拍卖、秘密共享、门限签名等场景中有着重要的作用。

安全多方计算框架

当一个 MPC 计算任务发起时,枢纽节点传输网络及信令控制。每个数据持有方可发起协同计算任务。通过枢纽节点进行路由寻址,选择相似数据类型的其余数据持有方进行安全的协同计算。参与协同计算的多个数据持有方的 MPC 节点根据计算逻辑,从本地数据库中查询所需数据,共同就 MPC 计算任务在数据流间进行协同计算。在保证输入隐私性的前提下,各方得到正确的数据反馈,整个过程中本地数据没有泄露给其它任何参与方。

安全多方计算理论主要研究参与者间协同计算及隐私信息保护问题,其特点包括输入隐私性、计算正确性及去中心化特性。

输入隐私
安全多方计算研究的是各参与方在协作计算时如何对各方隐私数据进行保护,重点关注各参与方之间的隐私安全性问题,即在安全多方计算过程中必须保证各方私密输入独立,计算时不泄露本地任何数据。

计算正确
多方计算参与各方就某一约定计算任务,通过约定 MPC 协议进行协同计算。计算结束后,各方得到正确的数据反馈。
去中心化
传统的分布式计算由中心节点协调各用户的计算进程,收集各用户的输入信息。而在安全多方计算中,各参与方地位平等,不存在任何有特权的参与方或第三方,提供一种去中心化的计算模式。

应用场景

1. 多头借贷问题

两个网贷公司A和B,想知道借款人是否在对方公司借款了,但他们又不想让对方知道借款人的信息。

2. 百万富翁问题

两个百万富翁Alice和Bob,想知道他们两个谁更富有,但他们都不想让对方知道自己财富的任何信息,这就是百万富翁问题。百万富翁问题是由姚期智提出的,两个百万富翁Alice和Bob想知道他们两个谁更富有,但他们都不想让对方知道有关自己财富的任何信息,这就是百万富翁问题。有具体实现方案。

3. 安全电子选举问题

电子选举方案需要满足,选票保密性、无收据性、健壮性、公平性和普遍验证性等性质。整个选举方案没有可信第三方,任何投票人都可以计票,比一般的方案具有更强的安全性。有具体解决方案。

4. 遗传病诊断

Alice认为她得了某种遗传病,想验证自己的想法。正好她知道Bob有一个关于疾病的DNA模型的数据库。如果她把自己的DNA样品寄给Bob,那么Bob可以给出她的DNA的诊断结果。但是Alice又不想别人知道,这是她的隐私。所以,她请求Bob帮忙诊断自己DNA的方式是不可行的。因为这样Bob就知道了她的DNA及相关私人信息。

5. 业务合作

经过一次花费查后,A公司决定扩展在某些地区的市场份额来获取丰厚的回报。同时,A公司也注意到B公司也在扩展一些地区的市场份额。在策略上,两个公司都不想在相同地区互相竞争,所以他们都想在不泄露市场地区位置信息的情况下知道他们的市场地区是否有重叠。(信息的泄露可能会导致公司很大的损失。比如另一家对手公司知道A和B公司的扩展地区,提前行动占领市场;又比如房地产公司知道A和B公司的扩展计划,提前提高当地的房租等等)所以他们需要一种方法在保证私密的前提下解决这个问题。

6. 电子拍卖
在进行电子拍卖时,各方依赖于拍卖服务器的安全性来进行拍卖活动,但是在实际中,会出现投标者不愿意泄露标的投标价、各方对于拍卖行不信任的情况。而安全多方计算技术的加入则使得电子拍卖成为现实,大部分方案都采取了可验证秘密共享协议或者使用其思想,具备灵活性、保密性、鲁棒性和可验证性。

7. 联合数据查询
以音乐版权为例,国内各大音乐平台的资源不尽相同,使得资源共享的壁垒不断抬高,这不管对于音乐人、用户还是音乐平台自身来说都是一种阻碍。在保障平台私密数据的同时,寻找有效的资源共享方法成为了急需解决的问题。安全多方计算可以解决这种问题,不同数据库资源共享时,多个数据库联合进行数据查询,且不泄露单方信息。

区块链与安全多方计算有一个共同点,都是多个节点协同完成一项任务,不同之处在于区块链所搭建的是一套可信的去信任网络,即保证不会有篡改计算结果的问题发生,但不能做到保护原始数据,而安全多方计算可以在多个节点之间进行协同计算任务时,让数据还保留在原节点上,不会让隐私数据泄露到外界。如果将两者结合在一起就可以做到既限制人为作恶篡改计算结果,又能够保护数据隐私,形成一套非常完整的解决方案。这也是一些区块链项目引入安全多方计算的原因,就是为了提高区块链系统隐私保护方面的能力。

【问链财经-区块链基础知识系列】 第二十六课 隐私保护方法:多方安全计算和区块链相关推荐

  1. 生日祝福小程序_广告配音剪映零基础入门教程第二十六篇:如何给朋友制作生日祝福视频...

    经常听到小伙伴问到生日祝福视频怎么做,当然我想既然要为他人做生日祝福视频,那么这个人必定是自己身边比较重要的人,而生日又是每个人都是非常重要的,在这种充满意义的时刻,我们想给自己极其重要的人送上一份祝 ...

  2. 【区块链基础知识系列】 第6课 区块链之分片技术(sharding)-区块链扩容问题的良方

    进行区块链扩容的一个答案就是分片技术(Sharding).分片技术承诺通过改变网络验证的方式来增加吞吐量.分片技术独特于其他解决扩容的链上技术的关键特性,就是它可以进行水平扩容,也就是说,网络的吞吐量 ...

  3. 区块链基础知识系列 第二课 区块链共识算法

    共识算法解决的是对某个提案(proposal)大家达成一致意见的过程. PBFT (拜占庭容错)算法 -Fabric 0.6采用 五个阶段:request,预准备(pre-prepare).准备(pr ...

  4. Simulink 环境基础知识(二十六)--信号基础知识

    目录 信号基础知识 信号线的线型 信号属性 存储信号和状态的设计属性 测试信号 信号基础知识 信号是指在所有时间点都有对应值的时变量.可以指定各种信号属性,包括: 信号名称 数据类型(例如,8 位.1 ...

  5. 【问链财经-区块链基础知识系列】 第十七课 区块链应用于汽车保险行业所带来的变革

    编者按:在一般汽车保险诈骗案,汽车驾驶会故意安排假车祸,然后向保险公司提出各种不实和非法的索赔.据德勤(Deloitte)统计,这些假车祸每年让保险业损失约7亿新元.汽车驾驶若对不同保险公司索赔,除非 ...

  6. 【区块链基础知识系列】 第9课 一文诠释什么是DAG

    一.什么是DAG? 有向无环图(Direct Acyclic Graph或DAG)是可以说是近几年区块链项目的技术热点之一.不少业内人士都认为这项技术有可能在根本上解决区块链的扩容问题,因此相关的项目 ...

  7. 【区块链基础知识系列】 第8课 区块链之零知识证明

    所谓零知识证明,指的是示证者在证明自己身份时不泄露任何信息,验证者得不到示证者的任何私有信息,但又能有效证明对方身份的一种方法. 从本质上讲,零知识证明是一种协议.所谓协议(Protocol),就是两 ...

  8. [C#基础知识系列]专题十:全面解析可空类型

    引言: C# 2.0 中还引入了可空类型,可空类型也是值类型,只是可空类型是包括null的值类型的,下面就介绍下C#2.0中对可空类型的支持具体有哪些内容(最近一直都在思考如何来分享这篇文章的,因为刚 ...

  9. [C# 基础知识系列]专题十四:深入理解Lambda表达式

    引言: 对于刚刚接触Lambda表达式的朋友们,可能会对Lambda表达式感到非常疑惑,它到底是个什么什么样的技术呢?以及它有什么好处和先进的地方呢?下面的介绍将会解除你这些疑惑. 一.Lambda表 ...

最新文章

  1. BUUCTF(pwn)[HarekazeCTF2019]baby_rop2 泄露libc基址,rop,利用gadget
  2. 深入理解BN、合并conv+BN公式推导
  3. android动态添加的页面怎么加功能_Android跳转应用安装页面
  4. 矩阵转置(信息学奥赛一本通-T1126)
  5. 安卓应用安全指南 4.6.1 处理文件 示例代码
  6. 还在4S店买车?《Boss1+1》张朝阳对话贾鸣镝“种草”购车新方式
  7. 互联网反欺诈体系中的常用技术和数据类型
  8. 阿里云安全掌门人肖力:企业上云,如何保证安全?| 问底中国 IT 技术演进
  9. 热门开源 WYSIWYG 编辑器 TinyMCE 被指存在严重的 XSS 漏洞
  10. 【李宏毅2020 ML/DL】P66 Self-supervised Learning
  11. $与一些特殊字符的组合用法
  12. ubuntu 怎么格式化U盘?(转载)
  13. Netty5+Jboss(Marshalling)完成对象序列化传输
  14. Windows10应用Docker部署DoNet Core
  15. 语句覆盖、条件覆盖、判定覆盖、条件-判定覆盖、组合覆盖、路径覆盖
  16. c语言转换为python语言_C语言程序转换为Python语言
  17. java读者信息管理课程设计_Java课程设计—学生成绩管理系统(201521123002 林楚虹)...
  18. vscode 连接ubuntu显示“试图写入的管道不存在”
  19. UOS系统中安装x11vnc远程桌面
  20. 推荐几款项目管理工具 总有一款适合你

热门文章

  1. 用自动阈值话处理SVM棋盘
  2. VB.net实现从ListView控件中异地获取文本内容源代码
  3. 《一只孤独的船》莱蒙托夫
  4. 如何在Linux终端里用Shell和C输出带颜色的文字
  5. caffe源码分析:blob.hpp分析
  6. [云炬创业基础笔记]第二章创业者测试10
  7. 科大星云诗社动态20210407
  8. 科大星云诗社动态20210514
  9. [MATLAB学习笔记]clf清空图窗1013(1)
  10. [OS复习]存储管理1