当前位置: 首页 > 科技观察

安全多方计算:在不受信任的环境中建立信任

时间:2023-03-23 01:55:26 科技观察

安全多方计算有助于保护加密货币交易,它还有其他新兴用例。什么是安全多方计算?“安全多方计算”(SecureMulti-partyComputation,简称MPC,也称为SMC或SMPC)是指一组算法,可以让人们通过网络协同工作,安全地获取结果或计算值,并确保正确性这个值。数学上的描述是:有n个参与者P1,P2,……Pn,他们需要以一种安全的方式共同计算一个函数。这里的安全是指输出结果的正确性以及输入信息和输出信息的保密性。安全多方计算问题最早由中国计算机科学家、该奖项获得者姚期智教授于1982年提出。在各自财富的前提下,谁更富有?简单来说,安全多方计算协议是密码学的一个子领域,允许多个数据拥有者在不相互信任的情况下进行协同计算,输出计算结果,并保证任何一方都无法获得除应有计算之外的任何信息结果。也就是说,SMPC技术可以在不泄露原始数据内容的情况下获取数据使用价值。几十年来,理论数学家一直在研究多方计算。现在,研究人员已经开发出这样一种算法,它适用于更复杂的网络应用程序、API和正在开发的服务。如今,此类算法的使用也在无信任环境中出现。大多数企业堆栈或多或少都在运行这种算法,人们一起工作并朝着同一个方向努力。Web服务查询可以通过将存储在一台设备上的数据与存储在另一台设备上的数据相结合来回答,这些数据由模板控制的第三台设备格式化,所有这些都由运行在服务器后面的Kubernetes集群管理器协调的负载平衡。即使是相互连接的台式电脑,也可以利用CPU芯片和显卡、网卡的强大功能协同工作,为同一用户提供服务。所有这些案例都在受信任的环境中运行。如果软件堆栈运行在不同的设备和相互不信任的人身上怎么办?SMPC算法使员工即使在彼此不信任的情况下也能一起工作。最基本的审计和加密功能的紧密结合,即使有伪装的攻击者试图窃取数据或企业内部出现内部人员,最终输出的数据也将是正确和安全的。安全多方计算的工作原理大多数密码算法由一个人运行,所有数学计算都由该人或在组织的可信环境中完成。在通过电子邮件发送或存储在公共互联网上之前,文件可能会在受密码保护的个人设备上进行安全加密。数字签名是由私人设备使用受到保护的密钥创建的,因此其他人可以相信只有密钥的所有者才能创建签名。SMPC可以使用这些基本算法来找到解决政治上更复杂问题的方法。尽管他们经常使用相同的标准加密或数字签名,但他们在受信任的环境中以协调的方式应用它们。加密货币使用的区块链是一个很好的例子,它以协调的方式应用基本数字签名,在互不相识的人之间建立更牢固的信任。在这些算法中,特定加密货币的所有权与密钥的所有者相关联,并且通过添加数字签名将所有权转移到其他人的密钥。通常,这些交易通过其他人的数字签名与较大区块中的其他交易进行身份验证。总而言之,这个数字签名网络跟踪货币所有权,有朝一日可能成为稳定经济的基础。安全多方计算在理论计算机科学领域也有更精确的定义。一些最早的算法证明可以拆分任意计算并获得安全可靠的答案。最早的证据表明,它可以用于表示为布尔门序列的任意计算。多年来,数学家开发了更复杂、更专注的算法来解决问题。安全多方计算的类型在SMPC保护伞下考虑了许多不同的算法组合。最早的算法首次发表于1970年代,当时数学家正在寻找一种远距离玩游戏的方法,例如扑克牌,这样任何玩家都不会在交易过程中作弊。从那时起,此类游戏已演变成解决任意布尔函数的良好算法。以下常用算法可以单独使用来解决较小的问题,也可以组合使用来解决更复杂的挑战。(1)秘密共享一个秘密值被分成N个部分,使得K的任何子集都足以重构秘密。最简单的示例,将秘密编码在一行的y截距中。线上的N个点是随机选择的。任何两个都足以重建轴并恢复Y轴截距,在这种情况下K=2。更复杂的数学可以使用更大的K值。隐藏的秘密通常是更大文件的私钥。一旦数据泄露,原始密钥被泄露,必须有K个人共同努力才能解锁。(2)剪切和选择这一基本步骤是许多算法的基础,因为它允许一方在不泄露秘密信息的情况下审计另一方。一方以某种方式用值打乱了他们的一些数据包。当这些出现时,另一方将通过要求解密这些数据包的密钥来随机选择一些数据包进行审计。如果双方同意且数据正确,则无需对这些未加扰值的数据包进行审计,可以认为未经审计的数据包是正确的。双方可以承诺共享信息,同时保护这些未经审计的数据。(3)存在一些更复杂的数字签名版本的零知识证明,此类证明的创建者可以在不透露价值本身的情况下透露内容信息。这些通常在更复杂的算法中很有用,因为一方可以在不透露它们的情况下做出秘密选择。一个更简单的版本通常称为“BitPromise”,这是许多游戏中的协议。双方可以通过随机选择硬币的正面或反面来越过“不安全线”。每一方都使用一种单向函数,例如安全哈希算法(SHA),以额外的随机性来打乱他们的选择以确保保密。首先,两者共享加噪数据的版本。双方知道这两个打乱后的值后,就可以揭示他们原来的正面或反面的随机值。如果它们匹配,则一方获胜,如果值不匹配,则另一方获胜。双方可以通过重新计算单向函数来相互审计。(4)非交互式零知识证明最早的零知识证明需要两方进行交互,一方向另一方证明某个陈述。后来出现了非交互版本,被命名为SNARKs或ZK-SNARKS。目标是生成一小部分包含证明的所有信息的位。任何人都可以事后检查束,进行类似的计算,并得出相同的结论。这些捆绑包通常通过证明复杂的事实同时保持某些信息的私密性来充当更强大的数字签名。一个简单的例子可能是驾照,证明一个人年满21岁并且有资格购买酒类,但不需要透露他们的实际年龄或生日。安全的多方计算用例这些算法在许多商业交易中都很有用,因为它们允许人们相互信任,正如罗纳德里根的座右铭,“相互信任并可以验证他们所做的一切”。用例包括:(1)加密货币尽管关于社会是否应该对数字货币给予经济信任的争论仍在继续,但毫无疑问,市值证明了SMPC的潜力。绝大多数交易继续按照双方预期顺利进行。许多重大问题不是由算法故障引起的,而是由计算机系统中的漏洞引起的。(2)玩法随着人们逐渐转向网络娱乐场所,作弊变得更加容易。本地硬件的控制器让作弊者侵入游戏软件以找到隐藏的数据,例如地图。有些人甚至可能为了额外收入而摆弄数据结构。SMPC算法可以帮助防止这种作弊行为,而无需特殊的可信硬件。(3)合同谈判许多企业往往与一些重要的合作伙伴密切合作,但彼此不能完全信任。例如,汽车经销商与银行合作贷款,保险公司为资产提供担保。传统上,购买需要大量的文书工作,因为每一方都试图保护自己。SMPC减少繁文缛节,完成交易。(4)数据收集人们往往不愿意参与研究,因为他们不想透露私人信息。许多市场依赖准确的供需汇总数据。然而,收集这些信息可能很棘手,因为参与者不想分享他们的个人原始数据。安全算法可以帮助以保护隐私的方式收集这些信息。(5)自动化市场传统市场往往依赖中立的仲裁员角色。比特币区块链只是算法如何取代交易中间人的一个例子。