http://www.7klian.com

隐私加密系列|MuSig Schnorr签名方案

4. 它必需答允非交互式聚合签名(NAS)。任何人都可以举办汇总的处所。
1. 三轮MuSig,仅依赖于离散对数(DL)假设,椭圆曲线数字签名算法(ECDSA)也依赖于此。
总体有效性要求所有返回的布尔值都为True,而且事务的多重签名为L,所有返回的键的并集。
在KOSK模子中,支持密钥聚合的多重签名方案更容易实现。出格地提出了CoSi方案,该方案可以被看作是朴素的Schnorr多重签名方案,个中cosigner被组织成树形布局以快速生成签名。
一般防备混混密钥进攻的一种要领是强制用户在向认证机构注册民众密钥的进程中证明(或拥有)奥机密钥。证书揭晓机构是一种称为KOSK假设的配置。基于配对的多重签名方案依赖于KOSK假设来维持安详性。
多重签名综述
密钥聚合Key Aggregation
签名聚合也有其挑战。这包罗混混密钥进攻,即参加者利用专门结构的密钥来窃取资金。尽量通过涉及密钥签名自己的注册进程,对付简朴的多签名来说,这很容易办理,可是跨事务的多个输入支持它需要简朴的公钥安详性。
当m> 0.5n时,称为共鸣帐户。经典的多签名钱包是三分之二,而且是共鸣帐户的特例。三种方案中的两种具有建设新比特币地点以及安详存储和支出的最佳特征。一位被损害的签字人不损害资金。单个密钥大概会丢失,但资金仍然可以收回。假如正确完成,则在钱包配置进程中建设异地备份。追回资金的要领不止一方知道。通过让一方比另一方节制更多的密钥,可以改变多签名钱包的气力均衡。假如一方节制多个密钥,则这些密钥不作为多个因素保存的风险更大。
6. 它必需答允每个签名者在本身的动静上签名。
就今朝而言,基于Schnorr签名方案提供了最实用的多签名方案之一,该方案证明是安详的,而且不包括任何干于密钥配置的假设。由于此方案的独一要求是每个潜在的签名者都具有民众密钥,因此此配置称为“纯密钥模子”。
可以看出,在跨输入多个签名的环境下,通过在一组密钥上伪造签名(至少包括一个不受进攻者节制的密钥)的本领,大概会产生偷窃。按照普通的公钥模子,这被认为是进攻者的胜利。这与单输入多签名环境相反,在单输入多签名环境下,只有通过为现有输出中包括的精确(汇总)密钥伪造签名才气实现偷窃。功效不再大概依赖于签名者私有的常识/工业证明。

