哈希在幣世界中的力量

哈希是加密貨幣領域中的一個基本過程,它將任何大小的數據轉換爲固定長度的結果。這個過程是通過稱爲哈希函數的數學公式來實現的,這些公式被實現爲算法。

雖然並非所有的哈希函數都涉及密碼學,但所謂的密碼哈希函數在加密貨幣生態系統中至關重要。正因如此,區塊鏈和其他去中心化系統才能實現數據完整性和安全性的重要水平。

哈希函數,無論是常規的還是加密的,都是確定性的。這意味着,只要輸入數據不變,哈希算法就會始終產生相同的結果,也稱爲摘要或哈希。

在加密貨幣中使用的哈希算法通常被設計爲單向函數,這意味着在沒有大量時間和計算資源的情況下無法逆轉。換句話說,從輸入生成輸出相對簡單,但反過來卻極其困難。通常,找到輸入的難度越大,哈希算法被認爲就越安全。

哈希函數的工作原理

不同的哈希函數產生不同長度的結果,但每個哈希算法的輸出大小始終是固定的。例如,SHA-256算法只能生成256位的結果,而SHA-1始終會產生160位的摘要。

爲了說明這一點,讓我們將單詞 "Gate" 和 "Gate" 通過 Bitcoin( 中使用的 SHA-256 哈希算法進行處理)。

SHA-256

入口

輸出 (256 位)

Gate

7f98b5c76e1f90c0e51e5947eae545f3b6f4b4736c774c504d7e6741f5070861

e77b9a9ae9e30b0dbdb6f510a264ef9de781501d7b6b92ae89eb059c5ab743a0

請注意,一個小的變化(首字母大寫)導致了一個完全不同的哈希值。然而,由於我們使用的是SHA-256,輸出總是會有固定的256位(或64個字符),無論輸入的大小。此外,無論我們將這兩個詞通過算法執行多少次,兩個輸出將保持不變。

如果我們通過SHA-1哈希算法傳遞相同的輸入,我們會得到以下結果:

SHA-1的

入口

出發(160 bits)

Gate

96a296d224f285c67bee93c30f8a309157f0daa7

Gate

5f42c325eef7e85610308428b407748b77d8c98e

有趣的是,SHA 的意思是安全哈希算法 (安全哈希算法)。它是一組加密哈希函數,包括 SHA-0 和 SHA-1 算法,以及 SHA-2 和 SHA-3 系列。SHA-256 是 SHA-2 系列的一部分,與 SHA-512 及其他變種一起。目前,只有 SHA-2 和 SHA-3 系列被認爲是安全的。

這項技術的重要性

常規哈希函數有廣泛的應用,包括數據庫查詢、大文件分析和信息管理。另一方面,密碼哈希函數在信息安全應用中被廣泛使用,如消息認證和生成數字指紋。在比特幣的背景下,密碼哈希函數是挖礦過程的一個 integral 部分,並且在新地址和密鑰的生成中也扮演着至關重要的角色。

哈希的真正潛力在於處理大量信息時顯現出來。例如,可以通過哈希函數運行一個大型文件或數據集,然後利用其結果快速驗證數據的準確性和完整性。這是可行的,因爲哈希函數的確定性特性:輸入總是產生一個壓縮和簡化的輸出(哈希)。此方法消除了存儲和“記住”大量數據的需求。

哈希在區塊鏈技術的背景下特別有用。比特幣的區塊鏈涉及與哈希相關的多項操作,其中大多數在挖礦過程中進行。實際上,幾乎所有的加密貨幣協議都依賴哈希來將交易連結和分組到區塊中,並在每個區塊之間創建加密連結,從而形成一條區塊鏈。

密碼學哈希函數

一個使用密碼技術的哈希函數可以定義爲加密哈希函數。一般來說,破解一個加密哈希函數需要大量的暴力破解嘗試。要“逆轉”一個加密哈希函數,必須通過反復試錯選擇輸入,直到獲得合適的輸出。然而,也有可能不同的輸入產生相同的結果,在這種情況下會發生“衝突”.

從技術上講,密碼哈希函數必須滿足三個屬性才能被認爲是安全的。我們可以將其描述爲:抗碰撞性、抗原像性和抗第二原像性。

