什么是 Secure Multiparty Computation (MPC)?
Secure Multiparty Computation 是一种让多方在不泄露各自输入的情况下共同计算结果的方法。每个人都参与,但没有人能偷看他人的数据,最终安全地得出结果。可以把它想象成朋友们分摊晚餐账单,应用告诉你应付金额,但没人看到你的点单总额。
有人认为 MPC “比单一密钥慢并且不安全”。并非如此。它通过将信任分散到多人或多个设备上,消除了单一守护者的风险,而且现代 MPC 在实际用于钱包和交易所时已经足够快速。
Secure Multiparty Computation (MPC) 如何工作
简短示例。金库需要签名来转移资金。几位团队成员各自持有秘密的一部分。他们运行一个短协议,链上生成一个有效签名。关键是:他们从未重构出一个完整的 私钥。
- 邀请:有人建立小组,设置所需的批准人数,并添加设备。
- 分割:将秘密拆分成若干份并分发,这样只有满足阈值的份额才能批准。
- 计算:当交易需要批准时,各方进行短轮通信以产生部分签名。
- 验证:系统检查部分签名是否有效并确认为来自正确的人或设备。
- 签名:各部分签名合成一个链接受的标准签名,且没有任何单一设备看到完整秘密。
这就是要点:在不暴露秘密的情况下实现控制。
为什么 Secure Multiparty Computation (MPC) 很重要
那你能从中获得什么?
- 好处:减少单一守护者失效和助记词泄露的案例,同时保持自我托管的感觉。
- 视角:符合当前的安全要求:分担责任、缩小潜在影响范围,并保持可恢复性。
- 相关性:你会在钱包、交易所和 DAO 中看到 MPC。它也可以与隐私层结合,实现 私密交易,同时不牺牲标准签名。
在测试 Secure Multiparty Computation (MPC) 钱包时,请把份额放在不同的设备和网络上,设置合理的阈值,并用少量资金进行几次演练。你希望批准流程变得平常无趣。
Secure Multiparty Computation (MPC) 的主要特征
它的突出点:
- 保密性:没有任何单一方能看到完整秘密,但群体仍能产出有效结果。
- 阈值机制:可以设置任意组合,如二选三或三选五以实现灵活的批准规则。
- 弹性:即便丢失一个设备,只要仍能达到阈值,就不会被锁定。
- 便携性:最终输出是链已接受的标准签名。
- 扩展性:效率很重要。参见 可扩展性,了解批处理和安全执行环境如何保持低延迟。
- 策略:可以添加规则,如支出上限、时间锁或大额操作的额外批准。
变体
你可能会遇到几种 MPC 方案:
- TSS:阈值签名方案,从多个部分产生一个普通签名。
- Shamir:秘密分享,将秘密拆成多份并设置重建阈值。
- Garbled:基于电路的 MPC,用于通用私有计算,不仅限于签名。
- 混合:MPC 与硬件执行环境或安全元件结合以增强防护。
- 网络型:多组织部署,份额由不同团队或托管方保管。
Secure Multiparty Computation (MPC) 可以降低单一守护者风险,但不会让区块链活动隐身。如果你在运行服务,请将批准规则与审计需求和 监管规定 对齐。
示例
某交易所指定三个独立团队审批提现;任意两组通过后,MPC 生成有效签名,交易即可完成。
趣闻
MPC 起源于八十年代 Andrew Yao 提出的百万富翁问题,这是一个有趣的思想实验,讨论两人如何在不透露各自净资产的前提下判断谁更富有。
总结
结论:分散信任,保留数学保障,不要让单一设备成为单点故障。
