在2018,区块链技术协议书企业Blockstream的登陆密码学者Gregory Maxwell、Pieter Wuille等明确提出了一种名叫MuSig的Schnorr签名方案,理论上可取代当今比特币的ECDSA签名优化算法,而在今天,Blockstream早已把MuSig从一篇期刊论文,转化成了能用的编码,并开展了开源系统。
对于此事,来源于Blockstream的一位数学家Andrew Poelstra向小区共享了这一技术性的进度,下列为其共享內容的译文翻译:
当今,比特币和别的区块链技术广泛选用的是ECDSA签名认证优化算法。这显而易见是中本聪在2008年依据那时候普遍应用和未受权的数据签名系统软件所作出的技术性决策。殊不知,ECDSA签名存有一些比较严重的技术性限定。尤其是,多种签名和门限签名(由单独当事方的成员数并非一人签定)难以与ECDSA一起转化成。ECDSA签名具备繁杂的解析几何构造,使其不灵便且难以使用,驱使开发者在跨链分子互换或闪电网络等运用中应用比特币脚本制作,而这可根据更灵便的签名方案,更紧凑型、更私秘地完成这种运用。
在2018,区块链技术协议书企业Blockstream的登陆密码学者Gregory Maxwell、Pieter Wuille等明确提出了一种名叫MuSig的Schnorr签名方案,理论上可取代当今比特币的ECDSA签名优化算法,这类多种签名方案出示了可证实的安全系数,乃至可避免 故意签名者的勾结非空子集,并转化成与一般单签名者Schnorr签名不能区别的签名(提升隐私保护性)。
历经近一年的发展趋势,Blockstream早已把MuSig从一篇期刊论文,转化成了能用的编码,这周,其开发者会把编码合拼到secp256k1-zkp(secp256k1的一个fork),除此之外,Blockstream还把信息保密买卖(CT)技术性拓展到其Elements和Liquid主链商品。
必须留意的是,现阶段比特币core代码库仍然应用的是secp256k1,因而现阶段MuSig并沒有被运用到比特币,但这也是Blockstream所希望的总体目标。
而假定比特币开启这一签名方案,将促使闪电网络可在无脚本制作脚本制作(scriptless script)中运用。
MuSig签名方案的优点
依据Blockstream官方发布的表明,运用MuSig签名方案将关键会出现下列两大优点:
1. 不管签名者设定怎样,认证者都是会见到同样的短的、变量定义尺寸的签名。在区块链系统中,认证高效率是最重要的考虑到要素,用签名者关键点来给认证者提升压力,是不科学的,除非是是安全性必须,不然是无必需的。除此之外,MuSig签名方案可以提升隐私保护性,由于他们掩藏了准确的签名者对策。
2. 为一般公匙实体模型出示可证安全系数。这代表着签名者可彻底灵便地应用一般的密匙对开展多种签名,而不用出示一切有关这种密匙造成或操纵的特殊方法的附加信息内容。相关密钥生成的信息内容,很有可能难以在比特币的自然环境中出示,由于每个签名者具备不一样的和约束性的密钥管理对策。除此之外,对密钥生成关键点的依赖感,很有可能会与Taproot(一种建议的比特币拓展方案)造成欠佳的配对t检验,在其中公共性签名密匙很有可能会出现附加的隐型词义。
错误观念和安全性API开发设计
与全部多种签名协议书的数学课叙述一样,公布后的MuSig,假设参加者在全部签名全过程上都可浏览运行内存,而签名全过程是长久的、便于升级的,而且网络攻击不可以“重设”到之前的情况。它还假定签名者可浏览随机性来源于,这种来源于与uniform不能区别。悲剧的是,现实世界并沒有这么简单,Blockstream花了很多的活力设计方案了一个API,它能够在各式各样的情景中应用,而不会有因未声明的假定而造成密匙遗失的很有可能。
如同Schnorr签名或是ECDSA,MuSig签名方案在其构造中应用了一个密秘的“nonce”,其务必统一随机生成。一切偏移统一标准的个人行为,即便 仅仅一点点,也很有可能造成密匙遗失和资产失窃。
Blockstream的关键设计方案总体目标,是建立一个安全性的防错用API,即便 是在受到限制的自然环境中,也不会激励风险的应用方式。
Uniform随机性
针对单独签名,完成统一任意nonce的规范方式 非常简单:取一些商业秘密数据信息和要签名的信息,根据数据加密哈希函数传送这种数据信息,获得一个统一任意值,该值针对每一个要签名的信息来讲全是单独的。
殊不知,拥有多种签名,这一简易而健硕的处理方案就变成一种压力。故意签名者很有可能会在同一条信息上要求2个多种签名,进而在第二次迭代更新中调节自身对签名的奉献。假如第一个签名者根据在信息边上hach一个密秘来挑选他的nonce,那麼他最后将在2个十分不一样的签名中应用同样的nonce(实质上是造成PS3被黑客入侵的同样不成功方式。)悲剧的是,与单独签名者的状况不一样,沒有简易的处理方案,由于单独签名者务必在了解要转化成的签名的全部关键点以前挑选他们的nonce。
处理这个问题的一个传统式方式 ,是应用硬件配置随机数生成器器,这类方式 在散列法( hashing)时兴以前就已被应用了。悲剧的是,这类方案全是价格昂贵的,会遭受自然环境成见或别的外界危害,最重要的是,大家没有办法认证他们是不是恰当运作。
有关认证这一点,有一些创造力的处理方案,Blockstream将在之后的文章内容中讨论。现阶段,其挑选是规定API客户为每一个签名对话出示唯一的“对话ID”。nonce是根据hach签名者的密秘、签名者集、要签名的信息,及其这一会话的唯一键入而造成的。可浏览随机数生成器器的客户,能够应用它来转化成对话ID,而可问长久运行内存的客户,只需应用电子计数器就可以。
现阶段开发者期待能迅速生产制造出一个真实强劲的处理方案。
有关中间人攻击(Replay Attack)
即便 有一个靠谱的随机性来源于,仍有可能从多种签名的参加者那边获取公钥(假如在全部全过程中,很有可能从一个点播放签名协议书得话),这类种类的进攻被称作“中间人攻击”,可对于在可重新启动的vm虚拟机内运作的签名者,及其适用中断签名及从可实例化情况修复的vm虚拟机启动进攻。它乃至很有可能在沒有主题活动网络攻击的状况下出现意外产生,比如运作从同一情况复制的2个vm虚拟机,或是不在同歩的分布式系统数据库查询上实行编码。
从总体上,假如一个签名者奉献了一个多种签名,而且签名全过程在挑选了他的nonce以后的某一点,根据重新启动的方法,则可改动别的签名者对签名的奉献。
这种种类的进攻不容易以单独签名出現,由于他们是在一个流程中转化成的,沒有中间状态可从这当中重启。这种附加的挑戰,针对积放加密协议而言是独一无二的。
假如没去科学研究新的体制,现阶段的MuSig签名方案就没法维护在vm虚拟机中开展签名的客户。一样,这一限定在Blockstream的开发人员看来是可清除的,现阶段她们已经积极主动科学研究处理方案。
结果,及其将来的工作中
全部所述探讨都暗含着那样一个见解:即对比单方面协议书,多方面协议书会遭遇新的、本质上更艰难的挑戰。就数学课多元性来讲,MuSig要比Bulletproofs(EXO证实)要简易得多。但在完成多元性层面,MuSig早已投入了大量的勤奋,而且必须在抗延性和API协调能力中间开展大量的衡量。
本文只叙述了多种签名一部分,在未来的文章内容中,开发人员还将叙述门限签名,这是一个有关的定义,在其中n个签名者的一切非空子集,要是总数充足,就可以转化成签名,而不用全部签名组的奉献。
在之后的文章内容中,大家还将探讨一些使非随机性更安全性和更可验证的技术性。尤其是,根据应用一种称之为签署合同(sign-to-contract)的技术性,服务器能够从来不可靠的硬件配置钱夹的随机数生成器器中清除一切误差的概率。
更进一步的是,根据运用零知识证明的工作能力,应当可清除偏随机性(biased randomness)和中间人攻击所产生的风险性,清除对长久运行内存的要求,并将MuSig协议书从3轮通讯降低到2轮。
阅读者可查询MuSig在Github上的编码(https://github.com/ElementsProject/secp256k1-zkp/tree/secp256k1-zkp/src/modules/musig),并对其公布评价或明确提出改善。
开启APP阅读文章更多精彩內容
文章转载自网络,如有侵权,请联系api@1dq.com删除