随着5月15日比特币现金网络升级越来越近,关于BCH升级的内容也越来越多。我们都知道在此次升级中有一重大改变是Schnorr签名。
@MarkLundeberg作为一名比特币现金网络升级的Schnorr签名的开发人员,特意发布一篇文章来介绍Schnorr签名。以下是翻译。
为什么Schnorr签名很重要?
自比特币诞生以来,它一直使用“椭圆曲线数字签名算法”(又名ECDSA)进行交易签名。
然而,Schnorr签名算法(由德国数学家和密码学家Claus Schnorr创造)实际上比ECDSA出现的早几年,且更有效率。
许多密码学家都认识到Schnorr签名算法具有更“清晰”的数学设计——那么为什么不早点使用它呢?
在2008年,比特币诞生的时候,该算法是受到专利保护的,而ECDSA则没有(有人认为比特币之所以会采用从Schnorr的设计中变异的ECDSA算法是为了规避专利)。
因此,在比特币软件最初发布时,只有ECDSA算法已经足够标准化,可以存在于所使用的OpenSSL 0.9.8库中。换句话说,最初比特币没有其他选择,只能使用ECDSA算法。
BCH网络将如何从Schnorr签名中受益?
回到今天,Schnorr签名专利在2008年到期后,就已经在比特币现金的开发工作计划中。
随着升级的即将到来,它们最终将被发布到BCH网络中。我们将引入Schnorr签名将作为ECDSA签名的可选择的替代选项。
现在,您可能在想,这会为BCH的日常交易带来什么?这是一个快速摘要:
l 不必生成新地址即可开始使用Schnorr签名。
l 这是因为我们在实施Schnorr签名时的曲线与ECDSA是相同的,因此所有私钥和公钥也都是相同的。
l Schnorr签名为64字节,而ECDSA为70-71字节,这导致平均交易量减少4%。
这对钱包开发者意味着什么?
对于他们来说,没有必要急于进行紧急更改,因为Schnorr签名完全是可选的,并且所有ECDSA签名都将像以前一样运行。
鉴于Schnorr签名承诺提供更好的用户体验,我也希望很多钱包能在明年前后转换他们。
Schnorr签名的技术细节
改进的Schnorr签名的数学特性将在采用时带来几个好处:
扩容性:在接收新交易时,节点必须在接受签名并将其转发到BCH网络之前验证签名。升级之后,节点将能够通过在验证之前将所有Schnorr签名收集到一起来执行批量验证,从而加速整个验证过程。
隐私性:钱包开发人员可以生成秘密的Schnorr多重签名,这些多重签名将作为正常的单一签名交易出现在链上——尽管它们涉及多方。该秘密签名聚合允许BCH网络上出现更多私人智能合约。
采用Schnorr签名还为未来的升级奠定了基础,可以实现更高级的加密功能。例如:
公共签名聚合将允许钱包用一个签名替换许多交易签名。这可以进一步减少约20%的交易大小,使网络更快,更高效。
像Taproot和Graftroot这样的签订合约的想法将允许我们进一步增加隐私。他们这样做是为了让未执行的智能合约隐藏在普通的公钥背后。
值得注意的是,与仅具有基本的Schnorr签名相比,这些想法明显更复杂,实验性且未经测试!但是,如果它们的价值变得明显,那么就没有什么可以阻止它们在以后被引入。
升级将对BCH用户有什么影响?
如前所述,使用ECDSA的现有钱包也将继续发挥作用。但是,我鼓励开发人员升级到Schnorr,以帮助网络发展。
从用户体验的角度来看,这些面向用户的接受BCH的钱包,比如Bitcoin.com钱包等,乍看之下基本上没什么不同。
但是,如果在5月15日升级后查看新交易,您可能会注意到它的大小比以前小了约4%。
典型1输入和1输出交易,带有Schnorr签名的185字节,而带有ECDSA的是191-192字节。资料来源:Schnorr Testnet
向上和向上
在网络升级之后,随着越来越多的开发人员将其他的BCH应用程序以及钱包、工具包等进行升级,使用Schnorr签名的交易数量将稳步增加。
总的来说,这将有助于实现更快,更精简,更高效的BCH网络,并且这样做有助于使每个人都能更好地进行点对点交易!