今天聊一聊大饼的抗量子计算特性。
前段时间和@比特币布道者 探讨了下大饼的继承性问题。因为在我们的价值观中,大饼是可以长期永久的持有下去,以至得以传家。然而近期看到一个视频,任正非大老总侃侃而谈,说大饼最终将一文不值,理由是大饼的算法最终会被未来的量子计算机破解。由此,大饼没有长期持有的价值。
大多数对大饼没有深入学习的人,都会有这样一个认识,就是既然大饼完全开源,他的公钥是由私钥采用椭圆曲线加密算法(SECP256K1)所得。即使以目前的计算机算力而言破解难度很大,但如果量子计算机有一天进化发展到可以破解,导致SECP256K1被破解,到那个时候,任何公钥都可以用量子计算得到对应的私钥,大饼网络岂不是立刻崩溃?大饼就是建立在沙上的城堡,长远来看大饼的价值十分存疑,囤饼的理论基础就不存在了。
这样的认识很有普遍性,你猜怎么着,实际上中本聪早已未雨绸缪给我们挖好了护城河。
当我们用一个256bit的随机数作为私钥,使用SECP256K1获得“公钥”(具体算法与本文无关不在累述)后,大饼网络并不直接使用这个“公钥”做为钱包地址,最主要的原因并不是很多人以为的“公钥”太长不好记,而是因为SECP256K1算法不抗量子计算。
得到了“公钥”以后,会进行SHA256算法和RIPEMD160算法的两次哈希套娃,得到的哈希值前面加上大饼网络版本号,获得一个字符串A。
对字符串A再次进行两次SHA256套娃,得到的哈希值取头部4个字节,连接在字符串A的右侧,此时获得字符串B。
将字符串B做base58编码,就得到了最终我们熟悉的“大饼地址”。
熟悉加密算法的朋友可以一眼看出,在多次连接字符串与哈希套娃之后,已经不可能从“大饼地址”反推出原来的“公钥”。也就是说,由于哈希算法“丢失信息”的特性,无论多么牛逼的量子计算机,也是无法从一个丢失信息的“大饼地址”字符串破解反推到“公钥”(即使有能力碰撞破解出来的伪公钥也是无用的)的,这就是哈希算法的抗量子计算特性(否则岂不是可以将任意长度的信息压缩成几十个字节?)。所以,在“公钥”未暴露之前,如果你仅仅是将“大饼地址”用来提币囤饼,你的大饼资产是完全安全无需顾虑量子计算的威胁的。
值得注意的是,如果你从你的大饼地址往外转账,“公钥”信息就会暴露在大饼网络中,此时,抗量子计算的特性也就失效了(但是别忘了还有SECP256K1保护着你)。
所以中本聪设计了大饼的找零机制,当你从一个地址往外发送一部分大饼时,剩余的大饼也会转移到一个“找零地址”中去,也就是说为了保障账户的抗量子计算特性,一个大饼地址只用(转出)一次。很多科普的文章都没有指出这一点,甚至有一些教程为让你把大饼钱包软件的招领地址设置与发送地址一致,这就是忽视且浪费了大饼网络的抗量子计算安全性。因此,在这里达哥郑重的建议将找零地址设置为自己另外一个没有往外发送过饼的脑钱包。
结合之前的脑钱包讨论,希望大家都能安全的囤住自己的大饼。