比特币:加密世界里最强大的数字:22??

Odaily星球日报译者|Moni22??是2的256次方。对于区块链和加密行业来说,这个数字又代表了什么意义呢?我们知道,计算机都是基于二进制数字计算的。下面是一个示例,如果以两位数字表示的话,每位上的数字只能用“0”或“1”,那么我们可以产生下面四种可能的组合:00=001=110=211=3如果以位数是3,那么可能的二进制组合就有九种,即“2的3次方”,如下所示:000=0001=1010=2011=3100=4101=5110=6101=7111=8如果位数有256个,那么就意味着有“2的256次方”种可能的二进制组合,这也是一个非常非常大的数字组合!那么,“2的256次方”在十进制中是什么样子呢?请不要眨眼,答案就是:115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,936简单表示的话,就是1.158x10??,即“1.158乘10的77次方”。如果你无法直观了解“2的256次方”——即“1.158乘10的77次方”有多大的话,我们在此做一个比较,或许能让你更清楚地了解这个数字的“可怕”,相比之下:1、地球上的沙子总数量只有为“7.5乘10的15次方”;2、在“可观察”的宇宙里,估计有“30乘10的21次方”到“70乘10的21次方”或“10乘10的23次方”颗恒星;3、在“可观察”的宇宙里,估计有“1乘10的78次方”到“1乘10的83次方”个原子。所以,“2的256次方”是可观察的宇宙中所有恒星总量的3.5倍,仅比可观察宇宙中的原子总量“少几个零”。为什么“2的256次方”很重要?因为256位加密私钥安全可能是天文级的

“2的256次方”非常重要,因为它是加密技术在区块链中可能使用的私钥值的全部“感知”范围。在加密货币世界里,如果要破解一个256位的加密安全系统,就必须要猜对一个256位的比特串,而且还要猜对两次,第一次要在电子签名的时候,第二次是在解密码哈希函数的时候。举个例子,如果你想找到一条信息,让它的SHA256哈希值等于某个256位比特串的话,基本上没有别的好办法,只能随机猜测并检验结果——这意味着,平均下来,你需要尝试“2的256次方”次!“2的256次方”这个数字比我们通常遇到的数字都要大得多,因此很难去体会它的规模,但你可以把它看作是“2的32次方和自己相乘8次”,这样想会让你容易理解,因为“2的32次方”大约等于40亿。现在,我们要做的就是去体会一下40亿连续乘8次是怎样的概念:相信我们大多数人都知道,计算机里的GPU可以飞快地进行大量并行计算,因此要是你专门让GPU反复计算密码哈希函数,一个性能很好的GPU每秒也许能算出接近10亿个哈希值,假如你拥有一堆这样的GPU,然后全部塞进计算机里,让你的计算机每秒能计算出40亿个哈希值,那么最开始的40亿就代表了每台计算机每秒算出的哈希值数目,想象一下40亿台这样满载GPU的计算机——对比一下,虽然谷歌没有对外公布他们的服务器数量,但有人估算大约有几百万台,而现实中谷歌的大部分服务器算力都不如我们满载GPU的电脑,不过我们假设谷歌把上百万个服务器全部换成满载GPU的计算机,那么40亿台计算机大概就相当于1000个这种“打了鸡血”的谷歌,为了更好地解释,我们暂时把这种算力成为“千谷歌”。现在,全世界人口总数大约有73亿,接下来,我们假设有40亿人人手都拥有一台这样的“千谷歌”计算机。然后,再想象一下有40亿个地球,所以相当于银河系1%的恒星会有一个地球,并且这个地球上超过一半的人口都拥有自己的“千谷歌”计算机。接着想象有40亿个这样的银河系,我们把它叫做“亿万星系超级计算机”,每秒能猜“2的160次方”次。下面,40亿秒大概是126.8年,而它的40亿倍就是5070亿年,差不多是宇宙年龄的37倍,所以就算你有——满载GPU的40亿台计算机+40亿人手一台“千谷歌”计算机+40亿个像地球一样的行星+亿万星系超级计算机,再花上37倍宇宙年龄的时间,也只有40亿分之一的可能性得到密钥的正确答案。顺便提一下,目前比特币的哈希算力——把所有矿工都加起来,每秒能猜测并检验500亿亿个哈希值,只相当于之前提到的“千谷歌”计算机算力的三分之一。当然这并不是因为真的有几十亿台满载GPU的计算机,而是因为矿工使用的是比GPU算力强1000倍左右的芯片,它叫做“专用集成电路”,这些硬件是为比特币挖矿量身定做的,但这种芯片什么都不会做,只会计算基于SHA256算法的哈希值。换句话说,如果你想获得庞大的算力,就不得不放弃一般的计算需求,去设计一个只能执行一个单一任务的集成电路。难道每个加密货币都有“2的256次方”个可能的私钥吗?