在描述每個屬性之前,我們先用三句話簡要總結其邏輯:

  • 抵抗碰撞:無法找到兩個不同的輸入生成相同的哈希。

  • 抵抗預映像:無法 "反轉" 哈希函數 ( 從給定的輸出中找到輸入 )。

  • 對第二前映像的抵抗:無法找到一個具有與第一個相同哈希值的第二輸入。

抗碰撞

如前所述,當不同的輸入產生相同的哈希時,就會發生衝突。哈希函數被認爲是抗衝突的,直到有人發現這種衝突。重要的是要注意,由於無限的輸入數量和有限的輸出數量,任何哈希函數總會存在衝突。

因此,當檢測到碰撞的概率低到需要數百萬年的計算時,哈希函數被認爲是抗碰撞的。因此,雖然不存在完全無碰撞的哈希函數,但有些函數是如此強大,以至於可以被視爲穩定的,例如,SHA-256。(

在不同的SHA算法中,SHA-0和SHA-1家族已不再被認爲是安全的,因爲已發現碰撞。目前,僅SHA-2和SHA-3家族被認爲是抗碰撞的。

) 預映像抗性

此屬性與單向函數的概念密切相關。哈希函數被認爲是抗預映像的,只要存在極低的概率,某人能夠利用生成的輸出找到輸入。

請注意,這個特性不同於前一個特性,因爲攻擊者需要根據特定的輸出來猜測輸入。碰撞則發生在某人找到兩個不同的輸入,產生相同的輸出,而不管使用了哪個特定的輸入。

抗原像的屬性對數據安全非常重要,因爲消息的簡單哈希可以在不需要透露額外信息的情況下證明其真實性。在實踐中,許多服務提供商和網路應用程序存儲並使用從密碼生成的哈希,而不是以明文格式使用它們。

第二預映抵抗

這種類型的抗性位於前兩種屬性之間。第二前像攻擊是指找到一個特定的輸入,從而能夠生成一個已經使用另一個已知輸入產生的輸出。

換句話說,第二前像攻擊涉及到碰撞的檢測,但其目標不是找到兩個隨機輸入生成相同的哈希,而是尋找一個可以重現已經由其他輸入生成的哈希的輸入。

因此,任何抗碰撞的哈希函數也抵御第二前像攻擊,因爲後者總是需要一個碰撞。然而,在抗碰撞的函數上仍然可能進行前像攻擊,因爲這涉及到爲給定的輸出尋找一個輸入。

礦業

在比特幣挖礦中,有許多步驟是通過哈希函數來完成的。這些步驟包括驗證餘額、連接交易的輸入和輸出,以及將所有交易組合成一個塊以形成梅克爾樹。但比特幣區塊鏈安全的主要原因之一是礦工必須盡可能多地進行哈希操作,以最終找到下一個區塊的正確解決方案。

礦工在生成候選區塊的哈希時必須使用各種輸入。只有當正確生成的哈希輸出以一定數量的零開頭時,區塊才能被驗證。零的數量決定了挖礦的難度,並根據網路的哈希率變化。

在此背景下,哈希率是指用於比特幣挖礦的計算能力的度量。如果哈希率開始上升,比特幣協議將自動調整挖礦難度,以使挖掘一個區塊所需的平均時間約爲10分鍾。如果多個礦工決定停止挖礦,導致哈希率顯著下降,挖礦難度將調整以暫時簡化計算###,直到區塊生成的平均時間再次回到10分鍾(。

重要的是要強調,礦工不需要尋找碰撞,因爲有多個哈希可以生成有效輸出),前面有一定數量的零(。因此,對於特定區塊存在多個可能的解決方案,礦工只需根據礦業難度設定的閾值找到其中一個。

由於比特幣的挖礦是一項成本高昂的任務,礦工們沒有動力去欺騙系統,因爲這將導致重大財務損失。因此,加入區塊鏈的礦工越多,區塊鏈就會變得越大越強大。

結論

哈希函數無疑是計算機科學中基本工具之一,特別是在處理大量數據時。當與密碼學結合時,哈希算法極其有用,因爲它們以多種方式提供安全性和認證。因此,密碼學哈希函數對幾乎所有加密貨幣網路至關重要,理解它們的屬性和工作機制對於任何對區塊鏈技術感興趣的人來說都是非常有價值的。

EL0.02%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 留言
  • 轉發
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate App
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)