签名聚合涉及到在数学大将多个签名归并为一个签名,而无需证明密钥常识(KOSK)。这就是所谓的普通公钥模子,个中独一的要求是每个潜在的签名者都有一个公钥。KOSK方案要求用户在向证书揭晓机构注册公钥时证明知道(或拥有)密钥。这是一种防备恶意密钥进攻的要领。
P. Wuille 办理了个中一些问题,并提供了完善Bellare-Neven(BN)方案的办理方案。他还接头了针对BN方案的缩放器乘法实现的机能改造,以及它们如安在上启用批验证。
这与正常的多签名方案差异,在正常的多签名方案中,一条动静由所有人签名。MuSig大概提供所有这些属性。
Schnorr签名及其进攻向量
引入的多重签名协议答允一组签名者(别离拥有本身的私钥/公钥对)在动静m上发生单个签名σ。给定动静和所有签名者的公钥集,可以果真执行给定签名σ的验证。
混混进攻(Rogue Attacks)
从尺度签名方案到多签名方案的转换需要是有用和实用的。因此新计较的多重签名方案必需发生签名,签名的巨细与签名者的数量无关,而且雷同于原始签名方案的签名。
在某些环境下,答允每个参加者签署差异的动静而不是单个的民众动静大概会很有用。IAS是每个签名者都有本身的动静mi要签名,而且连系签名证明第i个签名者已经签名mi。这些方案被认为比多重签名方案更一般。然而,它们不如非交互聚合签名温顺序聚合签名机动。
交互式聚合签名的应用
3. 它必需答允要求签名者相助的交互式聚合签名(IAS)。
比特币m-of-n多重签名
MuSig是一个多重签名方案,它团结了:
密钥聚合方案还可以使每个输入的民众密钥数量淘汰为一个,因为用户可以将硬币发送到所有涉及的密钥的聚合中,而不是将它们全部包括在剧本中。这样可以淘汰链上占用的空间,加速验证速度并提高隐私性。
密钥聚合是指看起来像单密钥签名的多重签名,可是相对付仅是参加者的民众密钥的成果的聚合民众密钥。因此验证者不需要知道原始参加者的公钥。只需给它们一个聚合的密钥。在某些用例中,这会带来更好的
隐私和机能。因此MuSig实际上是Schnorr签名的密钥聚合方案。
1. 在普通的公钥模子中,必需证明它是安详的。
为了使传统要领更有效且不需要受信任的配置,多重签名方案必需提供子线性签名聚合以及以部属性:
交错输入多签名(Cross-input Multi-signatures)
1. 密钥聚合的可用性消除了验证者查察所有相关密钥的需求,从而提高了带宽,隐私和验证本钱。
在上述环境下,在假设发送方得到了吸收方私钥的常识/拥有证明的环境下,,可以利用一些不针对混混密钥进攻提供掩护的密钥聚合方案。可是,这些方案很难证明是安详的,除非利用很是大的常识证明。由于这些常识/占有的证明不需要由验证者看到,它们由发送者的验证有效地证明。可是将它们通报给发件人并不利便,并且容易堕落。利用在纯果真密钥模子中安详的方案可以制止这些问题。
多签(MuSig)
最近多重签名最明明的用例是关于,它可以作为n-of-n个多重签名剧本的更高效替代(个中耗费的签名和大概的签名数量相等)和答允多种大概的密钥组合的其他计策。
尚有一个特另外进攻,称为Russel进攻,以Russel O’Connor的名字定名,他发明对付多方方案,一方可以声称拥有另一方的私钥,从而耗费其他输出。
当推广到m-of-n场景时,存在几个选项。一种是放弃密钥聚合(forego key aggregation),而且仍将所有潜在的签名者密钥包罗在谓词中,而对付所选的密钥组合仍然仅生成单个签名。可能可以利用Merkle树,个中叶是答允的公钥组合(聚合形式)。在这种环境下,谓词将利用汇总的民众密钥,签名和证明作为输入。它的有效性将取决于签名对提供的密钥是否有效,以及证明该密钥实际上是Merkle树的叶子之一(由其根哈希标识)的证明。这种要领很是通用,因为它合用于密钥组合的任何子集,因此具有精采的隐私性,因为从证明中看不到确切的计策。
多重签名是一种用于将多个参加者添加到生意业务中的技能形式。传统的多签名协议答允一组签名者在民众动静上发生连系的多签名。
本文研究了操作密钥聚合的Schnorr多重签名方案(MuSig),该方案在普通公钥模子下具有可证明的安详性。(本文福利,文末有现金抽奖)
当m = n时,它被视为同伴钱包,这带来了一些贫苦,因为不会丢失任何密钥。跟着所需签名数量的增加,风险也会增加。可以将这种范例的多重签名视为硬多因素身份验证。
1. 支持密钥聚合。
防备恶意密钥进攻
当m <0.5n时,它被视为挚友帐户,可用于从企业团体资金中支出。合谋少数群体的效果必需大于大概的好处。与共享钱包对比,它不那么利便,但更安详。
按照multisignatures-ccs,将任何多签名方案转换为IAS方案的一般要领是运行多签名协议的签名者利用IAS协议中涉及的所有公钥/动静对的元组作为动静。
关于所有参加者都有本领验证生意业务的打算,这些生意业务包罗输出(具有验证密钥和金额)和输入(指以前生意业务的输出)。每个输入都包括要用其引用输出的密钥验证的事务的修改版本的签名。一些输出大概需要耗费多个签名。利用这种输出的事务被称为m-of-n多签名事务,当前的实现对应于通过毗连单个签名来构建多签名方案的简朴要领。另外
当m = 0.5n时称为拆分帐户。这是一个有趣的用例,因为六分之三,个中一小我私家拥有三个密钥,而三小我私家拥有一个密钥。这样,一小我私家可以节制本身的钱,可是纵然主钥匙持有人的所有钥匙都消失了,资金也仍然可以收回。跟着n的增加,对次级方的信任水平大概会低落。一个好用例大概是家庭储备帐户,假如主要帐户持有人灭亡,该帐户会自动成为担任帐户。

