在2018年,Blockstream公司发布了MuSig方案的第一个版本,被称为MuSig1。然而,MuSig1在实践中部署可能会面临困难,因为签名者之间需要多轮通信。为了改进MuSig1的签名过程,Blockstream的研究者与法国国家网络安全局(ANSSI)的密码学家Yannick Seurin合作设计了MuSig2。MuSig2只需要两轮通信,大大简化了签名过程。目前,MuSig2的论文正在接受同行评审。
MuSig1的最大问题是需要签名者之间的交互。创建签名需要三轮通信,每一轮通信都要来回传递消息。与之相比,使用CHECKMULTISIG的钱包只需要一轮通信。MuSig2旨在解决这个问题,只需要两轮通信就可以创建签名。MuSig2支持非交互式签名,签名者可以在得知要签名的消息之前进行预处理。MuSig2保留了MuSig1的简单性和效率,并增加了少量的额外计算。
MuSig-DN是另一种MuSig方案,它使用了零知识证明的两轮通信协议。它相对于MuSig2而言更复杂,但优点是支持确定性nonce,无需保持状态。在选择使用哪个方案时,应该选择MuSig2而不是MuSig1。希望大多数应用选择MuSig2而不是MuSig-DN,因为简单性是主要因素。然而,如果签名会话需要存储在持久介质上,MuSig-DN的无状态属性就会有益。
构造一个简单的只需要两轮通信的Schnorr多重签名方案,并且在并发会话下仍然是安全的,这是一个尚未解决的研究问题。以前的尝试都受到一种巧妙的攻击的影响。MuSig2在并发会话下变得安全的原因是,每个签名者创建两个nonce,第一轮通信时将它们发送给其他签名者,并使用这些nonce的随机线性组合代替之前的单独nonce。MuSig2的实现者需要小心,确保不会发生签名者更改他们的nonce的情况,这可能导致被攻击。
Blockstream希望用MuSig2取代MuSig1实现,在简单性和易用性方面有所改进。使用MuSig2的工具箱可以受益于一些协议,例如“无脚本脚本闪电网络”和门限签名。如果比特币社区选择采用Taproot软分叉,MuSig2将适用于Blockstream的产品,例如BlockstreamGreen和c-lightning,以及Liquid锚定机制。