当前位置: 首页 > news >正文

什么是MPC(多方安全计算,Multi-Party Computation)

MPC(多方安全计算,Multi-Party Computation)是一种密码学技术,允许多个参与方在不泄露各自私密输入数据的前提下,共同完成一个计算,并得到正确的计算结果


一、什么是 MPC?

定义:

**多方安全计算(MPC)是一种加密协议,允许多个参与者在输入保持私密的情况下,**安全地进行联合计算,并仅暴露计算结果,而不暴露任何中间信息或原始数据。


二、通俗理解:一群人合算工资平均值,但不想互相知道对方工资

设想有 3 个人想知道他们的平均工资,但每个人不想暴露自己的工资数额。

  • 使用 MPC,他们可以各自将工资进行“加密切片”,发送到多个计算方;
  • 每个计算方只处理自己的“片段”,得不到完整数据;
  • 最终协同计算出平均值,但没有任何一方知道原始工资是多少

这就是 MPC —— 你参与了计算,但不知道别人输入了什么。


三、MPC 的核心目标

目标含义
隐私保护输入数据对其他参与者完全保密
正确性保证输出结果正确可信,即使有人作恶
抗欺诈可以检测/惩罚故意提交错误信息者
分布式信任不依赖中心方,避免单点泄露风险

四、MPC 的常见技术实现方式

技术方法说明
秘密共享(Secret Sharing)把敏感数据切分成若干“碎片”,分发给多个参与方,任何一个都无法还原原始值
同态加密(Homomorphic Encryption)数据在加密状态下完成计算
加法掩码/盲化(Additive Masking)用随机值“掩盖”原始数据,多个随机值抵消后还原真实结果
Yao’s Garbled Circuits把整个计算转化成加密逻辑电路,参与方协同完成
Oblivious Transfer(OT)用于私密数据的传输机制,不泄露传输内容或意图

五、MPC 与零知识证明(ZKP)的区别

维度MPCZKP
目的一起算结果,不泄露彼此数据我知道答案,不告诉你,但能证明我知道
参与者多方都参与计算通常是 1 个证明者 + 1 个验证者
应用类型联合建模、联合分析验证、隐私支付、链上证明
使用场景隐私计算(医疗、金融)、联合 KYC匿名支付、Rollup 扩容、身份证明

六、MPC 的区块链与隐私应用场景

场景示例
多签钱包MPC 替代传统私钥,3 个设备计算出签名,任何单一节点都无法控制资产(如 Fireblocks)
链上隐私交易多方计算隐私数据,生成中间加密状态参与合约或交易
联合风控 / KYC银行之间联合判断客户风险,但彼此不泄露用户数据
跨链签名 / DeFi 钱包在多个链间实现分布式签名,如 Threshold、Lit Protocol
医疗数据建模医院之间共享病人特征,联合训练 AI 模型,保护患者隐私

七、MPC 的优缺点

优点描述
高隐私数据始终在密文中处理,无信息泄露
抗单点风险数据片段分散存储/计算,防止中心泄露
安全可信即使部分参与者作恶也能容错(通过门限设定)
缺点描述
计算复杂度高通信轮次多,效率低于传统计算
部署门槛高需协调多个节点,环境复杂
不适合链上运行通信成本高,适合链下协作计算后上链

八、主流 MPC 项目与工具

项目/平台用途
FireblocksMPC 钱包服务商,面向机构
ZenGoMPC 钱包应用,用户无需私钥
MPyCPython 中实现 MPC 的教学/研究工具
SEAL微软开发的同态加密工具
Partisia Blockchain以 MPC 为核心的隐私区块链
Lit Protocol去中心化 MPC 签名与访问控制平台
Nucypher加密代理,支持访问控制与 MPC 组合使用

九、小结

项目内容
名称多方安全计算(MPC)
本质多方参与、不泄露数据的联合计算协议
核心机制秘密共享、同态加密、盲化、混淆电路等
典型应用MPC 钱包、跨链签名、隐私数据分析、联合建模
与 ZKP 区别MPC 侧重联合计算,ZKP 侧重可信证明

相关文章:

  • word换行居中以后 前面的下划线不显示
  • Python商务数据分析——CHAPTER4-Pandas 数据分析全攻略
  • Qt事件系统
  • 浅谈AI大模型-MCP
  • 机器学习(一)Kaggle泰坦尼克乘客生存预测之线性模型
  • Kafka的下载安装
  • Matlab自学笔记六十一:快速上手解方程
  • 用户行为序列建模(篇九)-【阿里】BERT4Rec
  • 在 Spring Boot 中使用 MyBatis-Plus 的详细教程
  • 实战篇----利用 LangChain 和 BERT 用于命名实体识别-----完整代码
  • Java爬虫实战指南:按关键字搜索京东商品
  • rabbitmq springboot 有哪些配置参数
  • Leetcode 3482. 分析组织层级
  • 状态模式 - Flutter中的状态变身术,让对象随“状态“自由切换行为!
  • 对于“随机种子”的作用的理解
  • 71. 简化路径 —day94
  • 【网络】:DNS协议、ICMP协议、NAT技术
  • Cursor1.1.6安装c++插件
  • .netcore 一个mvc到静态html实现
  • 【数据分析】Python+Tushare实现均线金叉死叉交易策略回测