第一个是比特币使用公钥的哈希作为地址,带来了不必要的复杂度和浪费。但事实上,这是深思远虑的未雨绸缪,因为可以让比特币完全免受量子计算机的威胁。
之前也在网上看到过类似的文章,大意是如果进行过交易,在量子计算机的威胁下,私匙就不再安全,而没有进行过交易的私匙就是安全的。为什么?为什么?为什么?对高手来说,可能这是显而易见的问题,但对小白的我来说,一直没搞懂其中的原理,显得颇为遗憾,今天就自己搜索了下,试着分析一下。
比特币的私匙就是我们要精心保护的,有了它,通过一个SECP256K1的椭圆形加密算法,就可以生成可以对外广播的公匙。经过SHA256和RIPEMD160两种哈希算法,生成公匙哈希,经过一些处理,再经过BASE58编码,得到钱包地址,流程如下:
私匙-(SECP256K1椭圆形加密算法)-公匙-(SHA256哈希算法)-(RIPEMD160哈希算法)-公匙哈希-(BASE58编码)-钱包地址
在上面步骤中,只有BASE58编码是可逆的,其它的算法都是不可逆的。也就是说,只有你的钱包地址,是无法推算出你的私匙的。
量子计算机对比特币的影响可以理解为:原本不可逆的椭圆形加密算法变成可逆的了。
从上面步骤可以看出,从钱包地址只能推出公匙哈希的值,而经过两次哈希算法的保护,公匙和私匙对量子计算机来说仍然是很安全的。
通过比特币挖矿的区块,只能得到钱包的地址,所以地址钱包里的钱即对量子计算机来说仍然是安全的。
那比特币交易呢?
比特币交易必须将转出地址,转账金额,签名和公匙一起对全网进行广播。因为如果没有公匙,矿工们无法对签名进行验证,所以一旦进行了交易,公匙就暴露在全网中了。而公匙和私匙之间的的椭圆形加密算法在量子计算机面前是可逆的,所以一旦进行了交易,私匙就没有安全性可言了。
当然,如果每个地址只使用一次,那你的比特币应该还是安全的。但是量子计算机对比特币是有威胁的,至少完全免受威胁是不严谨的。