ED25519 签名可以通过 多方计算MPC Multi-Party Computation 实现分布式签名
多方计算 签名就是每个节点都没有完整私钥,例如2/3一起运算出签名再组合聚合签名,没有发生完整私钥的出现
多重签名的机制:每个签名者持有完整的私钥,当发起交易时,系统会要求达到设定的签名数量(如 2/3)才能执行交易。这种方式的安全性在于私钥分散在多个实体上,防止单点失败或单一实体篡改。
多签应用场景:Solana 的多签 signer 可以传入一个数组 用于需要多个参与方共同管理资产的场景,比如 DAO 资金管理或联合控制账户。相比 MPC,Multisig 的执行效率通常更高,但需要显式收集多个完整的签名。
门限秘密共享 也是每个节点一个私钥分片,然后n/m组合出私钥再签名
MPC可能会用 门限、bls聚合签名 等算法
- 多签和MPC的共同点 都可能用到门限算法或者Schnorr签名
- 多签相比于MPC的缺点: 生成多签地址的过程在链上开源 别人知道签名参与方的地址和n/m 需要多对私钥且不能保护签名方地址隐私
BTC的多签可以链下发生,链上只知道是个多签地址不暴露签名方
MPC 更注重隐私有ZK等过程每个节点之间通信共识,多签可能 1把签名1发给2,2签名完之后把签名1+2给3...
在比特币闪电网络中,交易双方生成的多签地址或聚合公钥地址,并不是双方都能知道完整的多签私钥。
闪电网络的核心机制依赖于双方共同创建的通道,在这个过程中,双方会通过彼此的公钥生成一个多签地址(通常是 2-of-2 多签)。在这个地址上,资金的移动需要双方的共同签名。然而,双方并不会共享私钥,而是通过各自的私钥进行签名。
-
双方的公钥生成多签地址:双方各自生成一对公私钥,并通过协商生成一个多签公钥地址(通常是通过聚合双方的公钥)。
-
资金锁定:双方将各自的一部分比特币资金锁定在这个多签地址中。为了花费这些资金,必须同时获得双方的签名。
-
交易的签名:当要进行交易时,双方使用各自的私钥进行签名。双方在交易过程中并不会共享自己的私钥,而是仅共享经过签名的交易数据。
- 聚合公钥:是由双方的公钥组合生成的,但私钥是分别由双方自己控制的。
- 私钥安全:闪电网络的设计确保了私钥不会被泄露或共享给另一方。任何交易签名操作都依赖于双方的私钥独立进行签名。
因此,虽然双方可以共同生成多签地址和公钥,但私钥仍是各自独立保管的,并且双方无法得知对方的私钥。这种机制确保了通道的安全性,防止任何一方单独操作通道中的资金。
在多签公钥地址的场景中,双方谁也不知道完整的私钥 签名聚合:通过密码学技术(如Schnorr签名或门限签名Threshold Signature技术),可以将这两个独立的签名聚合成一个有效的签名。这个聚合签名等同于从多签公钥地址上发起的一次有效签名,允许交易被网络确认