2021年的Taproot升级给比特币网络带来了更强的隐私性、可扩展性和可组合性,因此越来越多人对其中应用Schnorr数字签名算法来聚合公钥和签名的多签方案MuSig产生了浓厚的兴趣。
MuSig允许一个群体集体拥有一些比特币,并创建一个单一签名来授权支付。由于MuSig具有创新的密钥聚合特性,这个签名是一个规则的Schnorr签名,一旦Taproot被激活,它就可以被Bitcoin处理。当用于创建多个签名钱包时,MuSig与传统的n个签名使用CHECKMULTISIG操作码相比,减少了交易费用,增加了隐私,后者需要n个公钥和块链上的n个ECDSA签名。
1.多重签名方案
多重签名方案是签名和验证算法的结合,其中多个签名者(每个人都有自己的私钥/公钥)联合签名一个消息,从而产生一个单一的签名。然后,任何知道消息和签名者的公钥的人都可以验证这个单个签名。请注意,在比特币的上下文中,术语“ multisig”通常指的是k-of-n(即k对n)策略,其中k可能不同于n。在密码学中,多重签名实际上只涉及n对n策略,尽管我们可以很容易地在n对n的情况上构造k对n。
2.MuSig
MuSig是一个应用Schnorr数字签名算法来聚合公钥和签名的多签方案。MuSig允许多个用户使用各自的私钥创建一个组合公钥,这个组合公钥与任何其他Schnorr公钥都是大小一致且无法区分的,包括单个用户的公钥。它进一步描述了创建公钥的用户如何能够共同安全地创建与公钥对应的签名。像公钥一样,这个签名也和其他的Schnorr签名没有什么区别。与传统的基于脚本的multisig相比,MuSig使用更少的块空间并且有更多的私有空间,但它也可能需要参与者之间更多的交互性。
3.MuSig支持密钥聚合
MuSig支持密钥聚合。密钥聚合是指看起来像单密钥签名的多重签名,但是相对于仅是参与者的公共密钥的功能的聚合公共密钥。因此验证者不需要知道原始参与者的公钥,只需给它们一个聚合的密钥。MuSig能生成简短的、体积固定的签名,不管签名者有多少、怎么签,在验证者看来都是一样的。在区块链系统中,验证效率是最重要的因素,除非确实需要更多的安全性,否则没有必要向验证者提供签名者更多的细节。这样做有一个明显的好处就是能够提高隐私性,因为它能隐藏具体签名者的信息。因此MuSig实际上也是Schnorr签名的密钥聚合方案。
4.MuSig在普通公钥模型中有可证明的安全性
MuSig在普通公钥模型中有可证明的安全性。目前已经存在许多为Schnorr签名提供密钥聚合的多重签名方案,但是它们具有一些局限性,例如需要验证参与者实际上是否具有与其声称拥有的公共密钥相对应的私有密钥。可以证明普通公钥模型中的安全性就不会存在任何限制,参与者只需要提供他们的公钥。这就意味着签名者可以使用普通的密钥配对来参加多重签名,而不需要提供任何关于这些密钥生产及控制的具体方式的信息。在一些比特币的使用场景中,个人签名者的密钥管理政策互不相同且有限制,这时候就很难获得关于密钥生成的信息,很好地增强了用户的隐私。
5.MuSig交互问题
在实现上述优点的同时,也带来了一些问题。其中一个比较明显的问题就是MuSig需要更多签名者之间的交互。更准确地说,创建一个签名需要三轮通信,每轮通信都由来回传递的消息组成。下面的图显示了三轮通信的过程。你可以想象一个签名者是一个桌面钱包,另一个是Blockstream Green联署签名者,或者签名者共享一个他们试图关闭的Lightning通道。
相比之下,使用CHECKMULTISIG的钱包只需要一轮通信:它们接收一个交易就返回一个签名。例如,如果使用MuSig在闪电网络中转发支付,隐私将得到改善,但支付时间将明显延长。随着通信延迟的增加,这个问题会变得更加严重。存储在保险箱中的MuSig签名设备在创建签名之前需要其所有者访问两次。
6.MuSig2
顾名思义,MuSig2是MuSig的继承者。它提供了与MuSig相同的功能和安全性,但却可以消除几乎所有签名者之间的交互。使用MuSig2,签名者只需要两轮通信就可以创建签名,而且关键的是,其中一轮可以在签名者知道他们想要签名的消息之前进行预处理。一旦有一些消息需要签名,例如,一个比特币交易,这个过程就和现在的基于checkmultisigns的钱包一样:将交易传输给签名者,然后收到一个签名的回复。MuSig2保留了MuSig的简单性和效率,只是增加了少量的额外计算。
7.并发会话安全
MuSig2在并发会话下是安全的。在MuSig中,每个签名者创建一个nonce,在MuSig2中,每个签名者创建两个以上的nonces R_i,1, R_i,2在第一轮中将它们发送给其他签名者,并且有效地使用一个随机的线性组合R_i = R_i,1 + b*R_i,2 来代替以前的一个nonce R_i。系数b是应用于所有签名者的非参数、聚合公钥和消息的哈希函数的输出。和MuSig一样,聚合起来也是R = R_1 + ... + R_n。如果任何一个签名者改变了他们的任何一个非消息,每个其他的签名者将使用他们两个非消息的不同的、随机的线性组合。这样就避免了对其他两轮多重签名方案发现的攻击。
总结
有了MuSig2,一些协议将大大受益,比如“scriptless script Lightning”和阈值签名。在去中心化多签的其他应用中,BTC Layer2项目BEVM也是典型代表之一。
在BEVM系统中,每个验证者均持有一个用于Schnorr签名的BTC私钥,利用Schnorr签名的特性使其能够实现高效的签名聚合,从而提高系统的安全性和效率。BEVM实际上采用了Musig2聚合多签技术让BTC跨链到BTC Layer2,整个过程实现完全的去中心化。此外,项目还集成了比特币轻节点等技术来确保无信任且安全的环境。





