什麼是哈希?推動區塊鏈世界安全的技術

哈希函數是一個數學過程,它根據可變大小的輸入數據生成固定大小的輸出。這個過程是通過特定的數學公式實現的,這些公式被稱爲哈希函數,通過計算算法來實現。

雖然存在不包含加密元素的哈希函數,但所謂的加密哈希函數構成了加密貨幣的核心技術。正是由於這些函數,區塊鏈網路和其他分布式系統能夠在其數據中實現顯著的安全性和完整性。

哈希函數的基本特徵

所有的哈希函數,無論是傳統的還是加密的,都共享一個基本屬性:確定性。這意味着,只要輸入數據保持不變,哈希算法將始終生成相同的結果 (,也稱爲摘要或哈希)。

用於加密貨幣的哈希算法被設計爲單向函數,這意味着在沒有投入過多時間和計算資源的情況下,幾乎不可能將其逆轉。從實際角度來看,從輸入生成輸出非常簡單,但從輸出推導輸入則極其困難(。一般來說,原始輸入從哈希中獲取的復雜性越高,算法被認爲就越安全。

哈希函數的工作原理

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

爲了說明這個概念,讓我們分析在通過 SHA-256 算法處理 "Palabra" 和 "palabra" 時會發生什麼,)這是比特幣使用的相同算法(:

| 輸入 | SHA-256 輸出 )256 位( | |---------|----------------------------| |單詞 |f39c96107d7bb9e4870c5a4859d95d9329d3cbac1f9a8d3bd4d9b9d62f526e8c | |單詞 |8460a8a5855f48887cc55e1f95a20c34835915d43a04fdcf25723643896d9527 |

觀察到一個最小的變化)首字母大寫(會生成一個完全不同的哈希值。然而,使用SHA-256時,輸出總是會有固定的大小爲256位)或64個十六進制字符(,無論輸入的大小如何。此外,無論我們通過算法處理這兩個詞多少次,輸出將保持不變。

如果我們使用 SHA-1 算法和相同的輸入,則會得到以下結果:

| 輸入 | SHA-1 哈希 )160 位( | |---------|-------------------------| |單詞 |2a3d74e31e7b9dc5596ef0dfdbec3367dee5ece8 | |單詞 |9661166b561e30e68bb7c4be3b1799e749d925be |

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

哈希在數字技術中的重要性

傳統哈希函數有多種應用,包括數據庫搜索、大型文件分析和數據高效管理。而密碼學哈希函數在計算機安全應用中被廣泛使用,如消息認證和數據完整性驗證。在比特幣的背景下,這些函數是挖礦過程的一個不可或缺的部分,並在地址和密鑰的生成中發揮着關鍵作用。

哈希的真正潛力在於處理大量信息時顯現出來。例如,可以通過哈希函數處理一個大型文件或數據集,並使用結果快速驗證原始數據的完整性和準確性。這得益於哈希函數的確定性:相同的輸入總是產生一個壓縮和簡化的輸出)哈希(。此方法消除了存儲和“記憶”大量數據的需要。

哈希在區塊鏈技術的背景下尤其重要。比特幣的區塊鏈包含多個與哈希相關的操作,主要是在挖礦過程中。實際上,幾乎所有的加密貨幣協議都依賴於哈希函數來將交易打包成區塊,並在每個區塊之間創建加密連結,從而形成區塊鏈。

加密哈希函數的基本屬性

一個實現了加密技術的哈希函數被定義爲加密哈希函數。解密加密哈希函數通常需要大量的暴力嘗試。要“逆轉”一個加密哈希函數,需要通過試錯選擇不同的輸入,直到獲得所需的輸出。然而,不同的輸入可能產生相同的結果,這種情況被稱爲“碰撞”。

從技術上講,要將加密哈希函數視爲安全,它必須滿足三個基本屬性:

) 1. 抗碰撞性

定義:無法實際找到兩個不同的輸入產生相同的哈希。

