趣说MPC:如果“石崇斗富”用上现代密码学解决方案......
被载入史册的炫富
炫富和斗富,不仅仅是现代才有的,古代也有。并且有两个人因为斗富还被载入到《世说新语》里了,史称石崇与王恺争豪,翻译成大白话就是石崇和王恺非得比谁的钱更多。他们誓要在各个方面都表露出自己比对方有钱,甚至连饭后洗碗的水都要比。
假如他们都知道自己的财富有多少,但又不想透露具体的数字,那有没有一种快捷的方式,能够让他们在互相不知道对方家底的前提下,得出谁更有钱呢?
看到这个问题,如果对密码学有了解的人,这时应该会想到一个技术——MPC(安全多方计算)。
MPC是一种加密协议,允许多方在互不信任的情况下进行协同计算,输出计算结果,并保证任何一方均无法得到除应得的计算结果之外的其他任何信息。
MPC如何帮助鉴别出谁更有钱呢?
解决方案
我们先做个假定:
1、两人都值得信任,不会作假;
2、两人都真情实感地想比较出谁的钱更多。
再来简化下问题:
我们假设两人的财产在一千金至一万金之间,而且他们也只想做千金级的比较,即每个人只在乎在千金级别上是否我的钱比对方多。
问题简化为:石崇和王恺都清楚自己有几千金财产,即他们心里清楚 1-10中的一个数代表自己千金级的财富,他们想知道到底谁的数更大一些。
接下来,开始游戏:
1、找10个一模一样的箱子,按照1-10编好号。
2、石崇按照自己的财富值分别往每个箱子里,放入苹果、梨和香蕉。具体放法为:如果箱子编号小于自己千金级的财富则放苹果;箱子编号和自己的财富相等,则放入梨;箱子编号大于自己的财富,放入香蕉。
4、将10个箱子上锁,叫来王恺,让他选择跟自己财富金额对应的箱子,然后将其它箱子销毁(这个过程由王恺独立完成)。
5、两个人都不知道这个箱子的编号,因为它们是一模一样的。
6、打开箱子,就能知道谁的财富更多了:
· 如果是苹果,石崇比王恺富有;· 如果是梨,两人一样有钱;
· 如果是香蕉,王恺比石崇富有。
以上这个简单的例子就是MPC里最基本的“百万富翁问题”解决方案。MPC是非常复杂的密码学技术,对于非计算机背景的我们来说,了解它的一些相关知识,就能在每次提及MPC时,不至于两眼一抹黑。而如果你有计算机背景,可以查阅专业的论文以加深理解。
MPC能够安全地输出约定好的数值,不仅可以用于不同组织间的敏感数据共享,也可以用在同一组织间不同团队、不同部门间的数据共享。
此外,MPC的特性和原理,对于解决区块链的两大瓶颈问题,有一定帮助。
区块链与MPC的结合
区块链技术发展至今,面临着两大挑战:一是公开数据带来的隐私问题;二是链上无法进行高效计算处理的性能问题。
隐私问题不但包括区块链上记录的交易信息的隐私,还包括区块链上记录以及传递的其他数据的隐私,这一点在大数据时代尤为重要。而高性能计算一直都是区块链发展的一个瓶颈,在公有链中,大量节点需要全部对计算任务进行处理,以保证计算任务处理结果的准确性和不可修改性。但这样做造成了严重的资源浪费和低效,同时,为了取得去中心化的效果,搭建节点的要求又不能太高,这一点又进一步影响了单个节点处理任务的能力。
这时候,安全多方计算的输入隐私性、计算正确性、去中心化等优点就可以很好地帮助解决这些问题。
加入MPC技术的“PlatONE”
PlatONE是由万向区块链和生态合作伙伴共同打造的,基于隐私计算的新一代联盟链,支持企业级应用,满足供应链金融、物流、存证溯源、物联网及慈善行业等多种应用场景,已在万向区块链多个行业解决方案中投入使用。
PlatONE引入了行业最新技术,包含MPC、WASM(WebAssembly)、零知识证明等,在技术和性能方面有多个的优势。
1、系统安全
提供多种先进的隐私保护计算,提供多元完善的认证机制,引入形式化验证及安全验证技术。
2、性能优越
支持WebAssembly虚拟机、提供高度优化的BFT类共识算法、提供更高效的数据存储机制。
3、易用性高
支持使用多种主流高级编程语言开发合约、提供丰富的企业级部署工具。
4、功能丰富
支持合约管理服务、支持灵活的系统参数配置机制。
登录PlatONE官网:https://platone.wxblockchain.com/。可以下载白皮书,了解PlatONE的详细信息和具体优势。
Scan QR code with WeChat