介    绍
今朝已经存在的多重签名方案为Schnorr签名提供密钥聚合。可是它们具有一些范围性,譬喻需要验证参加者实际上是否具有与其声称拥有的民众密钥相对应的私有密钥。普通公钥模子中的安详性意味着不存在任何限制。参加者需要的只是他们的公钥。
前面的部门表明白如何将每个输入的签名数淘汰到一个。可是可以更进一步,将其替换为每个事务的单个签名。这样做需要对验证语义举办根天性的变动,因为独立输入的有效性不再是独立的。因此输出不能再被建模为谓词,在这里密钥所有者可以会见
加密的数据。相反,它们被建模为返回布尔值(只有两个大概值的数据范例)和一组零个或多个公钥的函数。
当地多签名(Multi-signature)的支持
与其建设每个输入一个签名的限制,不如将一个签名用于整个生意业务。传统上,密钥聚合不能跨多个输入利用,因为民众密钥由输出提交,而且可以独立利用。可以在此处利用MuSig,密钥聚合由验证措施完成。
当前比特币网络上的尺度生意业务可被称为单签名生意业务,因为它们仅需要来自与比特币地点相关联的私钥的所有者的一个签名。可是比特币网络支持更为巨大的生意业务,这大概需要多人签名才气转移资金。这些凡是称为n笔生意业务,个中m代表需要耗费的签名数量,而n代表大概的签名数量。
2. 普通公钥模子中的安详性。
假如假定生意业务利用了容易受到混混进攻的单个多重签名,则进攻者可以利用公钥X1,…,Xn-t标识他们想要窃取的任意数量的输出,然后利用 恶意密钥进攻以确定Xn-t + 1,…,Xn,以便他们可以签名聚合密钥X̃。然后,他们将用与键Xn-t + 1,…,Xn相对应的谓词将少量本身的钱发送到输出。最后他们可以建设一个生意业务,通过为整个生意业务伪造多重签名,将所有受害者的硬币与他们方才建设的硬币一起花掉。
传统的多重签名方案是签名和验证算法的团结,个中多个签名者(每小我私家都有本身的私钥/公钥)配合签署一条动静,从而发生一个组合签名。然后,任何知道动静和签名者公钥的人都可以验证这一点,个中需要利用KOSK举办可信配置。
m-of-n个多重签名的用例
5. 它必需答允每个签名者签署同一条动静。
2. 它必需满意正常的Schnorr方程,由此可以将生成的签名写为公钥组合的函数。
MuSig有两个版本是可证明安详的,而且按照通信轮次的数量而有所差异:
当m=1且n>1时,它被认为是一个共享钱包,可用于不需要太多安详性的小型团体基金。这是最不安详的多重签名选项,因为它不是多重因素。任何一个失策的人城市危及整个组织。用例的例子包罗周末或晚间勾当的资金,可能某种游戏的共享钱包。除了利便利用之外,此配置的独一长处是,除了一个备份/暗码对之外,所有备份/暗码对都大概丢失,所有资金都可以收回。
Schnorr签名发生较小的链上巨细,支持更快的验证并具有更好的隐私性。它们自己答允通过聚合将多个签名组合为一个,而且答允更巨大的话费政策。
没有非交互式聚合方案,仅依靠DL假设是已知的,可是在多签名方案中每个参加者都对所有动静举办串联的多重签名方案中,交互式方案是微不敷道的。文献中着重于Schnorr签名的密钥聚合,表白这并不老是一个抱负的结构,并给出了一本机能更好的BN的IAS变体。
固然多个多重签名方案可以提供对当前可用要领的改造,但有两个特性增加了大概的影响:假如仅需要n个大概签名中的m个有效签名来兑换事务,则可以强制实施阈值计策。(同样这是将多重签名方案转换为某种根基门限签名方案的最直接要领。)
关于比特币,这可以通过在剧本语言中提供签名查抄操纵码OP_CHECKSIG和相关操纵码的替代要领来实现。他们老是返回True,而不是返回实际ECDSA验证的功效,而是将已举办验证的公钥添加到整个事务范畴的多组密钥中。最后在验证所有输入之后,将比较该多集验证生意业务中存在的多重签名。假如生意业务耗费了多个所有者的输入,则他们将需要协作以发生多重签名,可能选择仅利用原始操纵码。以向后兼容的方法添加这些新的操纵码是大概的。
2. 普通公钥模子下的安详性答允跨事务的多个输入举办多个签名,个中签名者的选择不能提前提交。这大大增加了多重签名有益的环境的数量。
将尺度签名方案转换为多重签名方案的一个简朴要领是,让每个签名者用其私钥为m生成一个独立的签名,然后将所有单独的签名毗连起来。
交互式聚合签名
在实现多签名方案时,混混进攻是一个值得存眷的问题。一个恶意的签名者的一个子集哄骗作为厚道用户的公钥函数计较的公钥,答允他们容易地为公钥集生成伪造(尽量他们不知道相关的密钥)。
在比特币中,思量到交错输入签名时,没有果真的签名者理睬,因为每个生意业务输入都可以独立耗费需要差异参加者授权的输出。此成果不受限制,因为它将滋扰诸如CoinJoin 之类的可移植性改造。由于缺乏认证,防御恶意密钥进攻的安详性很是重要。
2. 两轮MuSig,取而代之的是依靠稍微强一点的“离散离散对数(OMDL)”假设。
什么是m-of-n生意业务?
一个改造是用一个恒定巨细的多签名原语(如BN)取代实现n个或n个多签名的需要。固然这在巨细上有所改造,但仍然需要包括签名者的所有公钥。密钥聚合进一步改造了这一点,因为可以改用单个密钥谓词。该要领体积小,验证计较劲小。谓词
加密是一种加密典型,它使主密钥所有者可以对会见加密数据举办细粒度节制。由于参加者的密钥及其数量仍对签名者不果真,因此还可以提高隐私性。
对付BN的方案和Schnorr多重签名,这不会增加通信轮数,因为动静可以与共享Ri一起发送。
另一种选择是利用一种算法,该算法的密钥生成需要可信的配置,譬喻 在KOSK模子中。尽量很多方案已被证明是安详的,但它们依赖于证书揭晓机构凡是不实施的机制。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读