不完全是这样,并非所有“2的256次方”范围内的数字都会用在查找匹配公钥的数字曲线上。比特币和以太坊使用的是secp256k1椭圆曲线,该区先定义的公钥匹配范围略小于“2的256次方”。如果再略微准确地表达secp256k1椭圆曲线数字范围的话,可能这个结果是:432420386565659656852420866394968145599按照SEC2标准的定义,其密钥数值范围是从“0”到0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141,假设我们用“N”来代表这个数值,那么用十进制表达N的话:N=11579208923731619542357098500868790785283756427907490438260516314151816149433622??-N=432420386565659656852420866394968145599在数学上,这是一个近似值的问题,就好像我们会把100亿减10的结果看作仍是100亿一样。稍等,除了比特币,我们再来看看以太坊的密钥

比特币地址是公共地址的RIPEMD-160,RIPEMD是一种加密哈希函数,由鲁汶大学HansDobbertin,AntoonBosselaers和BartPrenee组成的COSIC研究小组于1996年发布的。RIPEMD是以MD4为基础原则所设计,而且其表现与更有名的SHA-1类似。RIPEMD-160是以原始版RIPEMD所改进的160位元版本,而且是RIPEMD系列中最常见的版本。RIPEMD-160是设计给学术社群所使用的,刚好相对于SHA-1和SHA-2算法。另一方面,RIPEMD-160比SHA-1较少使用,所以可能时候RIPEMD-160比SHA不常被审查的原因之一。另外,RIPEMD-160并没有任何专利所限制。同时也存在着128,256,320位元的这种算法,称为RIPEMD-128、RIPEMD-256和RIPEMD-320。128位版本的用意仅是取代原始版RIPEMD,因为原版也同样是128位元,并且被发现有潜在的安全问题。而256和320位版本只有减少碰撞发生的机率,但没有提升安全等级。不过,RIPEMD的设计者们没有真正设计256和320位元这两种标准,他们只是在128位元和160位元的基础上,修改了初始参数和s-box来达到输出为256和320位元。所以,256位的强度和128相当,而320位的强度和160位相当,且RIPEMD建立在md的基础之上,所以其添加数据的方式和md5完全一样。以太坊将密钥长度减少到160位,这仍然是一个非常大的数字,以十进制表示的话,就是:21??=1.46x10??或1461501637330902918203684832716283019655932542976。这个数字有多大呢?目前我们可观测的宇宙宽度为8.8x102?或8.8x102?毫米,如果我们把一个比特币或以太坊地址看作为1毫米,那么其密钥长度相当于超过了可观察宇宙长度的两倍。对于以太坊来说,其唯一钱包地址实际总量可能是1.46x10??,这也引发了一个棘手的问题:我们有22??个可能的私钥却要映射到21??个可能的公钥上,逻辑告诉我们,每个公钥都可能会有超过1个私钥。但即便如此,这也意味着你需要在2??个私钥中找到能够对应某个地址的公钥哈希——在此,我也许只能祝你好运了!总结

加密货币私钥的可能值范围非常非常大,即便其可能会略低于SEC2标准中定义的“2的256次方”,但仍然是一个异常庞大的数字,所以两个私钥相同的可能性超级低,除非有子要做坏事。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

链链资讯

[0:15ms0-6:547ms