當不同的輸入生成相同的哈希時,就會發生碰撞。哈希函數被認爲是抗碰撞的,直到有人發現這種碰撞。重要的是要提到,由於可能的輸入數量是無限的,而可能的輸出數量是有限的,因此碰撞總是會存在於任何哈希函數中。

因此,當檢測到碰撞的概率微乎其微,甚至需要數百萬年的計算才能實現時,哈希函數被認爲是抗碰撞的。因此,雖然不存在完全無碰撞的哈希函數,但有些函數如此強大,以至於被認爲是密碼學上安全的###,如SHA-256(。

在不同的SHA算法中,SHA-0和SHA-1組不再被認爲是安全的,因爲已經檢測到碰撞。目前,只有SHA-2和SHA-3系列被認爲是抗碰撞的。

) 2. 對於預映像的抗性 ###o 尋找第一個預映像(

定義:在給定的輸出)中,實質上無法“反轉”哈希函數以找到輸入。

這個屬性與單向函數的概念密切相關。當僅使用生成的輸出來確定輸入的概率極低時,哈希函數被認爲是抗預映像的。

這個屬性不同於抗碰撞性,因爲在這裏攻擊者試圖具體發現生成特定哈希的輸入,而不是任何一對產生相同哈希的輸入。

預映像抗性對數據安全至關重要,因爲它允許使用消息的哈希來驗證其真實性,而無需透露額外信息。在實踐中,許多網路服務提供商僅存儲基於密碼生成的哈希,而不是以明文格式保存它們。

( 3. 對第二前像的抗性

定義:實際無法找到一個第二個輸入,生成與已知輸入相同的哈希。

該屬性概念上位於前兩者之間。第二原像攻擊是指找到一個特定的輸入,該輸入能夠生成與之前已知的另一個輸入產生的輸出相同的輸出。

換句話說,這種攻擊類型涉及檢測碰撞,但不是尋找兩個隨機輸入生成相同的哈希,而是目標是找到一個替代輸入,能夠重現由另一個已知輸入生成的哈希。

因此,任何抗碰撞的哈希函數也抵御第二原像攻擊,因爲後者必然需要發生碰撞。然而,針對抗碰撞函數進行第一次原像攻擊是可能的,因爲這涉及從一個特定的輸出尋找一個特定的輸入。

採礦和哈希函數

比特幣的挖礦過程包含許多使用哈希函數的步驟。這些操作包括餘額驗證、交易輸入和輸出的連結,以及將所有交易組合成一個區塊以形成默克爾樹。然而,確保比特幣區塊鏈安全的主要因素之一是礦工必須進行大量的哈希操作,以找到下一個區塊的正確解。

礦工在生成候選區塊的哈希時必須使用不同的輸入。只有當生成的哈希以一定數量的零開頭時,該區塊才是有效的。所需的零的數量決定了挖礦的難度,並根據網路的哈希率而變化。

哈希率代表在比特幣挖礦中投入的計算能力。如果哈希率增加,比特幣協議會自動調整挖礦難度,以保持平均區塊創建時間約爲10分鍾。如果多個礦工停止活動,導致哈希率顯著下降,挖礦難度將暫時下調),直到平均區塊生成時間恢復到10分鍾###。

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

由於比特幣挖礦是一項具有相當高能源和經濟成本的活動,礦工們缺乏試圖欺騙系統的動力,因爲這將導致重大的財務損失。因此,加入區塊鏈網路的礦工越多,這個網路就會變得越強大和安全。

哈希函數在現代密碼學中的重要性

哈希函數是計算機科學中的基本工具之一,特別是在處理大量數據時。當與密碼學技術結合時,哈希算法變得極其寶貴,以多種方式提供安全性和身分驗證。

加密哈希函數是當前幾乎所有加密貨幣網路中的基本元素。理解它們的屬性和工作機制對於任何對區塊鏈技術及其在數字金融生態系統中的應用感興趣的人來說都是必不可少的。

將這些數學功能集成到區塊鏈系統中,可以確保記錄的不可變性、高效的交易驗證以及安全的加密地址生成,這些是構建一個可靠和去中心化的數字金融系統的基本支柱。

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