摘要:MuSig是一种Schnorr签名的多签名方案,支持密钥聚合,在普通公钥模型中是安全的。基于离散对数的签名的标准去域化技术(如RFC 6979)使签名过程不受随机性生成中灾难性失败的影响,但不适用于多签名,因为攻击者可以诱骗诚实的用户生成两个具有相同随机性的不同部分签名,这会泄露用户的密钥。
在本文中,我们提出了MuSig的一种变体,其中签名者以消息和所有签名者公钥的伪随机函数的形式确定性地生成他们的nonce,并通过向其签名者提供非交互式零知识证明证明了他们是这样做的。由此产生的方案,我们称之为MuSig-DN,是第一个具有确定性签名的Schnorr多重签名方案。因此,其签名协议对随机生成中的失败以及试图利用签名过程的状态性的攻击(例如,虚拟机倒带攻击)具有鲁棒性。另一个好处是,在MuSig-DN中签署会话只需要两轮,而不是之前所有Schnorr多签名(包括MuSig)所要求的三轮。为了实例化我们的构造,我们确定了一个合适的代数伪随机函数,并将该函数作为一个算术电路提供了一个有效的实现。这使得使用支持Pedersen承诺(例如Bulletproof)中给定输入的算术电路零知识证明框架高效实现MuSig-DN成为可能。我们通过在比特币中使用的secp256k1椭圆曲线上实现它来证明我们的技术的实用性。
阅读更多Blockstream博客或观看预先录制的谈话我们在CCS2020会议上作了介绍。