什麼是區塊鏈雜湊演算法?加密貨幣中雜湊演算法的應用有哪些?

買賣虛擬貨幣

簡言之,雜湊演算法是將任意長度的字串對映為較短的固定長度的字串。比特幣則是使用SHA-256摘要演算法對任意長度的輸入給出的是256bit的輸出。那麼,加密貨幣中雜湊演算法的應用有哪些?

加密雜湊函式

資料結構

挖礦

加密雜湊函式:

一個加密雜湊函式有如下特性:

確定性 :無論在同一個雜湊函式中解析多少次,輸入同一個A總是能得到相同的輸出h(A)。

高效運算 :計算雜湊值的過程是高效的。

抗原像攻擊(隱匿性) :對一個給定的輸出結果h(A),想要逆推出輸入A,在計算上是不可行的。

抗碰撞性(抗弱碰撞性) :對任何給定的A和B,找到滿足B≠A且h(A)=h(B)的B,在計算上是不可行的。

細微變化影響 :任何輸入端的細微變化都會對雜湊函式的輸出結果產生劇烈影響。

謎題友好性 :對任意給定的Hash碼Y和輸入值x而言,找到一個滿足h(k|x)=Y的k值在計算上是不可行的。

加密雜湊函式對區塊鏈的安全性和挖礦有巨大的幫助。

資料結構:

有兩種資料結構對於理解區塊鏈非常重要:連結串列和雜湊指標。

連結串列:連結串列是依次按順序連線而成的資料區塊,如下圖所示:

在連結串列中的每個區塊都透過一個指標指向另一個區塊。

指標:指標是包含其他變數地址的變數。因此,正如其名,指標就是指向其他變數的變數。

雜湊指標:雜湊指標不僅有其他變數的地址,還有該變數中資料的雜湊值。那麼,這對區塊鏈而言有何幫助呢?

區塊鏈的構成如下圖所示:

區塊鏈本質上是一個連結串列,其中的每個新區塊都包含一個雜湊指標。指標指向前一區塊及其含有的所有資料的雜湊值。藉此特性,區塊鏈擁有了不可更改性(immutability)的偉大特質。

區塊鏈如何實現其不可更改性?

假設在上面的圖表中,有人嘗試篡改1號區塊中的資料。請記住加密雜湊函式的一個重要特質是任何輸入端的細微變化都會對雜湊函式的輸出結果產生劇烈影響。

那麼,即便有人嘗試對1號區塊裡的資料進行細微的改寫,也會使得儲存在2號區塊裡的1號區塊的雜湊值產生巨大的變化。接下來,這將導致2號區塊的雜湊值發生變化,進而影響儲存在3號區塊的雜湊值。以此類推,最終整條區塊鏈上的資料都會發生變化。這種透過凍結整條鏈條來修改資料的方式幾乎是不可能做到的。正因如此,區塊鏈被認定為是不可篡改的。

每個區塊都有自己的梅克爾根(Merkle Root)。現在,正如你已知道的,每個區塊裡都包含多筆交易。如果將這些交易按線性儲存,那麼在所有交易中尋找一筆特定交易的過程會變得無比冗長。

而這就是我們使用梅克爾樹的原因。

在梅克爾樹中,所有個體交易透過雜湊演算法都能向上追溯至同一個根。這就使得搜尋變得非常容易。因此,如果想要在區塊裡獲取某一特定的資料,我們可以直接透過梅克爾樹裡的雜湊值來進行搜尋,而不用進行線性訪問。

挖礦

加密謎題被用來挖掘新的區塊,因此雜湊演算法仍然至關重要。其工作原理是調整難度值的設定。隨後,一個被命名為“nonce”的隨機字串被新增到新區塊的雜湊值上,然後被再次雜湊。接著,再來檢驗其是否低於已設定的難度值水平。如果低於,那麼產生的新區塊會被新增至鏈上,而負責挖礦的礦工就會獲得獎勵。如果沒有低於,則礦工繼續修改隨即字串“nouce”,直至低於難度值水平的值出現。

正如你所見,雜湊演算法是區塊鏈和加密經濟學中一個至關重要的部分。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;