LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > 一文了解比特币新签名方案

一文了解比特币新签名方案

2020-11-07 币大大 来源:区块链网络

免责声明:本文旨在传达更多的市场信息,并不构成任何投资建议。本文仅代表作者的观点,并不代表官方立场。

随着比特币的Taproot更新越来越近,社区成员对MuSig多签名方案产生了极大的兴趣。 MuSig允许一个小组共同管理一些比特币并创建签名以授权付款。由于MuSig具有创新的密钥聚合功能,因此签名是常规的Schnorr签名。一旦激活了Taproot,比特币网络就可以处理此签名。与使用CHECKMULTISIG操作码的传统n-of-n多重签名方法相比,当使用MuSig创建多重签名钱包时,它可以降低交易成本并提高隐私性,而传统方法则要求在签名上使用n。签名。签名。签名。签名。区块链密钥和n个签名。 ECDSA签名。

2018年,Blockstream发行了MuSig解决方案的第一个版本。我们将其称为MuSig1。正如我们将在下面讨论的那样,由于签名者之间的多轮通信,在实践中可能很难部署MuSig1。为了改进MuSig1并简化签名过程,Blockstream研究人员和法国国家网络安全局(ANSSI)的密码学家Yannick Seurin共同设计了一个新程序MuSig2,该程序仅需要两轮通信即可。本文目前正在同行评审中。在。

本文将简要介绍MuSig2与早期版本的MuSig1之间的区别。原始作者是乔纳斯·尼克(Jonas Nick)和蒂姆·鲁芬(Tim Ruffin)。

MuSig1交互问题

与基于CHECKMULTISIG的钱包相比,MuSig1的最大缺点是它要求签名者之间进行交互。更准确地说,创建签名需要三轮通讯,每轮通讯都包含来回传递的消息。下图显示了两个签名者的交互过程。您可以想象一个签名者使用桌面钱包,另一个签名者使用Blockstream Green对该签名者进行共同签名,或者一个签名者共享他们试图关闭的Lightning Network通道。

相比之下,使用CHECKMULTISIG的钱包只需要进行一轮通信:它们接收交易并返回签名。例如,如果您使用MuSig1在Lightning Network中转发付款,则可以改善隐私性,但是付款所需的时间明显更长。随着通信延迟的增加,这个问题变得更加严重。保存在保险箱中的MuSig1签名设备要求其所有者访问两次以创建签名。

MuSig2允许非交互式签名

新提出的MuSig2多签名方案旨在成为MuSig1的继承者。它提供与MuSig1相同的功能和安全性,但是可以消除签名者之间几乎所有的交互。使用MuSig2,签名者只需执行两轮通信即可创建签名。关键是在签名者知道他们要签名的消息之前对其中一轮进行预处理。一旦有需要签名的消息(例如比特币交易),该过程与当今基于CHECKMULTISIG的钱包相同:将交易转移到签名者,然后接收签名。通常,MuSig2保留了MuSig1的简单性和效率,只需要少量的额外计算即可。

MuSig家族

几周前,研究人员讨论了MuSig-DN,这是一个使用零知识证明的两轮通信协议,它比MuSig2复杂得多。 MuSig-DN的优点在于它支持确定性随机数,从而避免了在签名会话和回合之间保持状态(即无状态)的需要。

这就提出了在给定应用程序中使用哪种方案的问题。上表显示,我们没有选择MuSig1的理由,而应该选择MuSig2。实际上,我们希望大多数应用程序选择MuSig2而不是MuSig-DN,因为简单性是采用的主要因素。创建可互操作的实现时尤其如此,因为所有签名者都必须同意使用相同的协议。此外,对非交互式签名的支持大大提高了可用性。另一方面,如果已签名的会话需要存储在持久性媒体上,则MuSig-DN方案的无状态性质是有益的。为了演示在这种情况下MuSig2的风险,假设我们执行以下一系列事件:

打开一个MuSig2签名会话;将会话保存到硬盘上;执行硬盘备份;完成签名会话;恢复备份;再次完成会话;结果,我们创建了两个具有相同随机数的签名,可用于窃取我们的密钥。因此,MuSig2的实现者必须小心以确保不会发生这种情况。相反,MuSig-DN解决方案可以防止此类攻击。

构建两轮多重签名的挑战

要构建一个简单的Schnorr多重签名方案,该方案仅需要两轮通信,并且在并发会话中仍然是安全的(也就是说,如果签名者同时参加多个签名会话),这是一个尚未解决的研究问题。所有以前的尝试(包括早期版本的MuSig1论文)都将受到Drijvers等人发现的巧妙攻击。在这种情况下,攻击者与受害者签名者打开许多会话,并可以为受害者不打算签名的消息获取签名。

让我们快速看一下使MuSig2在并发会话下安全的原因。其中,在MuSig1中,每个签名者i创建一个随机数,在MuSig2中,每个签名者创建两个随机数R_i,1和R_i,2,并将其发送到第一轮通信By。并有效地使用这些随机数R_i = R_i,1 + b * R_i,2的随机线性组合来替换先前的随机数R_i。系数b是应用于所有签名者的随机数,聚合的公共密钥以及消息的哈希函数的输出。在MuSig1中,总随机数为R = R_1 + ... + R_n。如果任何签名者更改其随机数,则所有其他签名者将使用其两个随机数的不同随机线性组合。这样可以防止发现针对其他两轮多重签名方案的攻击。所有详细信息都可以在MuSig2论文中找到。

关于下一步

当前,blockstream希望在secp256k1zkp库中使用MuSig2代替MuSig1。它会更简单,更重要的是,它会更易于使用。根据开发人员的说法,在工具箱中使用MuSig2将使某些协议受益,例如“无脚本闪电网络”和阈值签名。如果比特币社区选择采用Taproot软叉,则MuSig2将适用于一系列Blockstream产品,例如Blockstream Green和c-lightning,以及Liquid锚定机制。

—-

编译者/作者:币大大

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...