比特币私钥为什么可以保证安全性?

私钥是什么

私钥是一个256位的随机数

比特币私钥的定义非常简单,它是一个256位随机数,你可以想象256位的数字有多长。当然,比特币的256位私钥是二进制的,如果你不理解二进制那么也没有关系,只要记住它很长就行。

如果把比特币的私钥画出来,大概长这样:

bitcoin private key

所以,私钥的理论长度足够,这确保了它非常强壮,以至于人们无法去穷尽所有的私钥。

如果你认为你可以随便写下一个256位数字,从而获得公钥,那你几乎会陷入徒劳。这是因为,虽然私钥只是一个简单的数字,但它仍然很难被破解,原因在于这个数字的集合足够大,大到我们很难穷尽所有数字,并对它们进行逐一的验证。2的256次方近似于10的77次方,10的77次方有多大?

“双色球”一等奖的中奖概率是8×10ˉ⁸,破解私钥相当于你要连续不断地中一等奖10次以上。一个人一生不断买彩票,中一次头奖的概率也几乎可以忽略不计,而要连续不断的连续中10期,足以见得其概率之低。

这个视频充分解释分析了安全性

私钥如何变成“转账地址”的?

有了私钥,再通过椭圆曲线算法,就可以产生出公钥,这个私钥和公钥是独一的配对关系。这就像一个银行账户只有一个密码可以打开它。

随圆曲线算法是什么呢,如果你只想简单了解,那么你就只需要记住,这是一个高度复杂的数学公式。这个公式确保了这样一件事:从私钥推导一个公钥很容易,但从公钥想到反推私钥,无法实现。

换一句话说,椭圆曲线算法是一个单向计算过程

这样也就确保了,为什么你可以放心的给别人你的比特币地址,让别人向你转账,而不需要担心别人从你的地址也就是公钥推导出你的密码,也就是私钥。

当然,需要说明一下,从私钥计算出来的公钥是一个平面上的点,是由(x, y)坐标来表示的。那么一个公钥长度就是256+256=512位。可以想象一下,如果转账地址这么长,会显得很复杂,而且这么多人在使用,也不利于管理和存储。

所以,比特币地址并不直接是公钥。真正的地址还需要经过一个加密哈希算法函数来计算最终得出。哈希函数是一种散列,它可以把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。

具体来看,比特币地址 = RIPEMD160(SHA256(公钥))

上式中,嵌套了两层哈希加密算法,SHA256 和 RIPEMD160分别是这两种加密算法的名字。因此,比特币加密也被称作“双哈希”加密,最后得到了160位长度的比特币地址,即20个字节。目的就是让512位长度的公钥变得短,更安全。

这样的地址就是你在布尔钱包中看到的地址了。它可以用来收发数字资产,成为你进入加密世界的第一项窗口。

是否存在一种超级计算机,可以破解这些算法?

理论上说,椭圆曲线算法只是难度高,hash函数也存在理论被破解的可能。而人类目前的计算水平还无法攻克这样的密码算法。所以现在来说,比特币私钥规则非常安全。那么未来呢?

谈到未来可能的超级计算机,那么就只有一种可能,就是量子计算机。IBM之前宣布在2019年10月推出53量子比特的可“商用”量子计算机,53量子比特的量子计算机计算能力足以超过中国的一代超级计算机天河一号。听起来足够厉害吧?但即便如此,科学家公认,量子比特达到100之前,想要挑战RSA/椭圆曲线加密还是严重不足。

另外,即便我们最坏地去设想,量子计算机由于简化运算,让原本复杂的加密变得对攻击者可以一试,那么我们也可以在受到威胁之前找到对策和方案。和矛盾之争一样,矛变锋利的过程,那么技术进步同样也会带来盾的升级。

比特币不是静止的,它也可以进行技术方案的升级。格加密、量子加密,都是增加复杂性的方案。

所以,严谨地说,比特币私钥足够安全。但若讨论时间序列的绝对安全,那么就陷入了哲学辩论——理论上著名的莎士比亚定律也就如此——只要给一只猴子无限的时间,它也可以只用一台电脑就敲出《莎士比亚》。

至少作为生活在21世纪的人类,我们应该相信科学,而不成为低概率的赌徒。

Leave a Reply

Your email address will not be published.Required fields are marked *