曲速未来 揭秘:CodeChain中的Schnorr签名
栏目: JavaScript · 发布时间: 6年前
内容简介:曲速未来表示:Schnorr签名是椭圆曲线数字签名,它是ECDSA的替代品,也在CodeChain中实现。本文为作者“曲速未来安全区”,原创文章,转载时请保留本声明及附带文章链接。 内容仅供读者参考,并非投资建议,本网站将保留所有法律权益。
2018-10-20 11:45 区块链 技术 743 收藏
曲速未来表示:Schnorr签名是椭圆曲线数字签名,它是ECDSA的替代品,也在CodeChain中实现。
介绍
Schnorr,是一种签名算法:一系列连接私钥、公钥和签名的数学规则,Schnorr来源于它的发明人的姓名Claus-Peter Schnorr。很多密码学家认为Schnorr签名在相关应用中是最好的,因为它有很高水平的正确性,没有延展性问题,验证速度相当快,最重要的是支持多重签名:可以把多个签名聚合成一个新的签名。
区块链安全咨询公司 曲速未来 表示:Schnorr签名是椭圆曲线数字签名,它是ECDSA的替代品,也在CodeChain中实现。
首先,Schnorr签名的四大优势如下:
-
Schnorr签名比ECDSA更容易操作,速度更快。ECDSA在计算中具有模块化逆和点乘的繁重操作,而Schnorr签名相对于ECDSA的操作相对较少。
-
与ECDSA相比,Schnorr签名具有较小的签名大小。ECDSA签名包括支持公钥恢复的恢复参数。具有隐式Y坐标的Schnorr签名允许在没有恢复参数的情况下恢复公钥。
-
可以使用Schnorr签名执行批量验证,即同时验证一个块中的签名。这是由于Schnorr签名的线性,使得允许添加多个验证方程而没有问题。以这种方式,一次验证所有签名可以减少点乘法的数量。
-
Schnorr签名的引入减少了多重签名的大小。当多个人加入multisig时,大多数区块链会逐个存储他们的签名。这更快地处理签名签名,但是,验证很慢并且签名的大小随参与者的数量线性增加。如果使用Schnorr签名,则可以使用具有常量签名大小的多个多重签名方案。代表性方案是MuSig。
CodeChain上的Schnorr签名实现
CodeChain使用在比特币的libsecp256k1中实验性实现的Schnorr签名代码。为了实际使用Rust,在此使用一个名为rust-secp256k1的Rust包装器。
开始在CodeChain的JavaScript Primitives中提供了Schnorr签名的简单实现,基于此,然后创建了JavaScript SDK和Keystore的Schnorr版本。CodeChain和SDK的Schnorr版本已经过测试,可以在从ECDSA移至Schnorr时传递所有现有测试,而无需对现有代码进行任何更改。
CodeChain基于Schnorr签名的多重签名
如前所述,MuSig具有m-of-m多重签名方案,其优点是不需要单独的签名验证实现,并且可以以与验证单个签名相同的方式进行验证。由于在输入Schnorr签名时可以使用MuSig,因此CodeChain将通过JavaScript SDK和RPC支持MuSig签名签名。
此外,CodeChain将利用使用MuSig的树签名来支持m-of-n阈值签名。树签名只能使用锁定脚本创建,不需要额外的实现。它们还具有更快验证的优势。对于CodeChain,Tree签名的锁定脚本作为标准脚本包含在内,SDK和RPC将支持签名签名,就像MuSig一样。
区块链安全咨询公司 曲速未来 观点:通过使用Schnorr签名,不仅可以加强隐私,最重要的是可以降低每个人的交易费用。实际上,为了使用最优隐私选项,需要支付一个成本,这只是一个人人可以选择的选项,它大大加强了隐私的保护。
本文为作者“曲速未来安全区”,原创文章,转载时请保留本声明及附带文章链接。 内容仅供读者参考,并非投资建议,本网站将保留所有法律权益。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 用 Python 制作一个艺术签名小工具,给自己设计一个优雅的签名
- 强随机数应用链链RandDrop已上线——BLS签名实现阈值签名的流程
- Android应用签名打包
- [原]数字签名
- iOS 签名机制
- 封装Apk签名工具
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。