什麼是區塊鏈雜湊演算法?雜湊演算法是一種只能加密不能解密的密碼學演算法。可以將任意長度的資訊轉換成一段固定長度的字串。簡言之,雜湊演算法是將任意長度的字串對映為較短的固定長度的字串。比特幣則是使用SHA-256摘要演算法對任意長度的輸入給出的是256bit的輸出。那麼,加密貨幣中雜湊演算法的應用有哪些?
1、加密雜湊函式
2、資料結構
3、挖礦
4、加密雜湊函式:
一個加密雜湊函式有如下特性:確定性 :無論在同一個雜湊函式中解析多少次,輸入同一個A總是能得到相同的輸出h(A)。
高效運算 :計算雜湊值的過程是高效的。
抗原像攻擊(隱匿性) :對一個給定的輸出結果h(A),想要逆推出輸入A,在計算上是不可行的。抗碰撞性(抗弱碰撞性) :對任何給定的A和B,找到滿足B≠A且h(A)=h(B)的B,在計算上是不可行的。
細微變化影響 :任何輸入端的細微變化都會對雜湊函式的輸出結果產生劇烈影響。
謎題友好性 :對任意給定的Hash碼Y和輸入值x而言,找到一個滿足h(k|x)=Y的k值在計算上是不可行的。加密雜湊函式對區塊鏈的安全性和挖礦有巨大的幫助。
資料結構:有兩種資料結構對於理解區塊鏈非常重要:連結串列和雜湊指標。
連結串列:連結串列是依次按順序連線而成的資料區塊,如下圖所示:
在連結串列中的每個區塊都透過一個指標指向另一個區塊。
指標:指標是包含其他變數地址的變數。因此,正如其名,指標就是指向其他變數的變數。
雜湊指標:雜湊指標不僅有其他變數的地址,還有該變數中資料的雜湊值。那麼,這對區塊鏈而言有何幫助呢?
區塊鏈的構成如下圖所示:
區塊鏈本質上是一個連結串列,其中的每個新區塊都包含一個雜湊指標。指標指向前一區塊及其含有的所有資料的雜湊值。藉此特性,區塊鏈擁有了不可更改性(immutability)的偉大特質。雜湊演算法保證了比特幣挖礦不能逆向推匯出結果,所以礦工持續不斷地進行運算。本質上是在暴力破解正確的輸入值,誰最先找到誰就能獲得比特幣獎勵。