深入浅出之安全多方计算(MPC)
2023-04-0518:30
Reddio
2023-04-05 18:30
Reddio
2023-04-05 18:30
收藏文章
订阅专栏
安全多方计算(MPC/SMPC),有时也称为安全多方计算,是一种著名的密码学技术,旨在保护数字资产或通过密码学保护信息。今天,几种 MPC 理论和算法在各个领域得到应用以保护信息。类似地,在基于区块链的金融解决方案(DeFi)日益受到欢迎的情况下,MPC 技术的应用也因在保护加密钱包中的资金方面而备受关注。
简而言之,MPC 技术使得可以通过将“机密信息”分成多个部分来进行编程式的保护,这样没有单个参与者知道底层的“真相”。因此,没有单个参与者可以重构或泄漏机密信息。
在本文中,我们将详细了解安全多方计算的概念、工作原理和其众多应用。
什么是 Secure Multi-Party Computation?
多方计算是一种密码学技术,允许多个持有私密数据片段的参与方一起计算一个特定的结果。这个特定的结果通过组合它们的数据而得出,不会透露任何有关他们输入的性质、内容或任何其他与过程相关的机密信息。
简而言之,MPC 将持有信息片段的不同实体聚集在一起,当这些信息被组合在一起时,可以揭示一个机密、签署一条消息或批准一笔交易。值得注意的是,MPC 实现这一点的同时,不会透露任何有关每个人所持有信息的细节。
值得注意的是,在 MPC 中,分布在多个参与方之间的数据不代表机密信息,如果简单地将它们组合在一起,不会得到这个机密。相反,这些信息片段将作为输入参与所需的计算。每个有效的 MPC 协议必须满足两个特定的要求:
      • 如果参与方在计算过程中透露他们的机密信息或违反规则,MPC 协议将不允许不诚实的参与方强迫诚实的参与方透露他们的机密信息或影响结果的产生。
      • 没有人可以从协议的执行中推断出每个参与方的机密信息。这意味着计算的结果不会给持有者任何有关参与方所持有私密信息的提示。
MPC 作为一个概念,据说是在 20 世纪 80 年代诞生的,当时中国计算机科学家姚期智首次采用了双方计算并引入了安全多方计算。以下是 MPC 发展的时间线:
    • 1982-1986 年:为了解决著名的百万富翁问题,安德鲁·姚引入了两方计算,并将其适应于任何涉及两个参与方的计算。

    • 1987 年:奥德·戈尔德雷希(Oded Goldreich)、西尔维奥·米卡里(Silvio Micali)和阿维·威格德森(Avi Wigderson)发布了戈尔德雷希 - 米卡里 - 威格德森协议,将两方计算适应到多方格式。

    • 1990 年代:对 MPC 技术的更多研究取得了几个突破,其中一个是使计算能够在移动设备(即性能较弱的设备)上运行。

    • 2008 年:MPC 在一个密封出价的丹麦甜菜拍卖中首次大规模应用。

    • 2015 年:随着加密钱包的黑客攻击和盗窃增加,加密钱包提供商和保管人开始利用 MPC 保护私钥和数字资产安全。

    • 2019 年:MPC-CMP 作为第一个自动、一轮密钥刷新的 MPC 算法首次亮相。

