schnorr 签名
概念:Schnorr签名算法最初是由德国密码学家ClausSchnorr于2008年提出的,在密码学中,它是一种数字签名方案,以其简单高效著称
原理:其安全性基于某些离散对数问题的难处理性。
签名过程:
和其他签名方式的比较:
优点: 签名长度较ElGamal短,签名过程只需要一次乘法和一次加法。所以Schnorr的签名速度快,适用于智能卡应用。
缺点:由于签名长度短,其安全性相较于ElGamal差。
应用: 很多密码学家认为schnorr签名在相关应用中是最好的,因为它有很高水平的正确性,没有延展性问题,验证速度快,最重要的是支持多重签名:可以将多个签名聚合成一个新的签名。2018 年提出了一种名为 MuSig 的 Schnorr 签名方案,这是一种多重签名。
schnorr签名和比特币
2021年比特币推出 Taproot 22.0 版, Taproot 的主要特点是,借助具有多重签名 Schnorr 签名的 BTC 钱包当前机制的替代方案,用户可以组合多个公钥来创建一个新的公钥。 据开发人员称,这样的解决方案将显着减少使用多重签名的支付数据量,减轻区块链不必要的负担。Schnorr 签名主要的目标是取代目前比特币现行的ECDSA 签名。
这些优势源于在多签的情况下,如果使用的是 ECDSA,用 N 个公钥加锁,就需要有与之对应的 N 个签名来做验证解锁,验证的工作也需要进行 N 次;如果使用的是 Schnorr,N 个公钥可以聚合为一个公钥,验证时也只需用一个聚合签名做一次验证。
这种「线性」的特质让 Schnorr 在性能、体积、隐私等方面均优于 ECDSA。
性能:Schnorr 的性能优势显而易见,它减少了一个多签交易的验证工作量,此外还有可能实现多个交易的批量验证,也就是用一个区块中所有交易的聚合签名一次性验证所有交易,从而提升比特币的验证速度。
体积:Schnorr 使用的是聚合公钥和聚合签名,这会减少多重签名的大小,通过将无关数据移出区块链提高系统的可伸缩性,节点将拥有更多的带宽同时还能减少存储量。Andrew 认为如果每个人都采用这种方法,等于变相将比特币的容量增加了 10% 至 20%。
隐私:Schnorr 的隐私优势在于它在交易脚本中使用聚合公钥和聚合签名完成加锁和解锁操作,某个用户的原公钥和原签名都不会暴露。外界只能看到 10,而不能看到 1、2、3、4,外界甚至无法知道这是一笔多签交易还是一笔非多签交易。