加密世界里最强大的数字:2²⁵⁶
Odaily 星球日报译者 | Moni
图片版权所属:站长之家
2²⁵⁶ 是 2 的 256 次方。
对于区块链和加密行业来说,这个数字又代表了什么意义呢?
我们知道,计算机都是基于二进制数字计算的。下面是一个示例,如果以两位数字表示的话,每位上的数字只能用“0”或“1”,那么我们可以产生下面四种可能的组合(注意我们计数是从 0 开始的):
00 = 0
01 = 1
10 = 2
11 = 3
如果以位数是 3,那么可能的二进制组合就有九种,即“2 的 3 次方”,如下所示:
000 = 0
001 = 1
010 = 2
011 = 3
100 = 4
101 = 5
110 = 6
101 = 7
111 = 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⁷⁷(也就是 1158 后面有 74 个 0),即“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 的 256 次方”这个数字比我们通常遇到的数字都要大得多,因此很难去体会它的规模,但你可以把它看作是“2 的 32 次方和自己相乘 8 次”,这样想会让你容易理解,因为“2 的 32 次方”大约等于 40 亿(4,294,967,296)。现在,我们要做的就是去体会一下 40 亿连续乘 8 次是怎样的概念:
相信我们大多数人都知道,计算机里的 GPU 可以飞快地进行大量并行计算,因此要是你专门让 GPU 反复计算密码哈希函数,一个性能很好的 GPU 每秒也许能算出接近 10 亿个哈希值,假如你拥有一堆这样的 GPU,然后全部塞进计算机里,让你的计算机每秒能计算出 40 亿个哈希值,那么最开始的 40 亿就代表了每台计算机每秒算出的哈希值数目,想象一下 40 亿台这样满载 GPU 的计算机——对比一下,虽然谷歌没有对外公布他们的服务器数量,但有人估算大约有几百万台,而现实中谷歌的大部分服务器算力都不如我们满载 GPU 的电脑,不过我们假设谷歌把上百万个服务器全部换成满载 GPU 的计算机,那么 40 亿台计算机大概就相当于 1000 个这种“打了鸡血”的谷歌,为了更好地解释,我们暂时把这种算力成为“千谷歌(thousand Google)”。
现在,全世界人口总数大约有 73 亿,接下来,我们假设有 40 亿人人手都拥有一台这样的“千谷歌”计算机。然后,再想象一下有40 亿 个地球(作为对比,银河系检测到的恒星数量大约为 1000-4000 亿颗,虽然不太确定,但估算大致就在这个范围),所以相当于银河系 1% 的恒星会有一个地球,并且这个地球上超过一半的人口都拥有自己的“千谷歌”计算机。
接着想象有 40 亿个这样的银河系,我们把它叫做“亿万星系超级计算机”,每秒能猜“2 的 160 次方”次。下面,40 亿秒大概是 126.8 年,而它的 40 亿倍就是 5070 亿年,差不多是宇宙年龄的 37 倍,所以就算你有——满载 GPU 的 40 亿台计算机 + 40 亿人手一台“千谷歌”计算机 + 40 亿个像地球一样的行星 + 亿万星系超级计算机,再花上 37 倍宇宙年龄的时间,也只有 40 亿分之一的可能性得到密钥的正确答案。
中国观察