安全多方计算 - Chainlink

  • Chainlink
  • 发布于 2024-08-15 13:12
  • 阅读 56

安全多方计算(SMPC/MPC)是一种密码学方法,允许多方在不泄露各自私有数据的情况下,共同计算一个函数并获得公开结果。文章介绍了SMPC的基本概念、工作原理、历史、优势,以及在Web3领域中的应用,例如MPC钱包、隐私保护计算等。

定义

安全多方计算(SMPC 或 MPC)允许多方使用私有数据联合计算一个函数,从而实现精确的“黑盒”计算,同时保证个人输入的机密性。

安全多方计算(SMPC),有时被称为安全计算、多方计算(MPC)或隐私保护计算,是一种变革性的密码学方法。它允许多方使用私有输入来计算一个函数,并查看公共输出,而无需向其他方泄露他们的输入。从医学研究到人工智能到 Web3,SMPC 正在加强数据隐私并促进协作。

什么是安全多方计算?

基础解释

SMPC 实现了“黑盒”功能,许多人可以使用他们的私有信息一起进行计算。即使每个人都能看到结果,他们的数据也会被保密。

中级解释

SMPC 允许多方使用私有数据联合计算一个函数,在生成正确输出的同时,保证个人输入的机密性。它使用加密和秘密共享来确保计算过程中的隐私和安全。

高级解释

SMPC 使用密码学原语,如秘密共享(例如 Shamir)、同态加密(例如 Paillier, ElGamal)和零知识证明(例如,zk-SNARKs, zk-STARKs),以使给定数量 (n) 的参与者(每个参与者都有私有数据 (d1, d2, …, dn))能够计算该数据上的公共函数 F(d1, d2, …, dn),而任何参与者都无法了解其他人的输入信息。

SMPC 协议必须确保:

  • 隐私性: 任何一方都不能看到或推断出任何其他方的私有输入。
  • 准确性: 偏离协议指令的各方不能强迫诚实的参与者输出不正确的结果。

为什么 SMPC 很重要?

SMPC 对于需要处理或分析敏感信息的金融交易、医学研究、分布式投票、私人投标和拍卖以及 AI/ML 学习过程非常重要。它使用户能够在保护其私人信息的同时,仍然参与共享系统。

MPC 的历史

MPC 的发展可以追溯到 1970 年代后期,当时引入了用于特定任务的专用协议。然后,在 1982 年,姚期智正式引入了安全双人计算,后来将其扩展到多方计算。自 2000 年代后期以来,重点已转移到提高这些协议在投票、签名、拍卖等方面的效率和实用性。在 2010 年代后期,数字资产托管人开始使用 MPC 来保护数字资产。为了进一步推广 MPC 技术,专门从事安全多方计算的公司于 2020 年成立了 MPC 联盟

安全多方计算如何工作?

在典型的 SMPC 协议中,每一方都持有一份私有数据,并希望计算一个需要所有各方输入的函数。通过该协议,各方使用隐私保护技术(如加密或掩码共享)交换输入数据,然后共同计算该函数。

MPC 示例

使用加法秘密共享的 MPC 示例。

计算平均时薪的 MPC 示例 (来源)

假设三个同事 Alice、Bob 和 Cynthia 想知道他们的平均时薪,但又不想与对方分享自己的薪水。首先,他们将工资分成四份,加起来就是他们的时薪。接下来,他们保留其中的一个数字,并将其中的一个数字与另一位同事以及受信任的第三方分享。现在,每一方计算他们收到的数字的平均值。最后,这些平均值被分享并相加,以提供平均时薪。虽然他们都知道平均值,但他们不知道彼此的个人收入。

虽然此示例使用相对简单的加法秘密共享技术,但你可以在此处 探索更高级的数学示例。

双人计算 vs. 多人计算

双人计算是多人计算的一个子集,仅限于两名参与者。姚期智引入了双人计算来解决着名的“百万富翁问题”,即两位百万富翁想知道谁更富有,而无需透露他们的实际财富。后来,由于 Goldreich-Micali-Wigderson 协议,双人计算被扩展为多人格式。

安全多方计算的优势

SMPC 为个人、开发人员、组织和研究小组提供了一系列好处:

  • 增强的安全性: 通过在整个计算过程中保持数据机密性,更好地防止数据泄露。
  • 数据隐私: 用户可以对其数据保密,同时允许第三方在他们的应用程序、研究、投票机制等中使用它。
  • 法规遵从性: 组织可以通过在不暴露敏感数据的情况下处理敏感数据来满足数据保护法规(例如,GDPR、HIPAA),从而降低不合规的风险。
  • 协作: 研究人员和机构可以安全地聚合和分析来自多个来源的数据,而不会损害隐私,从而促进跨机构的协作和知识共享。
  • 高度准确: 结果满足高价值用例所需的准确度水平。
  • 量子安全: 分解数据并将其分发给参与者使其能够抵御量子攻击。
  • 高级功能: 应用程序可以为用户提供高级功能,而不会影响安全性。

Web3 的 SMPC

基于 MPC 的 Web3 钱包

基于 MPC 的钱包如何签署交易的示意图。

MPC 使多个托管人可以使用私钥的一部分来签署交易 (来源)

在与 MPC 兼容的区块链环境中,Web3 钱包 的私钥可以在多个参与者之间划分(分片)。为了执行任何功能,持有密钥分片的最小数量的参与者必须参与。这增强了钱包操作的安全性和控制力。

例如,托管人使用基于 MPC 的 Web3 钱包来保护数字资产和签署交易。这些钱包将私钥分成多个部分,然后在他们想要签署交易时使用 MPC。

MPC vs. 多重签名钱包

多重签名钱包如何签署交易的示意图。

多重签名钱包需要多个私钥才能签署交易 (来源)

与多重签名流程类似,MPC 可以在使多个实体能够共同保护代币化资产方面发挥关键作用。虽然多重签名钱包依赖于多个私钥来签署交易,但 MPC 钱包将单个密钥分成多个较小的部分,并将它们分发给每个托管人。

隐私保护计算

像以太坊这样的公共区块链的开放设计意味着 智能合约 是公开的,任何人都可以阅读,并且它们固有的隔离性会限制功能。虽然可以在中心化服务器中离线计算数据,但这会破坏区块链提供的安全保证。通过以高度安全和确定性的方式离线计算数据,Web3 协议可以访问提供高级功能和机密性的计算。

什么是知识证明?

同态加密

什么是 Schnorr 签名?

零知识证明:应用和用例

零知识区块链项目概览

什么是 Zk-Rollups(零知识 Rollups)?

什么是 zkEVM?

什么是零知识加密?

了解 zk-SNARK 和 zk-STARKS 之间的区别

什么是零知识证明?

同态加密

零知识区块链项目概览

安全多方计算

了解 zk-SNARK 和 zk-STARKS 之间的区别

什么是 Zk-Rollups(零知识 Rollups)?

什么是知识证明?

什么是零知识加密?

什么是 Schnorr 签名?

什么是 zkEVM?

零知识证明:应用和用例

  • 原文链接: chain.link/education-hub...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Chainlink
Chainlink
顶尖的智能合约去中心化预言机网络解决方案 https://chain.link/