無知與成見,往往會在世界上鑄成比詭詐與惡意更多的過錯——歌德
我們都知道,區塊鏈技術是計算機密碼學的延伸和應用。所以,密碼學作為區塊鏈的基石,其重要性不言而喻。
區塊鏈技術運用的密碼學算法主要為兩個部分:一是哈希算法,二是非對稱加密算法。
哈希算法在之前的文章《人人都能讀懂的比特幣挖礦原理》中有詳細的講解,感興趣的朋友可以查看之前的文章。
那什麼是非對稱加密呢?
了解一個事物,首先了解它的「敵人」——對稱加密。對稱加密可以簡單理解為,一把密匙同時用來加密和解密。就好像一把鎖配一把鑰匙一樣,既可以用這把鑰匙把鎖鎖住,也可以用這把鑰匙把鎖打開。
而所謂的非對稱加密是指加密時有兩個密匙,就相當於一把鎖有兩把不同的鑰匙,分別為公鑰和私鑰,它的特點是:公鑰加密的內容必須用私鑰才能解開,私鑰加密的內容需要公鑰才能解開。而公鑰是被公開出去的,私鑰是由用戶自己保管的。
公鑰是由私鑰生成,並且這個過程是不可逆的,也就是說通過公鑰是不能倒推出私鑰。
例如比特幣系統所使用的加密算法,就是一種稱為橢圓曲線的非對稱加密算法。當一個新用戶創建比特幣帳戶時,比特幣錢包將為他創建地址。首先是隨機生成一個比特幣私鑰,其次用私鑰生成公鑰,最後利用公鑰生成比特幣帳戶地址,所以在數字貨幣交易中,我們常說的帳戶地址其實就是指公鑰。
非對稱加密怎麼運用呢?打個比方,A需要發送一篇論文給B:
首先,A把寫好的論文通過哈希加密求出這篇論文的哈希值。然後用自己的私鑰對這個哈希值進行加密(用M表示);其次,A把這篇論文用B的公鑰加密(用N表示)。M和N兩者一起發送給B。
B收到A發出的內容後:
1,通過自己的私鑰解密N,得出論文的原文,然後把得出的原文通過哈希加密,得出一個哈希值
2,通過A的公鑰解密M,同樣得出一個哈希值。(通過了A的公鑰解密,另一方面也確認了內容是由A發出的)
最後,B把得出的兩個哈希值進行比較,如果一致,說明論文在傳輸過程中沒有被篡改,確實是A發送給B的論文。
比特幣交易用的就是類似的原理,是不是非常巧妙?當然,比特幣的巧妙之處並不僅僅利用了哈希算法和非對稱加密數字籤名,它還設計一套嚴密的數據鏈結構,比這複雜很多,這裡就不多講。
總的來說,非對稱加密在區塊鏈中是比較常用的,比如錢包地址生成,轉帳交易數字籤名等,為區塊鏈的安全運行提供不可磨滅的貢獻。
或許隨著量子技術的發展,有人會質疑它的安全。但是,換句話說,密碼學也是會隨著時代發展而進步的。要是量子技術真發展成熟,密碼學也會迭代出更安全的技術。而在當下這個時代中,它的安全性是毋庸置疑的。
仔細想想,比特幣創造了一個新的組織方式,一個價值2.2萬億美元的網絡,其背後沒有主人,沒有公司,在沒有出什麼大問題的情況下,已經穩步運行了十年之久,其安全性是得到驗證的。
所以,從人類歷史的角度來看,這應該也算得上一個奇蹟吧?