MPC 是如何工作的?
为了了解 MPC 如何工作,让我们考虑一个著名的例子。
公司里有两名员工 Greg 和 Smith,持有类似的职位,他们正在吃午饭。然后,他们想知道自己是否挣同样的钱,或者是否有人被支付了比应得的更少的薪水。然而,他们不想透露自己的工资。那么,他们如何在不向对方透露秘密的情况下解决这个困境?
解决他们的问题的简单方法是向可信任的第三方(例如共同的朋友)披露他们的收入,由第三方根据收到的信息告诉他们是否挣同样的工资。然而,MPC 协议的目标是帮助他们在没有第三方参与的情况下弄清楚他们之间谁更有价值。
通过使用隐式转移,Greg 和 Smith 可以快速解决他们的困境。隐式转移方法是解释安全多方计算的一种非技术方法。在这种情况下,Greg 得到了四个锁着的建议信箱,并用特定的金额标记了每个信箱,这些金额可能代表他们的角色的小时工资。第 1 个信箱标记为 $40,第 2 个信箱标记为 $50,第 3 个信箱标记为 $60,第 4 个信箱标记为 $70。
假设 Greg 的小时工资为 $50,因此他只拿了 Box 2 的钥匙。Smith 的小时工资为 $60,他必须选择与他的小时工资相匹配的信箱。他在四张纸上分别写了“NO”和“YES”,这些涂鸦将放入每个信箱中,具有“YES”的将放入 Box-3 中,因为 Smith 的小时工资为 $60,而其他信箱都是“NO”。
当 Greg 打开 Box-2 时,他发现一个“NO”,表明 Smith 的小时工资不是 $50。现在 Greg 必须告诉 Smith 他们的小时工资不一样,尽管他们俩都不知道谁挣得更多或更少。他们的秘密是安全的,并且他们已经交换了信息而不会透露任何东西。请注意,这个比喻取决于双方的诚实。
安全多方计算将可用于计算特定结果的重要信息在多个参与方之间进行秘密分割,无需信任第三方。每个参与者只知道自己拥有的信息,并且在计算过程中不会透露任何秘密的部分。

我们再举一个与 MPC 实际实现方式类似的一个例子(如上图所示),假设 Alice、Bob 和 Cynthia 想知道他们每小时的平均工资,而不告诉彼此实际数额。Alice、Bob 和 Cynthia 各自知道他们的每小时工资,并将该金额分成四个数字,使它们相加等于每小时工资(步骤 1)。他们保留其中一个数字,然后将一个数字与另外两个人分享,并与值得信赖的第三方(顾问或外部专家)分享一个数字。分享这些个人数据点不会透露出 Alice、Bob 或 Cynthia 的实际每小时工资。现在,Alice、Bob 和 Cynthia 以及受信任的第三方每个人都有三个信息片段,他们各自计算平均值(步骤 2 和 3)。接下来,Alice、Bob 和 Cynthia 与受信任的第三方分享他们的平均值,受信任的第三方通过将自己的平均计算加到其他三个平均值中来编译信息(步骤 4)。这四个平均值的总和产生了最终结果,即 Alice、Bob 和 Cynthia 的每小时平均工资。在此过程结束时,已知每小时平均工资,但是 Alice、Bob 和 Cynthia 都没有学到彼此的每小时工资。

MPC 与 Multisig 的区

多重签名加密钱包与 MPC 门限签名方案的实现具有类似的目标:它们都将签名权限分散到多个参与方中。
区别在于,多重签名加密钱包由不同的私钥生成多个不同的区块链上的签名来保护,而 MPC 则依赖于在链下创建的单个签名。
使用 MPC 在链下签名交易具有巨大的优势:
      • 速度。链下签名交易可以更快地进行签名,因为它们不依赖于慢速底层区块链的交易。
      • 成本。在链下计算的签名不会产生网络费用。
      • 隐私。链下签名无法在公共账本上查看,这可以防止交易链被暴露,从而防止潜在攻击者了解敏感的签名方案和工作流程。
      • 兼容性。虽然多重签名加密钱包与特定区块链相关联,但 MPC 基于标准化的加密签名算法(ECDSA),可在 95%的区块链上实现。
      • 灵活性。链下分布式签名允许更复杂的治理方案,可以更轻松地配置以适应组织需求并遵守监管要求。
