2²⁵⁶告诉你,什么是区块链加密
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 的 256 次方”范围内的数字都会用在查找匹配公钥的数字曲线上。比特币和以太坊(以及其他许多加密货币)使用的是 secp256k1 椭圆曲线,该区先定义的公钥匹配范围略小于“2 的 256 次方”。如果再略微准确地表达 secp256k1 椭圆曲线数字范围的话,可能这个结果是:432420386565659656852420866394968145599
按照 SEC2 标准的定义,其密钥数值范围是从“0”到 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141,假设我们用“N”来代表这个数值,那么用十进制表达N的话:
N=131650086879078528375642790749043826051634336
2²⁵⁶-N = 432420386565659656852420866394968145599
在数学上,这是一个近似值的问题,就好像我们会把100亿减10的结果看作仍是100亿一样。
(星球君 o-daily 注:简单解释一下“secp256k1”的含义,它其实是“SEC”、“P”、“256”、“K”和“1”这几个字母和数字的组合,每个都有不同的含义:其中“SEC”代表了 SEC2 高效密码学的标准,“P”代表曲线坐标是素数域,“256”表示素数是 256 位长,“K”表示它是所谓 Koblitz 曲线的变量,“1”表示它是该类型的第一个、也是唯一的曲线标准。)
稍等,除了比特币,我们再来看看以太坊的密钥比特币地址是公共地址的 RIPEMD-160,RIPEMD是一种加密哈希函数,由鲁汶大学 Hans Dobbertin,Antoon Bosselaers 和 Bart Prenee 组成的 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 位,这仍然是一个非常大的数字,以十进制表示的话,就是:
2¹⁶⁰= 1.46x10⁴⁸或309029716283976。
这个数字有多大呢?目前我们可观测的宇宙宽度为 8.8 x 10²⁶ 或 8.8 x 10²⁹ 毫米,如果我们把一个比特币或以太坊地址看作为 1 毫米,那么其密钥长度相当于超过了可观察宇宙长度的两倍。
对于以太坊来说,其唯一钱包地址实际总量可能是 1.46 x 10⁴⁸,这也引发了一个棘手的问题:我们有 2²⁵⁶ 个可能的私钥却要映射到 2¹⁶⁰ 个可能的公钥上,逻辑告诉我们,每个公钥都可能会有超过 1 个私钥。但即便如此,这也意味着你需要在 2⁹⁶ 个私钥(假设每两个私钥映射一个公钥)中找到能够对应某个地址的公钥哈希——在此,我也许只能祝你好运了!
总结
加密货币私钥的可能值范围非常非常大,即便其可能会略低于 SEC2 标准中定义的“2 的 256 次方”,但仍然是一个异常庞大的数字,所以两个私钥相同的可能性超级低,除非有骗子要做坏事。
本文来自 Decentralize.today,原文作者:SeanOdaily 星球日报译者 | Moni- 免责声明
- 世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
- 风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
- 世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。