MPC
1、广义上讲,多方计算(MPC)使一组互不信任的各方能够联合计算输入函数,同时保护这些输入的隐私。在密码学中,这对于保管用于解密数据或生成数字签名的私钥特别有用。
MPC钱包通过使用门限签名方案(TSS)消除了单点故障。在这个范式下,我们创建并分发私钥分片,这样就没有哪个人或机器能够完全控制私钥——这个过程被称为分布式密钥生成(DKG)。然后,我们可以通过在不暴露各方密钥分片的情况下合并密钥分片,从而共同生成公钥。
想要对消息和交易进行签名,各方要将其密钥分片连同公共输入(要签名的消息)一起输入,生成数字签名。此后,任何知道公钥的人(即验证者节点)都应能够验证签名。由于各密钥是组合在一起的,并且签名是在链下生成的,因此从MPC钱包生成的交易与传统的私钥钱包的交易没有什么区别。
这为MPC钱包用户提供了一定程度的隐私保障。对于那些希望将其签名方案和签名者活动置于公众视线之外的组织来说,这个功能是开箱即用的,因为一系列过程是在链下进行的。这样,组织可以保留关于参与签名者的内部日志,而不会对外公开。
私钥轮换是另一种MPC协议,它输入各密钥分片,然后输出一组新的密钥分片。旧的密钥分片可以被删除并替换为新的密钥分片,新的密钥分片可以以相同的方式使用,而无需更改相应的公钥和地址。
2、**MPC钱包的优点**
- 无单点故障。一个完整的私钥在任何时候都不会集中在一台设备上。也没有助记词。
- 可调整的签名方案。授权的法定人数可以随着个人和组织需求的变化而变化,同时不改变地址。组织可以动态调整签名方案,而不必每次都通知交易对手一个新的地址。
- 细粒度访问控制。机构用户可以为一个策略分配无限数量的交易审批者,并委派能够准确反映组织角色和安全措施(时间锁、MFA多因素验证、欺诈监控)的权限。个人可以通过MPC钱包即服务(wallet-as-a-service)选择半托管方式,由第三方持有其中部分密钥分片。
- 更低的交易成本和密钥恢复成本。MPC钱包在区块链上表示为单个地址,其gas费与常规私钥地址相同。这对于每天进行数百笔交易的用户(例如在B2C用例中)来说非常重要。丢失的密钥分片也可以在链下恢复。
- 区块链无关性。密钥生成和签名依赖于链下纯密码学。与新的区块链兼容很容易,因为钱包只需要能够使用该链可识别的算法生成签名就可以了。
3、**MPC钱包的缺点**
- 链下问责制。签名授权策略和授权法定人数是在链下管理的,因此这些自定义规则仍然容易出现中心化故障。密钥分片仍然是加密秘密,应该拥有与完整私钥相同的处理方式。链下规则和签名阻碍了透明度,需要更严格的运营审计。
- 与多数用户采用的大多数传统钱包不兼容(没有助记词,没有完整的私钥存储在单个设备上)。MPC算法并没有标准化,也没有得到机构级安全设备(如iPhone SEP和HSMs)的原生支持。
- 大多是单独定制产品。许多MPC库和解决方案都不是开源的,因此,如果出现问题,生态系统很难对它们进行独立审计和集成,很难进行事故分析。