【每天一個web3概念】不可不知的密碼學

加密算法是大家在公鏈、錢包等領域最常聽到的概念。但是如何確保錢包的安全,如何確保區塊的鏈接?這都需要密碼學的幫助。密碼技術是區塊鏈系統安全保障的底層技術。在web3常用到的哈希函數、公私鑰對就是其中的代表。

哈希算法(Hash Function):也叫哈希函數,簡稱哈希,它能夠實現任意長度的輸入,轉換成固定長度的輸出:h=H(m),意味着你隨便輸入什麼,經過哈希算法,最後得到的都是一串固定長度的字符,一個輸入對應一個輸出,而它的安全性建立在它的抗碰撞性(Collision-Resistant),即很難找到兩個輸入擁有同一個輸出。

在區塊鏈中,有兩個地方用到了哈希函數,一個是Merkle樹根哈希,一個是連接區塊的區塊指針。Merkle樹根哈希是給所有的交易求哈希,然後組成一個新的值再求哈希,最後求到只有一個哈希值即Merkle樹根哈希。因爲無法找到兩個輸入有同一個輸出,這就意味着只要交易的內容變了,那麼Merkle樹根哈希也會跟着變,所以只要根哈希不變,交易就是正確的。同理,給一個區塊數據整體求一個哈希,最後得到的整個哈希值放入到下一個區塊頭裏,只要這個哈希值不變,那麼意味着前面的所有區塊都沒有被篡改,都是正確的。

公私鑰對:就是大名鼎鼎的公鑰密碼算法。

公鑰密碼算法使用一對相關的密鑰來進行加密和解密:一個是公開的“公鑰”,另一個是保密的“私鑰”。“公鑰”可以公開給任何人,用於加密數據。“私鑰”必須保密,只有擁有者知道。它用於解密由相對應的公鑰加密的數據。

公鑰密碼算法是基於某些數學問題的複雜性,比如RSA算法(非對稱加密的一個流行示例)的安全性基於大數分解的難度。換句話說,你可以將這個過程想象爲一個加密和解密的"黑盒"。

#每日學習 #eth #BTC!