LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > 深度Schnorr签名给NetFlowCoin带来的意义

深度Schnorr签名给NetFlowCoin带来的意义

2021-03-05 链望角123 来源:区块链网络

近期的BTC协议开始了一次具有里程碑意义的技术升级。其协议中的技术升级 Schnorr Signature (施诺尔签名)和 Taproot (树的主根)已集成到Bitcoin Core 0.21.0 版本中。

之前BTC一直采用的是 ECDSA 椭圆曲线签名算法,这让多重签名交易验证过程非常繁琐,大大影响了BTC区块确认的效率。

其实在此之前,中本聪在设计BTC协议时,需要考虑到签名算法的签名长度、是否开源、是否有专利、是否经过足够长时间的安全验证、性能等多种条件。当时能满足上述这些条件的数字签名算法不止有 ECDSA,还有 Schnorr Signature 这个从各个方面都不亚于 ECDSA 的数字签名算法。但是由于在 2008 年之前处于专利保护的状态,所以可能是这个原因使得中本聪在设计BTC协议时,不得不选择效率低下的椭圆曲线数字签名算法(ECDSA),还在其他专家的建议下选择了一条特殊的椭圆曲线 secp256k1。

时隔10年,2018 年 7 月,BTC开发者 Pieter Wuille 撰写了 bip-schnorr提出了将 bitcoin 的签名算法更改为 schnorr 方案。Schnorr 与 ECDSA 虽然同为使用 secp236k1 曲线的椭圆曲线加密算法,但由于Schnorr Signature 在密码学特性上的优势,可以在几乎同等安全的基础上,更方便的构建多签名交易。

Schnorr 使用在BTC上,相比ECDSA会有一些额外的显著优势:

更安全:在随机预言模型中很容易证明 Schnorr 签名的安全性,而 ECDSA 不存在这样的证明。

无延展性困扰:ECDSA签名是可延展性的,第三方无需知道私钥,可以直接修改既有签名,依然能够保持该签名对于此交易是有效的。BTC一直存在延展性攻击,直到SegWit激活后才修复,前提是使用segwit交易,而不是传统交易。BIP62 和 BIP66 对此有详细描述。

线性:Schnorr签名算法是线性的!以这一特性作为基础,可以构建更高效和隐私性更强的区块链系统。使用 Schnorr 签名的各方可以生成对其各自密钥的签名聚合。例如,N个公钥进行签名,采用ECDSA的话,则有N个签名,验证同样需要做N次。若使用Schnorr,由于线性特性,则可以进行签名叠加,仅保留最终的叠加签名。例如同一个交易无论输入数量多少,其均可叠加为一个签名,一次验证即可。

Schnorr签名算法几乎在各个层面均优于BTC现有的签名算法ECDSA

性能,安全,体积,扩展性等方面等,并且Schnorr Sig可以与ECDSA使用同一个椭圆曲线:secp256k1 curve,升级起来的改动非常小。

当然在BTC协议中除了签名算法之外,还设计了Taproot 脚本语言定义如何使用BTC。BTC多签类地址可以不用暴露出自己的「多签」身份,也可以支持数量众多的多签场景(链上交易只需要一个聚合的公钥和一个签名),降低很多的交易字节数,特别是对于需要高频操作的地址而言,降低链上的交易费用,可以节省不少的成本。

下面来科普一下Schnorr 签名

Schnorr签名算法是由德国数学家、密码学家Claus Schnorr提出。并于1990年申请了专利,U.S. Patent 4,995,082,该专利于2008年2月失效。目前该算法可以自由使用。

Schnorr 签名的生成则略有不同,我们使用了一个点 R 和一个标量 s 来代替两个标量(r,s)。与 ECDSA 相似的是,R 是椭圆曲线(R=K×G)上的一个随机点。签名的第二部分计算略有不同 :

s = k + hash(P,R,m) ? pk. 这里的 pk 是你的私钥,而 P = pk×G 则是你的公钥,m 是消息。然后可通过检查 s×G = R + hash(P,R,m)×P 来验证这个签名。

这个方程是线性的,所以方程可互相加减,并且仍然有效,这就给我们带来了几大关于 Schnorr 签名的好处。

BTC 的此次Schnorr 签名协议升级,在区块链领域里引起了广泛关注,在给自身生态带来积极意义的同时,也为区块链公链开发带来了好的基础刚需。

目前NetFlowCoin的技术团队计划将Schnorr签名升级变化应用在NetFlowCoin,如果能够实现这一技术升级,那么对于公链稳定性及安全性将是极大的提升。

引入 Schnorr 签名的对NetFlowCoin产生的影响有以下几个方面:

节省数据:签名聚合可在NetFlowCoin链上提供数据压缩

隐私:除交易结算外,关于无脚本智能合约的任何东西都不会记录在区块链上(签名聚合过程发生在链下)

多重性:可在单个交易结算中在双方之间转移多种资产(跨链原子交换)

可伸缩性:NetFlowCoin的可伸缩性是通过将多个交易压缩到单个结算事务中实现的。只有满足所有先决条件后,交易才会被广播

结合聚合签名的 Scriptless script 相比标准智能合约,NetFlowCoin公链具有更好的扩展性。因其合约执行是发生在链下的,通过将此执行结果推送给关心它的人,NetFlowCoin公链的公共计算资源可以减轻存储合约数据和执行条件的负担。NetFlowCoin公链非公开的合约也可以提供更好的隐私性。合约的详情只有参与者可以知晓,对于其他人来说,该笔交易与普通的交易并没有什么区别

对于NetFlowCoin团队来说,在未来采用 Schnorr 签名也是技术上的一次飞跃,通过实施协议优化和升级,我们可以使流量价值通证(NFC)的发展突破当前瓶颈。在未来的公链生态中,谁能掌握更加成熟的底层技术将是区块链应用落地的最重要的条件,NetFlowCoin面对竞争将不断改进。NetFlowCoin开发团队也很高兴致力于建设必要的基础设施,使NFC逐渐成为世界级的优秀通证。

—-

编译者/作者:链望角123

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...