一句话定义
安全多方计算(Secure Multi-Party Computation, MPC)是一类密码学技术:多个参与方各自持有不愿公开的数据,在不泄露这些数据的前提下,共同算出一个约定好的结果。除了这个结果本身,谁也无法多知道别人的输入。
打个生活化的比方
三个人想知道平均工资,但谁都不愿报出自己的数字。
做法是:每人把自己的工资拆成三份随机碎片,自己留一份,另外两份分给其他两人。单独看任何一份碎片,都是纯随机噪声,毫无信息量;但三份碎片相加,恰好还原成原始工资。
接着,三人各自把手上的碎片相加,公布三个"碎片和"。三个碎片和再相加、除以三,就得到平均工资。全程没有任何人的真实工资被说出来。
这就是秘密分享(Secret Sharing)的基本思路,也是 MPC 最直观的入口。实际协议还会用到混淆电路(Garbled Circuit)、不经意传输(Oblivious Transfer)、同态加密(Homomorphic Encryption)等工具,路线不同,目标一致。
MPC 给出两个硬保证:输入隐私(学不到别人的原始数据)和正确性(结果与明文计算完全一致)。代价是通信量和计算开销远高于直接算明文——参与方越多、逻辑越复杂,这个代价涨得越快。
和相邻概念的区别
隐私计算常说的"三件套",就是 MPC、联邦学习(AI 词典:Federated Learning">Federated Learning)和可信执行环境(Trusted Execution Environment, TEE):
| 维度 | MPC | 联邦学习 | TEE |
|---|---|---|---|
| 隐私靠什么 | 密码学协议 | 只传梯度,仍可能被反推 | 硬件隔离,需信任芯片厂商 |
| 数据出手吗 | 不以明文出手 | 模型更新出手 | 明文进入可信区 |
| 开销 | 通信量大,偏慢 | 中等 | 接近原生速度 |
| 信任假设 | 尽量不信任任何一方 | 半信任 | 必须信任硬件 |
一句话区分:联邦学习是"数据不动模型动",TEE 是"锁进保险箱里算",MPC 是"靠数学保证谁都看不见"。工程上三者经常组合使用。
对从业者和普通人的意义
对做系统的人:MPC 适合"数据不能出域、但必须联合计算"的场景,比如银行之间联合查黑名单、医疗机构联合统计病例、用隐私集合求交(Private Set Intersection, PSI)做广告归因和人群圈选。选型前先算清参与方数量、数据规模和延迟预算——MPC 的通信轮数对跨地域网络延迟非常敏感,这点比算力更常成为瓶颈。
对普通人:你的信息可以在不交出去的情况下被"用到"。两家银行能判断你是否同时出现在各自的风险名单上,却看不到你在对方那里的账户细节;App 和广告平台能算出用户重合度,而彼此的名单都不外流。
需要提醒的是,各框架的具体能力边界和性能表现请以官方文档为准。
