本篇文章主要给网友们分享区块链验证速度的知识,其中更加会对区块链形式化验证进行更多的解释,如果能碰巧解决你现在面临的问题,记得关注本站!
谁知道抱品网视频区块链认证最长可以认证多长时间的?
5G来区块链验证速度了以后视频上传速度这块应该有很大区块链验证速度的改观的区块链验证速度, 不但是抱品网区块链验证速度, 抖音啊, 快手啊, 这些各大视频平台上传的视频长度应该都有所放宽
一个更优的零知识证明:Bulletproofs
在2015年我们宣布 机密交易(CT) 作为侧链 Elements Alpha 的主要特征。该特征用 Pedersen commitments 取代区块链验证速度了交易金额区块链验证速度,这种一种隐藏金额的加密工具区块链验证速度,同时保留了任何人验证在特定交易内余额的能力。
CT面临的主要难题是让它交易变得非常大而且验证缓慢,因为它要求每个交易输出包含一个 rangeproof ,这是一种零知识证明,证明金额 太小而不会溢出 。普通数字签名小于100个字节,并且只需不到100微秒的时间就可以验证,而 rangeproofs 的大小是几千个字节,并需要几个毫秒才能验证。实际上, rangeproofs 是使用它们的任何交易中绝大部分的交易数据。
尽管我们的 rangeproofs ,基于 Borromean环形签名 ,在文献中是最快的和最小的,但对于我们需要的 范围大小(range sizes) 和无信任的环境下,它们仍然非常的大。
自从2015年来,我们一直都在努力提高 rangeproofs 的效率。在2017年初,Adam Back发现 rangeproofs 减小了24% ,不过验证速度并没有提高。在这段期间,我们曾向我们的朋友和同事,密码学家Dan Boneh和在斯坦福大学的BenediktBünz提到这个问题,他们对改善的空间都相当的有信心。
他们最终震惊了我们。
根据 Bootle等人 在2016年基于离散对数的零知识证明的空间效率方面的改进, Bulletproofs 是一种更加空间高效的零知识证明的形式。重要的是,为了我们的目的,这些证明还具有对提交值如 Pedersen commitments 和 公钥 的原生支持。这让我们可以在通用的零知识框架下实现诸如 rangeproofs 之类的功能,而不用在零知识中实现复杂的椭圆曲线算法。
更强健。 为了限制交易大小,我们老版本的 rangeproofs 限制输出范围大小为2^32。这限制了输出大约到43 BTC,不过这可以通过将证明的粒度从1聪减少到10聪或者100聪来增加,或者通过从零开始增加最小值来增加。这些调整是可能的,但是使用了显示的金额,限制了系统提供的隐私。
这些32位的 rangeproofs 大小大约为2.5 KiB。使用Adam的优化,它们将有2 KiB 的大小。使用 Bulletproofs ,它们应该是610字节。有了这么小的大小,我们可以将 范围(range) 加倍到64位,从而无需进行任何的非隐私调整。这样的话,就会将610字节增加到1220字节,是吗?不是,实际上,64位的 Bulletproof rangeproofs 仅仅只有674字节。
更小。 我们将 范围(range) 的大小增加了一倍,但证明的大小只增加了64个字节的原因是区块链验证速度:它们以对数级增长。这是通过使用 Bootle等人在2016年论文中 的内部产品参数的变体来完成的。(Jonathan Bootle也帮助了Benedikt和Dan开发 Bulletproofs 。 )具体来说,论文中描述的对数大小的内部产品参数在 Bulletproofs 中进一步降低了,从6log(N)曲线点降到2log(N)。
相同的技巧可以将一个交易内多个 rangeproofs 整合到一个中,同样只会增加很少的字节数。2个 rangeproofs 的整合是738字节,4个则是802字节,8个是866字节。8个64位经典 rangeproofs 将会超过40000字节。
更快。 这种节省空间很大,但是我们对该技术的初步分析显示验证速度会比老版的 rangeproofs 慢。似乎验证一个64位的证明需要超过200个标量点乘法,每个都是繁重的50微秒事务,而老版的 rangeproofs 只需要128个标量点乘法。
但是经过进一步的分析后,我们可以组合很多乘法,将总数减少到147个。更重要的是,我们意识到,与老版的 rangeproofs 不同,这些乘法都是不依赖对方的,所以我们可以在一个批量中完成它们。作为 我们汇总签名工作 的一部分,我们知道如何快速批量相乘。 我和Pieter Wuille,Greg Maxwell,Jonas Nick,Peter Dettman在这个问题上花费了几个月的时间,最终将147个乘法的速度降低到每个只需15.5微秒,让 Bulletproof 的总验证时间降到2.3 ms,而老版的证明需要5.8 ms。
在速度上已经不仅增加了一倍,而且由于我们的批量乘法随着区块链验证速度你提供的点越多速度越快,所以整合的性能数字就更加令人印象深刻。8个64位 Bulletproofs 的整合可以在11.5 ms内验证完,而对于老版的证明需要46.8 ms,速度超过了4倍。
不过它能变得更好。 Bulletproofs 支持非常高效的批量验证形式。在我们需要完成的147次乘法中,其中130次在每个 Bulletproof 中使用相同的点,这意味着在批量验证期间,这130次乘法是可以组合的,剩下只有17次是新的乘法。实际上,这种小成本仅仅以对数级增加:对于2个 范围(ranges) 的整合,每个额外的证明需要19个额外的点,而4个 范围(ranges) 的整合,每个证明需要21个点。
注意我们引入了两个相似但是独立的概念:整合(aggregation)是指证明程序将多个 rangeproofs 组合成1个;而批量处理(batching)是指验证程序同时检测多个单独的证明。
这意味着两个64位的 rangeproofs 可以在2.7 ms内完成验证,或者每个 范围(range) 1.4 ms。500个 rangeproofs 可以在130 ms内完成验证,或者每个 范围(range) 0.26 ms,这比老版的证明提高了23倍。不过由于整合,它还可以变的更加可观。500个8个一整合的 rangeproofs (一共是4000个 范围(ranges) )可以在305 ms内验证完,或者每个范围 76 微秒,比老版的 rangeproofs 提高了75倍。
随着日益高效的标量点乘法不再是主导效应,这种影响最终会围绕64个证明的整合最大化。在这一点上,我们可以以每个 范围(range) 46微秒来批量验证,速度提高了125倍。作为参考,椭圆曲线数字签名算法(ECDSA)签名大约需要55微秒,所以在这种级别的整合下, rangeproofs 甚至不是交易验证的主要部分。当然,我们不太可能在区块链上看见64个输出交易,不过这种速度在非区块链环境中(如 Provisions
)是可能的。
这种验证同样也是节约内存的,验证单个 rangeproof 需要 100 KiB,随着大小而增加减。
Bulletproofs 比 rangeproofs 更加的通用。它们可以被用来在零知识中证明任意的陈述。它们与 SNARKs 或 STARKs 相当,不过它们原生支持椭圆曲线(EC)公钥和 Pedersen commitments (因此通常不需要在程序中实现EC算法)。此外,与SNARK不同的是, Bulletproofs 在无信任环境的标准猜想下拥有完整的128位安全性。与STARK不同,它们在典型的计算机硬件上足以快速证明和验证合理大小的问题。
作为一个具体的例子,考虑SHA2压缩功能的一次运行。我们的证明程序需要少于 30 MiB的内存和大约21秒来证明SHA2原像的知识。验证需要大约23 MiB的内存和75 ms,但是我们可以用大约每个证明5 ms和13.4 KiB批量验证额外的证明。
我们的证明程序比SNARK更节省内存:在相同的系统中,SHA2的一个SNARK证明只需要4秒但是要75 MiB内存。验证时,每个电路需要大量的一次性预计算(需要被证明的陈述),然后只需要3-5 ms和很少的内存就可以验证。这些数字不会随着电路的增加而增加,所以对于超过几千门的电路,即使与我们的批量验证相比,SNARK也明显是赢家。不幸的是,这是以可信赖的环境和新的加密猜想为代价的。
在证明程序和验证程序上, Bulletproofs 仍有很大的优化空间。
验证任意陈述句的能力——不管是 Bulletproofs ,SNARKs或者STARKs,都有很多的应用。它可以用于实现普通的数字签名,包括(可追踪的)环形签名和阈值签名,对于大型环来说,在验证时间和证明大小方面它都比传统方案要高效。它的使用不限于此,它还可以用来可靠的销售数独问题,可以用于多方计算,即使有秘密数据的情况下还是可以证明每方都是诚实行事。(特别是在MuSig这样的多重签名方案中,这允许使用确定性的随机数生成,而不需要签名者维护状态或容易受到随机重用攻击。)它还可以用来证明哈希原像(preimages)。
后一种应用,哈希原像,是特别有趣的,因为它可以用来创建零知识Merkle证明,包含在大规模集合(有数百万甚至数十亿元素)的高效证明。我们将在未来的文章中探讨这一点。
我们很感谢Bootle等人开发的内部产品参数,它引导了我们。同样也感谢Benedikt Bünz和Dan Boneh,我们的合著者,他们做了大量的创造性工作。感谢Sean Bowe和Daira Hopwood为优化算术电路而做的研究。
翻译作者: 许莉
原文地址: Bulletproofs Faster Rangeproofs and Much More
区块链出块速度变慢了
区块链出块速度变慢了是因为网络中的每个节点都必须参与处理。目前区块链网络上的处理速度是非常慢的,如果网络中有一千个节点,那么一千个节点都必须参与处理网络中的每笔交易。
好比有一个一千人的圈子,为了账本的一致性,记录时需要在这圈子里通知一圈。说白了,也就是需要一个回执,由我告诉你我刚在账本里记录了一笔账,你得跟我记得一样。因此,光是消息通知就将花费大量的时间。
区块链特征
去中心化。区块链技术不依赖额外的第三方管理机构或硬件设施,没有中心管制,除了自成一体的区块链本身,通过分布式核算和存储,各个节点实现了信息自我验证、传递和管理。去中心化是区块链最突出最本质的特征。
开放性。区块链技术基础是开源的,除了交易各方的私有信息被加密外,区块链的数据对所有人开放,任何人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。
独立性。基于协商一致的规范和协议类似比特币采用的哈希算法等各种数学算法,整个区块链系统不依赖其他第三方,所有节点能够在系统内自动安全地验证、交换数据,不需要任何人为的干预。
安全性。只要不能掌控全部数据节点的51%,就无法肆意操控修改网络数据,这使区块链本身变得相对安全,避免了主观人为的数据变更。
匿名性。除非有法律规范要求,单从技术上来讲,各区块节点的身份信息不需要公开或验证,信息传递可以匿名进行。
区块链验证速度的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于区块链形式化验证、区块链验证速度的信息别忘了在本站进行查找喔。
标签: #区块链验证速度
评论列表