第一個是比特幣使用公鑰的哈希作為地址,帶來了不必要的復雜度和浪費。但事實上,這是深思遠慮的未雨綢繆,因為可以讓比特幣完全免受量子計算機的威脅。
之前也在網上看到過類似的文章,大意是如果進行過交易,在量子計算機的威脅下,私匙就不再安全,而沒有進行過交易的私匙就是安全的。為什么?為什么?為什么?對高手來說,可能這是顯而易見的問題,但對小白的我來說,一直沒搞懂其中的原理,顯得頗為遺憾,今天就自己搜索了下,試著分析一下。
比特幣的私匙就是我們要精心保護的,有了它,通過一個SECP256K1的橢圓形加密算法,就可以生成可以對外廣播的公匙。經過SHA256和RIPEMD160兩種哈希算法,生成公匙哈希,經過一些處理,再經過BASE58編碼,得到錢包地址,流程如下:
私匙-(SECP256K1橢圓形加密算法)-公匙-(SHA256哈希算法)-(RIPEMD160哈希算法)-公匙哈希-(BASE58編碼)-錢包地址
在上面步驟中,只有BASE58編碼是可逆的,其它的算法都是不可逆的。也就是說,只有你的錢包地址,是無法推算出你的私匙的。
量子計算機對比特幣的影響可以理解為:原本不可逆的橢圓形加密算法變成可逆的了。
從上面步驟可以看出,從錢包地址只能推出公匙哈希的值,而經過兩次哈希算法的保護,公匙和私匙對量子計算機來說仍然是很安全的。
通過比特幣挖礦的區塊,只能得到錢包的地址,所以地址錢包里的錢即對量子計算機來說仍然是安全的。
那比特幣交易呢?
比特幣交易必須將轉出地址,轉賬金額,簽名和公匙一起對全網進行廣播。因為如果沒有公匙,礦工們無法對簽名進行驗證,所以一旦進行了交易,公匙就暴露在全網中了。而公匙和私匙之間的的橢圓形加密算法在量子計算機面前是可逆的,所以一旦進行了交易,私匙就沒有安全性可言了。
當然,如果每個地址只使用一次,那你的比特幣應該還是安全的。但是量子計算機對比特幣是有威脅的,至少完全免受威脅是不嚴謹的。