一、引言
多方计算(MPC,Multi-Party Computation)是一种密码学技术,允许多个方在不泄露各自私有数据的情况下共同计算某个函数。MPC 在区块链钱包中的应用,特别是托管系统,旨在提高安全性和隐私性。
二、MPC 托管系统的基本概念
- 多方计算(MPC):MPC 是一种分布式计算协议,允许参与方在不泄露各自私有数据的前提下,共同计算某个函数的结果。
- 托管系统:在区块链钱包中,托管系统是指管理和保护用户私钥的系统。MPC 技术用于分散私钥管理,防止单点故障和攻击。
三、MPC 托管系统的工作原理
1.私钥分片
在 MPC 托管系统中,私钥不会以完整形式存储在任何一个单独的节点上。相反,私钥会被分成多个片段(称为“私钥分片”),这些片段分别存储在不同的节点上。
2.分布式密钥生成(DKG)
分布式密钥生成(DKG,Distributed Key Generation)是 MPC 托管系统的核心技术。DKG 协议允许多个参与方在没有任何一方知道完整私钥的情况下,协作生成一个共享的私钥。
3.分布式签名
分布式签名是指在不重构完整私钥的情况下,由多个参与方共同生成数字签名。具体步骤如下:
- 签名请求:用户发起交易请求,托管系统接收到请求后,通知所有持有私钥分片的节点。
- 局部签名生成:每个节点使用自己的私钥分片计算局部签名。
- 签名聚合:所有局部签名汇总并计算出最终的数字签名,完成交易签名过程。
4.密钥恢复
在某些情况下,可能需要恢复完整私钥,例如在系统迁移或灾难恢复时。MPC 托管系统通过预先定义的恢复协议,在满足特定条件下,允许参与方协作恢复完整私钥。
四、详细步骤
1.用户发起交易请求:
用户想要进行一笔交易,发出请求。
2.通知所有持有私钥分片的节点:
托管系统将交易请求传达给所有持有私钥分片的节点。
3.每个节点生成局部签名:
每个节点使用自己持有的私钥分片对交易进行局部签名。
4.汇总所有局部签名生成完整签名:
托管系统将所有节点生成的局部签名汇总,计算出最终的完整签名。
5.交易完成签名:
最终的完整签名被用于交易,交易完成。