MPC 钱包详解
什么是 MPC 钱包,多方计算如何将私钥拆分为多个分片,它与助记词和多签相比有何不同,以及你需要核查的风险。
MPC 钱包是一种加密货币钱包,它利用多方计算(MPC,multi-party computation)将私钥的控制权拆分为多个“分片”,分别存放在不同的地方,因此任何单一设备或参与方都不会持有完整的私钥;当足够多的分片协同工作时,交易才会被签名。其目的是消除传统助记词带来的单点故障。
MPC 钱包已在机构中流行起来,也受到一些消费级应用的青睐,因为它们不想让新手抄写 12 个或 24 个单词。MPC 钱包可能更方便,在某些方面也更安全——但也带来了新的信任问题。本指南将解释它们的运作方式,以及使用前需要核查的事项。
用简单的话解释 MPC 的原理
多方计算是密码学的一个分支,它让多个参与方在不泄露各自私有输入的情况下共同计算出一个结果。应用到钱包上:
- 1密钥生成。不是先生成一把私钥再拆分,而是由各参与方共同生成分片。在许多方案中,完整的私钥在任何时刻都不会出现在同一个地方。
- 2门限。钱包会设定类似“3 选 2”的规则:任意两个分片即可签名,但单个分片无法签名。
- 3签名。当你发送交易时,持有分片的设备会运行一个协议,生成有效签名。每个分片都留在原处。
- 4链上结果。区块链看到的只是来自普通地址的普通签名,并不知道使用了 MPC。
一种常见的消费级配置是三个分片:一个在你的手机上,一个在加密的云端或邮箱备份中,一个在服务商的服务器上。
MPC、助记词与多签对比
| 特性 | 助记词钱包 | 多签钱包 | MPC 钱包 |
|---|---|---|---|
| 单点故障 | 有,即助记词 | 无 | 无 |
| 签名方式 | 一把密钥签名 | 多把密钥签名,在链上校验 | 分片共同生成一个签名 |
| 链上可见性 | 普通地址 | 可见的多签合约或脚本 | 普通地址 |
| 支持的链 | 广泛 | 取决于各条链对多签的支持 | 广泛,前提是服务商支持该链 |
| 透明度 | 简单且标准 | 规则可在链上验证 | 取决于服务商的软件 |
| 典型用户 | 大多数个人用户 | 团队、DAO、资金库 | 机构、基于应用的消费级钱包 |
我们关于用于共同资金的多签钱包和智能合约钱包的指南深入介绍了其他方案。
MPC 钱包的优势
- 没有可被窃取的单一秘密。即使小偷拿到了你的手机,或钓鱼者骗你泄露了一份备份,也仍然无法单独签名。
- 上手更容易。无需抄写助记词,从而避免了新手常犯的错误。
- 策略灵活。机构可以要求多人或多台设备审批,在某些设计中还能在不把资金转到新地址的情况下修改规则。
- 密钥轮换。有些方案可以在保持同一地址的同时刷新分片,让以前被盗的分片失效。
- 不依赖特定链。由于结果是普通签名,MPC 可以在没有原生多签功能的链上运行。
风险与权衡
MPC 消除了一些风险,也带来了另一些风险:
- 依赖服务商。如果服务商持有必需的分片,而它下线、遭到黑客攻击或倒闭,你可能就无法签名。请确认是否存在独立的恢复途径。
- 代码不透明。MPC 协议十分复杂,安全研究人员曾在一些实现中发现漏洞。优先选择公开审计报告和开放文档的服务商。
- 备份安全。存放在云账户中的分片,安全程度取决于这些账户本身。请用强密码和双重身份验证保护它们。
- 可迁移性。你可能无法轻松地把密钥转移到其他钱包应用。有些钱包支持导出密钥,很多则不支持。
- 托管关系模糊。即使服务商实际上能够冻结或恢复你的账户,营销宣传中也可能自称“自托管”。
使用 MPC 钱包前要问的问题
- 1一共有多少个分片,每个分片由谁持有?
- 2如果服务商消失了,我能否在没有它的情况下签名?
- 3如果我丢失了设备,恢复流程是怎样的?服务商能否在没有我参与的情况下恢复我的账户?
- 4我能否导出完整的私钥或助记词?
- 5该实现是否经过独立审计,审计报告是否公开?
- 6支持哪些链和代币?不受支持的资产被发送到我的地址后会怎样?
如果回答含糊其辞,就把这个钱包视为部分托管,并据此控制持仓规模。我们关于托管钱包与非托管钱包的解读可以帮助你理清这一选择。
MPC 钱包适合哪些人
- 想要应用的便利性、又担心弄丢助记词的新手,前提是他们了解服务商所扮演的角色。
- 需要多人审批策略的团队和企业。
- 希望获得统一钱包体验的活跃于多条链的用户。
想要最大程度独立于任何公司的人,可能仍然更倾向于使用妥善保管助记词的硬件钱包,或完全由自己掌控的多签钱包。相关阅读:软件钱包详解。如需深入了解,请参阅多签与 MPC 钱包对比。
许多人采取的务实做法是:先从小额开始,在备用设备上测试发送、接收和恢复,然后再转入更多资金。我们的文章加密货币持有者的物理安全对此有进一步阐述。
总结
MPC 钱包把签名权分散到多个密钥分片上,因此任何单次丢失或被盗都不会让你的资金被一扫而空。与单一助记词相比,这是实实在在的安全提升,但往往也增加了对服务商和复杂软件的依赖。在托付大额资金之前,请弄清楚谁持有这些分片,亲自测试恢复流程,并确认即使公司消失,你也能把资产转出来。
常见问题
MPC 钱包有助记词吗?
很多没有,至少没有传统意义上的助记词。密钥不是以一组助记词的形式存在,而是以多个分片的形式存放在不同的地方,例如你的手机、云端备份和服务商的服务器。有些 MPC 钱包允许你导出完整的密钥或助记词;存入资金之前请先确认这一点。
MPC 钱包是托管钱包吗?
这取决于具体设置。如果你掌握的分片足以在没有服务商的情况下完成签名,它就更接近自托管。如果服务商持有一个始终必需的分片,或者能够自行恢复你的账户,那你就是在依赖这家公司。请阅读相关文档,了解谁持有哪些分片,以及服务商消失后会发生什么。
MPC 和多签有什么区别?
多签使用多把独立的密钥,并通过智能合约或脚本在链上校验多个签名。MPC 则由在链下组合的密钥分片生成一个看起来很普通的签名。多签在链上是透明的,但依赖具体的链;MPC 可在大多数链上使用,但其安全性取决于你难以审查的软件。
如果我丢了装有 MPC 钱包的手机,会怎样?
这取决于恢复机制的设计。通常你会用剩下的分片来恢复,例如云端或邮箱备份再加上服务商的分片。在存放大额资金之前,先设置并测试恢复流程,并用强密码和双重身份验证保护存放备份分片的账户。
