安全多方计算(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 对于需要处理或分析敏感信息的金融交易、医学研究、分布式投票、私人投标和拍卖以及 AI/ML 学习过程非常重要。它使用户能够在保护其私人信息的同时,仍然参与共享系统。
MPC 的发展可以追溯到 1970 年代后期,当时引入了用于特定任务的专用协议。然后,在 1982 年,姚期智正式引入了安全双人计算,后来将其扩展到多方计算。自 2000 年代后期以来,重点已转移到提高这些协议在投票、签名、拍卖等方面的效率和实用性。在 2010 年代后期,数字资产托管人开始使用 MPC 来保护数字资产。为了进一步推广 MPC 技术,专门从事安全多方计算的公司于 2020 年成立了 MPC 联盟。
在典型的 SMPC 协议中,每一方都持有一份私有数据,并希望计算一个需要所有各方输入的函数。通过该协议,各方使用隐私保护技术(如加密或掩码共享)交换输入数据,然后共同计算该函数。
计算平均时薪的 MPC 示例 (来源)
假设三个同事 Alice、Bob 和 Cynthia 想知道他们的平均时薪,但又不想与对方分享自己的薪水。首先,他们将工资分成四份,加起来就是他们的时薪。接下来,他们保留其中的一个数字,并将其中的一个数字与另一位同事以及受信任的第三方分享。现在,每一方计算他们收到的数字的平均值。最后,这些平均值被分享并相加,以提供平均时薪。虽然他们都知道平均值,但他们不知道彼此的个人收入。
虽然此示例使用相对简单的加法秘密共享技术,但你可以在此处 探索更高级的数学示例。
双人计算是多人计算的一个子集,仅限于两名参与者。姚期智引入了双人计算来解决着名的“百万富翁问题”,即两位百万富翁想知道谁更富有,而无需透露他们的实际财富。后来,由于 Goldreich-Micali-Wigderson 协议,双人计算被扩展为多人格式。
SMPC 为个人、开发人员、组织和研究小组提供了一系列好处:
MPC 使多个托管人可以使用私钥的一部分来签署交易 (来源)
在与 MPC 兼容的区块链环境中,Web3 钱包 的私钥可以在多个参与者之间划分(分片)。为了执行任何功能,持有密钥分片的最小数量的参与者必须参与。这增强了钱包操作的安全性和控制力。
例如,托管人使用基于 MPC 的 Web3 钱包来保护数字资产和签署交易。这些钱包将私钥分成多个部分,然后在他们想要签署交易时使用 MPC。
多重签名钱包需要多个私钥才能签署交易 (来源)
与多重签名流程类似,MPC 可以在使多个实体能够共同保护代币化资产方面发挥关键作用。虽然多重签名钱包依赖于多个私钥来签署交易,但 MPC 钱包将单个密钥分成多个较小的部分,并将它们分发给每个托管人。
像以太坊这样的公共区块链的开放设计意味着 智能合约 是公开的,任何人都可以阅读,并且它们固有的隔离性会限制功能。虽然可以在中心化服务器中离线计算数据,但这会破坏区块链提供的安全保证。通过以高度安全和确定性的方式离线计算数据,Web3 协议可以访问提供高级功能和机密性的计算。
- 原文链接: chain.link/education-hub...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!