总体而言,MPC 在与 Multisig 技术相结合的其他加密保管形式中提供了许多独特的优势。
多方计算的应用
多方计算(MPC)已经有多年的发展历程,并且发现了几个应用场景和应用。早期的大规模应用记录于 2008 年在丹麦的一个密封出价甜菜拍卖会上。农民的出价是私密的,协议负责确定最高出价。最高出价的农民随后支付竞标日志上的第二高要求。密封的出价拍卖仍然很受欢迎。
有几种 MPC 方案的变体和修改,使其可以进一步应用。阈值签名方案和 Shamir 的秘密分享是 MPC 密码应用方法的两个著名例子。
MPC 的其他重要应用包括:
数据分析 
处理机密用户数据的大型公司,如医疗保健公司或金融机构,可以从匿名用户池中安全地收集数据,使用 MPC 进行计算、分析和获得数据洞见。这样,用户不会透露个人信息,这些组织可以分析数据以获得洞见,而不会暴露任何信息。
这种方法也可以应用于自动驾驶汽车、航运或卡车车队和飞机车队,接收者如汽车公司、城市规划者和服务提供商可以从信息中受益,而不必了解提供的任何详细信息。
基因测试 
MPC 还可以用于基因测试。患者可以私密、安全地访问其基因组资料,而不会透露任何关于其新陈代谢率、家族特征、遗传性疾病信息和其他数据的机密信息,他们不想共享。
多方计算区块链应用 
阈值多重签名(或多签)技术方案是多方计算的一个子领域,可以执行与区块链上的私钥类似的功能,包括公共地址生成和交易签名。
使用 MPC 区块链应用,加密钱包的私钥可以在多个参与方之间分割(分片),以便进行任何功能,必须涉及持有密钥共享的最少数量的人员。
如果组内的一些参与者变得不诚实,除非他们达到签署交易的门槛,否则他们将无法得逞。通常,这些参与者不相互认识。
MPC 钱包 
历史上有几种方法可以安全地保管私钥,这些方法包括热存储、冷存储或基于硬件的存储。
多方计算协议增强了私钥安全性,进而提高了数字钱包的安全性。大多数加密货币钱包使用私钥,通常存储在特定的“受信任”设备中。虽然这种方法主要依赖于设备的安全措施,但也存在单点故障。
使用 MPC,单个私钥被分裂成多个实体,攻击者需要同时攻击多个点,这使得攻击者更难以破坏数字钱包。
总结 
多方计算多年来一直在不断发展,并在当今密码学世界中仍是一个重要的突破。从密封投标拍卖到加密货币钱包,MPC 协议正在各种应用中发挥作用。
然而,从区块链的角度来看,利用 MPC 保护数字钱包的安全是一个关键的、立即可行的应用,有多方面的利益相关者正在投入。随着越来越多的钱包提供商开始采用 MPC 协议来提高钱包安全性,种子短语时代可能会结束。目前,已有多家钱包提供商开始采用 MPC 技术,以提供更好的保护和改进的用户体验。
Reddio 也在与行业内 MPC 钱包领先如 ForDefi 等的公司合作,推出基于 StarkEx/StarkNet 的 MPC 钱包联合解决方案,我们很快将看到这类技术结合 Reddio 的以太坊扩容方案在实际应用中得到大规模使用,就像公钥身份验证一样。
请关注 Reddio 公众号,我们持续发布 MPC、钱包、Web3 基础设施等相关前沿信息。

这里有一段来自 Safe-DEED 的有关 MPC 的解释视频,希望能进一步帮助大家理解 MPC!

参考文章:
  1. https://blog.pantherprotocol.io/a-deep-dive-into-secure-multi-party-computation-mpc/
  2. https://www.qredo.com/blog/what-is-multi-party-computation-mpc?ref=blog.pantherprotocol.io
  3. https://bipartisanpolicy.org/blog/secure-multi-party-computation/?ref=blog.pantherprotocol.io

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

专栏文章
查看更多
数据请求中

推荐专栏

数据请求中

一起「遇见」未来

DOWNLOAD FORESIGHT NEWS APP

Download QR Code