一文揭秘跨链、密钥管理、合约隐私背后的技术, 你不可不知的安全多方计算(MPC) | 技术头条...

640?wx_fmt=jpeg

作者 | 苏冠通

责编 | Aholiab

出品 | 区块链大本营、ARPA



安全多方计算已经被公认为区块链发展中重要的密码学技术和工具,其在交易或者合约隐私保护,钱包密钥管理,跨链交易,区块链扩容等问题中都发挥了独有的作用。


然而由于其具体技术涉及诸多密码学算法和数学背景知识,在相应领域学习和开发之初会茫然而没有头绪


本文希望以有限的篇幅将安全多方计算的概念相互连接成系统,以便读者快速学习和构建知识网络。同时,对安全多方计算中运用最多的两个分支:「基于混淆电路的安全多方计算」和「基于秘密分享的安全多方计算」进行介绍。


在安全多方计算(Secure Multi Party Computation)的第一篇文章中,我们已经描述了安全多方计算如何在数据价值和隐私保护的矛盾下提供一种解决方案,以及这个问题是如何被姚期智先生提出,并如何在实际生活中起到作用。


那么在介绍安全多方计算的进一步应用,以及和区块链之间如何巧妙结合之前,我们单开一个“进程”来深入到安全多方计算技术内部,将其实现技术给出一个简单明了展示


通过这些例子我们可以看到安全多方计算与明文计算之间的区别,这种密码学方案如何实现了它声称的功能,不同实现方法之间的关系与区别,以及安全多计算与其他密码学算法之间的关系。这篇文章会涉及到一定的密码学基础算法和数学内容,但这不会影响理解安全多方计算本身的思想。




安全多方计算的提出


在姚期智先生(Andrew C.Yao)于1982年发表的文章“安全计算协议”一文中,他提到“两个百万富翁希望知道谁更富有,然而,他们不希望获得关于对方财富的额外信息。他们应当如何进行这次对话?”。


640?wx_fmt=jpeg


这个“百万富翁难题”是安全多方计算的一个特例,一般化的安全多方计算是n个参与方之间的一个交互式协议,n方分别持有数据x1,x2,…xn,该协议希望在输入之上计算函数y1,y2,…,yn=f(x1,x2,…xn),并使得第i方只能获得yi而不能获得其他信息。


这个定义看起来并不能带来直观的认知,我们不妨换一种思路来思考:在一个理想的世界(理想世界范式)中,存在一个完全中立,不和任何人合谋的可信第三方,所有人将数据交给他,之后他进行计算并将结果进行对应分配。这就完成了一次安全计算。


那么在现实世界(现实世界范式)中,安全多方计算协议就是在不存在这个可信第三方的情况下,完成同样的任务。这给人们更简明扼要思考安全多方计算能力与缺陷的参考。


比如,它并不能保证输入方提供了正确的输入,它也不能一般化的隐藏函数f的信息(代码混淆)。但另一方面,能否保证所有参与方都能同时拿到或者拿不到计算结果(公平性),能否保证参与方中有几方合谋或者试图刺探别人的输入信息时,计算依然可以安全进行(鲁棒性),这些问题则是密码学家在构造不同安全多方计算协议时关心的重点。


现实中的协议并不只有一个,也不是完全相同的几种,而是效率不同,安全模型不同,实现方式不同的一系列密码学协议

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值